From cd387af2c619d5d0c455609f99019f49828c971a Mon Sep 17 00:00:00 2001 From: garrettmills Date: Sat, 6 Mar 2021 11:44:32 -0600 Subject: [PATCH] Support named canonical exports --- src/service/Canonical.ts | 2 +- src/service/CanonicalInstantiable.ts | 4 ++++ src/service/CanonicalStatic.ts | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/service/Canonical.ts b/src/service/Canonical.ts index ce08b78..fadbdc5 100644 --- a/src/service/Canonical.ts +++ b/src/service/Canonical.ts @@ -105,7 +105,7 @@ export abstract class Canonical extends Unit { } public async initCanonicalItem(definition: CanonicalDefinition): Promise { - return definition.imported.default + return definition.imported.default ?? definition.imported[definition.canonicalName] } protected async buildCanonicalDefinition(filePath: string): Promise { diff --git a/src/service/CanonicalInstantiable.ts b/src/service/CanonicalInstantiable.ts index 53dfe21..4210150 100644 --- a/src/service/CanonicalInstantiable.ts +++ b/src/service/CanonicalInstantiable.ts @@ -17,6 +17,10 @@ export class CanonicalInstantiable extends Canonical> { return this.app().make(definition.imported.default) } + if ( isInstantiable(definition.imported[definition.canonicalName]) ) { + return this.app().make(definition.imported[definition.canonicalName]) + } + throw new InvalidCanonicalExportError(definition.originalName) } } \ No newline at end of file diff --git a/src/service/CanonicalStatic.ts b/src/service/CanonicalStatic.ts index 742b1aa..37e844b 100644 --- a/src/service/CanonicalStatic.ts +++ b/src/service/CanonicalStatic.ts @@ -8,6 +8,10 @@ export class CanonicalStatic extends Canonical> { return definition.imported.default } + if ( isStaticClass(definition.imported[definition.canonicalName]) ) { + return definition.imported[definition.canonicalName] + } + throw new InvalidCanonicalExportError(definition.originalName) } }