@dxos/app-framework - v0.16.0
    Preparing search index...

    Function namespace

    • A plugin's identity as a leaf module: its config and its capability tags both derive from it, so the config can list the tags its modules provide without the tags importing the config.

      Type Parameters

      • const K extends string

      Parameters

      • key: K

      Returns {
          key: K;
          make: <T>() => <const N extends string>(
              name: N,
          ) => MultiTag<T, `${K}.capability.${N}`>;
          makeSingleton: <T>() => <const N extends string>(
              name: N,
          ) => Tag<T, `${K}.capability.${N}`>;
      }

      • key: K
      • make: <T>() => <const N extends string>(
            name: N,
        ) => MultiTag<T, `${K}.capability.${N}`>

        A multi capability with identifier <key>.capability.<name>.

      • makeSingleton: <T>() => <const N extends string>(name: N) => Tag<T, `${K}.capability.${N}`>

        A singleton capability with identifier <key>.capability.<name>.

      // src/namespace.ts
      export const MarkdownNamespace = Plugin.namespace('org.dxos.plugin.markdown');
      // src/types/MarkdownCapabilities.ts
      export const Settings = MarkdownNamespace.makeSingleton<Atom.Writable<Settings>>()('settings');
      // dx.config.ts
      Plugin.config({ plugin: { key: MarkdownNamespace.key, … }, modules: [ … ] });