sisense.com
✅ You are viewing documentation for the latest version of Compose SDK.
Version:

Interface Module Beta<TSchema>

A module definition which represents a named, versioned unit of Compose SDK functionality which could be consumed separately.

A module can require other modules (requires), include other modules (includes), contribute to the API of the modules it requires (integrations), and declare its own API for other modules to contribute to (api).

Example

A module that contributes a customization to the built-in dashboard module:

const dashboardBadgeModule: Module = {
  name: 'dashboard-badge',
  version: '1.0.0',
  requires: ['dashboard'],
  integrations: {
    dashboard: { customizations: [addBadgeToDashboardHeader] },
  },
};

Type parameters

ParameterDefault
TSchemaany

Properties

api

api?: TSchema

Producer-side API declaration; defines registries other modules contribute to.


includes

includes?: readonly Module< any >[]

Modules this one ships as part of its own feature.


integrations

integrations?: Record< string, unknown >

Declarative contributions to other modules, keyed by target module name.

Every target must be declared in requires; contributions to undeclared modules throw at startup.


name

name: string

Unique module identifier, e.g. 'dashboard'.


requires

requires?: readonly ModuleRequirement[]

Modules this module integrates with.

  • 'name' → hard requirement.
  • { name } → hard requirement.
  • { name, optional: true } → soft; contributions to it are dropped if absent.
  • { ..., requiredVersion: '^2.0.0' } → optional semver range constraint.

version

version: string

Semver version of the module (e.g. '1.0.0'), validated against requiredVersion constraints declared by other modules.

Last Updated: