diff --git a/src/core/modules.ts b/src/core/modules.ts index c374ac9..1015cde 100644 --- a/src/core/modules.ts +++ b/src/core/modules.ts @@ -7,22 +7,23 @@ import type { } from '../types/core-modules'; import { type _Module, partitionPlugins } from './_internal'; import type { Awaitable } from '../types/utility'; -import callsites from 'callsites'; +import callsites, { type CallSite } from 'callsites'; import * as Files from './module-loading' import * as Id from './id' - +const get_callsite = (css: CallSite[]) => { + return css.map(cs => cs.getFileName()).filter(Boolean) +} /** * @since 1.0.0 The wrapper function to define command modules for sern * @param mod */ export function commandModule(mod: InputCommand): _Module { const [onEvent, plugins] = partitionPlugins(mod.plugins); - const initCallsite = callsites().at(-2)?.getFileName(); + const initCallsite = get_callsite(callsites()).at(-2); if(!initCallsite) throw Error("initCallsite is null"); const { name, absPath } = Files.parseCallsite(initCallsite); - mod.name ??= name; - mod.description ??= '...' + mod.name ??= name; mod.description ??= '...' //@ts-ignore return { ...mod, @@ -41,11 +42,10 @@ export function commandModule(mod: InputCommand): _Module { */ export function eventModule(mod: InputEvent): _Module { const [onEvent, plugins] = partitionPlugins(mod.plugins); - const initCallsite = callsites().at(-2)?.getFileName(); + const initCallsite = get_callsite(callsites()).at(-2); if(!initCallsite) throw Error("initCallsite is null"); const { name, absPath } = Files.parseCallsite(initCallsite); - mod.name ??= name; - mod.description ??= '...' + mod.name ??= name; mod.description ??= '...' //@ts-ignore return { ...mod,