BSB Node.js Type Definitions
    Preparing search index...

    Function createConfigSchema

    • Helper function to create a typed plugin configuration class with metadata.

      v9 Breaking Change: This replaces the manual Config class pattern. Instead of extending BSBPluginConfig directly, use this helper to create a Config class with built-in metadata support.

      The metadata is used to:

      • Auto-generate PLUGIN_CLIENT for ServiceClient usage
      • Auto-generate bsb-plugin.json during build
      • Provide plugin discovery and marketplace information

      Type Parameters

      • const TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

      Parameters

      • metadata: BSBPluginMetadata

        Plugin metadata (name, description, version, dependencies, etc.)

      • schema: TSchema

        Zod validation schema for the plugin configuration

      Returns BSBPluginConfigClass<TSchema>

      A Config class that extends BSBPluginConfig with metadata

      // v9 pattern:
      const TodoConfigSchema = z.object({
      database: z.object({
      host: z.string().default('localhost'),
      port: z.number().default(5432),
      }),
      });

      export const Config = createConfigSchema(
      {
      name: 'service-demo-todo',
      description: 'Demo Todo Service',
      version: '1.0.0',
      author: 'BSB Team',
      license: 'MIT',
      category: 'service',
      tags: ['demo', 'todo', 'example'],
      initAfterPlugins: ['observable-default', 'events-default'],
      },
      TodoConfigSchema
      );

      // Usage in plugin:
      export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
      static Config = Config; // Required for auto-generation
      }
    • Helper function to create a typed plugin configuration class with metadata.

      v9 Breaking Change: This replaces the manual Config class pattern. Instead of extending BSBPluginConfig directly, use this helper to create a Config class with built-in metadata support.

      The metadata is used to:

      • Auto-generate PLUGIN_CLIENT for ServiceClient usage
      • Auto-generate bsb-plugin.json during build
      • Provide plugin discovery and marketplace information

      Parameters

      • metadata: BSBPluginMetadata

        Plugin metadata (name, description, version, dependencies, etc.)

      Returns BSBPluginConfigClass<undefined>

      A Config class that extends BSBPluginConfig with metadata

      // v9 pattern:
      const TodoConfigSchema = z.object({
      database: z.object({
      host: z.string().default('localhost'),
      port: z.number().default(5432),
      }),
      });

      export const Config = createConfigSchema(
      {
      name: 'service-demo-todo',
      description: 'Demo Todo Service',
      version: '1.0.0',
      author: 'BSB Team',
      license: 'MIT',
      category: 'service',
      tags: ['demo', 'todo', 'example'],
      initAfterPlugins: ['observable-default', 'events-default'],
      },
      TodoConfigSchema
      );

      // Usage in plugin:
      export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
      static Config = Config; // Required for auto-generation
      }