2020-07-27 14:41:04 +00:00
|
|
|
import {Canonical, CanonicalDefinition} from './Canonical.ts'
|
|
|
|
import {InvalidCanonicalExportError} from './InstantiableCanonical.ts'
|
|
|
|
import {isStaticClass, StaticClass} from '../../../di/src/type/StaticClass.ts'
|
|
|
|
|
2020-08-17 14:44:23 +00:00
|
|
|
/**
|
|
|
|
* Base canonical unit which loads static classes from their canonical files.
|
|
|
|
* @extends Canonical
|
|
|
|
*/
|
2020-07-27 14:41:04 +00:00
|
|
|
export class StaticCanonical<T, T2> extends Canonical<StaticClass<T, T2>> {
|
|
|
|
public async init_canonical_item(def: CanonicalDefinition): Promise<StaticClass<T, T2>> {
|
|
|
|
if ( isStaticClass(def.imported.default) ) {
|
|
|
|
return def.imported.default
|
|
|
|
}
|
|
|
|
|
|
|
|
throw new InvalidCanonicalExportError(def.original_name)
|
|
|
|
}
|
|
|
|
}
|