- dissolve core-bridge into api (wire contract), domain (models), services (what the UI calls) and worker (everything that runs in the Web Worker, grouped by account, crypto, space, files, shares, runtime); regroup features, lib and store by responsibility and delete unused components - the UI only reads backend capabilities (domain/capabilities); one tokenRole picks the token, hasCode/isRetryable handle errors; pre-checks that decided permissions on the client are gone; tests fail if those rules are reimplemented - files go straight to the file domain (create, upload, download, delete, commit, cancel); the host sees one registration per file; creating a channel allocates a file domain and works even when the file service is down - file panel shows which channel the files belong to and its space usage; unlimited files preview in chat; videos get a stored cover; the file service status is shown - fix: console flooded by Retry-After reads on every upload frame
9 lines
454 B
TypeScript
9 lines
454 B
TypeScript
import type { DefaultsBody } from '@/api/generated';
|
|
import type { CreateOptions } from './types';
|
|
|
|
export function creationOptions(defaults: DefaultsBody): CreateOptions {
|
|
const settings = defaults.channel;
|
|
return { mode: defaults.channel_mode, maxMembers: settings.max_members, ttlSeconds: settings.ttl_seconds, membersCanUpload: settings.members_can_upload,
|
|
fileMaxDownloads: settings.file_max_downloads, joinPolicy: settings.join_policy };
|
|
}
|