diff --git a/packages/cordis/package.json b/packages/cordis/package.json index a9455f4..5ec35fc 100644 --- a/packages/cordis/package.json +++ b/packages/cordis/package.json @@ -17,6 +17,10 @@ "default": "./lib/cli.mjs", "types": "./lib/cli.d.ts" }, + "./group": { + "default": "./lib/group.mjs", + "types": "./lib/group.d.ts" + }, "./worker": { "default": "./lib/worker/index.mjs", "types": "./lib/worker/index.d.ts" diff --git a/packages/cordis/src/group.ts b/packages/cordis/src/group.ts new file mode 100644 index 0000000..d59f0be --- /dev/null +++ b/packages/cordis/src/group.ts @@ -0,0 +1,10 @@ +import { Entry } from '@cordisjs/loader' +import { Context } from './index.js' + +export const inject = ['loader'] + +export function apply(ctx: Context, config: Entry[]) { + for (const entry of config) { + ctx.loader.reload(ctx, entry) + } +} diff --git a/packages/cordis/src/worker/index.ts b/packages/cordis/src/worker/index.ts index f395365..626c584 100644 --- a/packages/cordis/src/worker/index.ts +++ b/packages/cordis/src/worker/index.ts @@ -2,6 +2,7 @@ import Loader from '@cordisjs/loader' import * as daemon from './daemon.js' import * as logger from './logger.js' import { ModuleLoader } from './internal.js' +import { Context } from '../index.ts' export type * from './internal.js' @@ -17,14 +18,15 @@ export interface Options extends Loader.Options { } export async function start(options: Options) { - const loader = new Loader(options) + const ctx = new Context() + const loader = new Loader(ctx, options) if (process.execArgv.includes('--expose-internals')) { const { internal } = await import('./internal.js') loader.internal = internal } await loader.init(process.env.CORDIS_LOADER_ENTRY) - if (options.logger) loader.app.plugin(logger) - if (options.daemon) loader.app.plugin(daemon) + if (options.logger) ctx.plugin(logger, options.logger) + if (options.daemon) ctx.plugin(daemon, options.daemon) await loader.readConfig() await loader.start() } diff --git a/packages/loader/src/shared.ts b/packages/loader/src/shared.ts index 4dc3d24..7f36fe9 100644 --- a/packages/loader/src/shared.ts +++ b/packages/loader/src/shared.ts @@ -75,7 +75,6 @@ export abstract class Loader { env: process.env, } - public app: Context public config!: Entry[] public suspend = false public writable = false @@ -89,9 +88,7 @@ export abstract class Loader { abstract import(name: string): Promise abstract fullReload(code?: number): void - constructor(public options: T) { - this.app = new Context() - } + constructor(public app: Context, public options: T) {} async init(filename?: string) { if (filename) {