diff --git a/packages/pubsub/src/index.ts b/packages/pubsub/src/index.ts index 35aa6dffa8..f931ee07e5 100644 --- a/packages/pubsub/src/index.ts +++ b/packages/pubsub/src/index.ts @@ -2,9 +2,8 @@ import commands from "./container.js"; //eslint-disable-next-line @typescript-eslint/no-unused-vars import type { SidecarMap } from '@akala/pm' import { State } from "./state.js"; -import { Container as BaseContainer, Processors, registerCommands } from "@akala/commands"; -import path from 'path'; export { State }; +import { Metadata } from "@akala/commands"; declare module '@akala/pm' { @@ -16,16 +15,6 @@ declare module '@akala/pm' export { SidecarMap }; export type Container = commands.container; export type ContainerProxy = commands.proxy; +export const connect = commands.connect; -//eslint-disable-next-line @typescript-eslint/no-var-requires -const metaContainer = require('../commands.json'); - -export class PubSubContainer extends BaseContainer implements commands.container -{ - constructor(name: string = 'pubsub') - { - super(name, {}); - registerCommands(metaContainer.commands, new Processors.FileSystem(path.join(__dirname, '../')), this); - } -} -export default PubSubContainer; \ No newline at end of file +export const meta = commands.meta as Metadata.Container; \ No newline at end of file diff --git a/packages/sidecar/src/init.ts b/packages/sidecar/src/init.ts index d23f2d320d..23ea3b14a5 100644 --- a/packages/sidecar/src/init.ts +++ b/packages/sidecar/src/init.ts @@ -1,14 +1,14 @@ import { connect, Container as pm, ContainerLite, Sidecar as pmSidecar, sidecar as pmsidecar } from '@akala/pm' import { Configuration } from '@akala/config' import { connectByPreference, Container, helper } from '@akala/commands' -import { PubSubContainer, ContainerProxy as PubSubProxy } from '@akala/pubsub' +import { ContainerProxy as PubSubProxy } from '@akala/pubsub' import { ModelDefinition, MultiStore, PersistenceEngine, providers, Store, StoreDefinition } from '@akala/storage' import os from 'os' import path from 'path' import { Serializable, eachAsync, mapAsync, module } from '@akala/core'; import { SerializableDefinition } from '@akala/storage' import { CliContext } from '@akala/cli' -import MetaPubSub from '@akala/pubsub/commands.json' assert {type: 'json'} +import { connect as pubsubConnect, meta as MetaPubSub, Container as PubSubContainer } from '@akala/pubsub' export interface PubSubConfiguration { @@ -62,27 +62,27 @@ export default async function app(context: CliContext module('@akala/pm').register('container', sidecar.pm, true); sidecar.sidecars = pmsidecar(); context.logger.info('connection established.'); - var pubSubContainer: PubSubContainer; + var pubSubContainer: PubSubContainer & Container; switch (typeof pubsubConfig) { case 'string': switch (pubsubConfig) { case 'default': - pubSubContainer = new PubSubContainer('pubsub'); + pubSubContainer = pubsubConnect(); break; case 'in-memory': - pubSubContainer = new PubSubContainer('pubsub'); + pubSubContainer = pubsubConnect(); break; default: var tmp = await connect(pubsubConfig); - pubSubContainer = (await connectByPreference(await tmp.connect, { metadata: MetaPubSub })).container as PubSubContainer; + pubSubContainer = (await connectByPreference(await tmp.connect, { metadata: MetaPubSub })).container as PubSubContainer & Container; break; } sidecar.pubsub = helper(pubSubContainer, MetaPubSub) break; case 'object': - pubSubContainer = new PubSubContainer('pubsub'); + pubSubContainer = pubsubConnect(); await pubSubContainer.attach(pubsubConfig.transport, pubsubConfig.transportOptions); sidecar.pubsub = helper(pubSubContainer, MetaPubSub); break;