Skip to content

Commit

Permalink
feat(loader): loader as a cordis plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Feb 5, 2024
1 parent c1ac7b0 commit fd408a4
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
4 changes: 4 additions & 0 deletions packages/cordis/package.json
Expand Up @@ -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"
Expand Down
10 changes: 10 additions & 0 deletions 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)
}
}
8 changes: 5 additions & 3 deletions packages/cordis/src/worker/index.ts
Expand Up @@ -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'

Expand All @@ -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()
}
5 changes: 1 addition & 4 deletions packages/loader/src/shared.ts
Expand Up @@ -75,7 +75,6 @@ export abstract class Loader<T extends Loader.Options = Loader.Options> {
env: process.env,
}

public app: Context
public config!: Entry[]
public suspend = false
public writable = false
Expand All @@ -89,9 +88,7 @@ export abstract class Loader<T extends Loader.Options = Loader.Options> {
abstract import(name: string): Promise<any>
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) {
Expand Down

0 comments on commit fd408a4

Please sign in to comment.