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

    Function makeModule

    • Helper to define a capability module with explicit typing. Wraps the default export function to provide better type inference and make the pattern explicit.

      This helper provides explicit typing for the module activation function, making it clear that the function should:

      • Access CapabilityManager via the Effect layer system (Capability.get, Capability.getAll, etc.)
      • Return a capability, array of capabilities, or tuple of different capability types (sync or async)

      Supports returning multiple capabilities of different types as a tuple, which will be normalized to an array at runtime for compatibility with the plugin system.

      Type Parameters

      Parameters

      Returns (props?: TProps) => Effect<TReturn, E, R>

      // Module without options - single capability
      export default Capability.makeModule(
      Effect.fnUntraced(function* () {
      const client = yield* Capability.get(ClientCapabilities.Client);
      return contributes(Capabilities.SettingsStore, store);
      })
      );

      // Module with multiple capabilities
      export default Capability.makeModule(
      Effect.fnUntraced(function* () {
      return [
      contributes(Capabilities.SettingsStore, store),
      contributes(Capabilities.Translations, translations),
      ];
      })
      );

      // Module with additional options (context accessed via layer)
      export default Capability.makeModule(
      Effect.fnUntraced(function* ({ observability }: { observability?: boolean }) {
      const invoker = yield* Capability.get(Capabilities.OperationInvoker);
      return contributes(Capabilities.IntentResolver, ...);
      })
      );