-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathchannel-setup.ts
More file actions
47 lines (42 loc) · 1.56 KB
/
Copy pathchannel-setup.ts
File metadata and controls
47 lines (42 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import type { ChannelSetupWizard } from "../channels/plugins/setup-wizard.js";
import type { ChannelSetupAdapter } from "../channels/plugins/types.adapters.js";
import type { ChannelSetupInput } from "../channels/plugins/types.core.js";
import {
createOptionalChannelSetupAdapter,
createOptionalChannelSetupWizard,
} from "./optional-channel-setup.js";
export type { ChannelSetupAdapter } from "../channels/plugins/types.adapters.js";
export type { ChannelSetupInput } from "../channels/plugins/types.core.js";
export type { ChannelSetupDmPolicy, ChannelSetupWizard } from "./setup.js";
export {
DEFAULT_ACCOUNT_ID,
createTopLevelChannelDmPolicy,
formatDocsLink,
setSetupChannelEnabled,
splitSetupEntries,
} from "./setup.js";
/** Metadata used to advertise an optional channel plugin during setup flows. */
type OptionalChannelSetupParams = {
channel: string;
label: string;
npmSpec?: string;
docsPath?: string;
};
/** Paired setup adapter + setup wizard for channels that may not be installed yet. */
export type OptionalChannelSetupSurface = {
setupAdapter: ChannelSetupAdapter;
setupWizard: ChannelSetupWizard;
};
export {
createOptionalChannelSetupAdapter,
createOptionalChannelSetupWizard,
} from "./optional-channel-setup.js";
/** Build both optional setup surfaces from one metadata object. */
export function createOptionalChannelSetupSurface(
params: OptionalChannelSetupParams,
): OptionalChannelSetupSurface {
return {
setupAdapter: createOptionalChannelSetupAdapter(params),
setupWizard: createOptionalChannelSetupWizard(params),
};
}