@travetto/email
Version:
Email transmission module.
18 lines (17 loc) • 772 B
text/typescript
import { AppError, Env, FileLoader, Runtime, RuntimeIndex } from '@travetto/runtime';
/** Build a resource loader that looks into a module and it's dependencies */
export class EmailResourceLoader extends FileLoader {
constructor(moduleName: string, globalResources?: string[]) {
const found = RuntimeIndex.getModule(moduleName);
if (!found) {
throw new AppError(`Unknown module - ${moduleName}`, { category: 'notfound', details: { module: moduleName } });
}
super([
...Env.TRV_RESOURCES.list ?? [],
`${moduleName}#resources`,
...RuntimeIndex.getDependentModules(found, 'children').map(module => `${module.name}#resources`),
'@@#resources',
...globalResources ?? []
].map(name => Runtime.modulePath(name)));
}
}