import {InstantiableCanonical} from './InstantiableCanonical.ts' import {ServiceProvider} from '../service/ServiceProvider.ts' import {CanonicalDefinition} from './Canonical.ts' export default class Services extends InstantiableCanonical { protected base_path = './app/services' protected canonical_item = 'service' protected suffix = '.service.ts' public async init_canonical_item(def: CanonicalDefinition) { const item = await super.init_canonical_item(def) if ( !(item instanceof ServiceProvider) ) { throw new TypeError(`Invalid service provider definition: ${def.original_name}. Service providers must extend from Daton's base ServiceProvider class.`) } return item } }