2022-01-17 17:06:10 +00:00
|
|
|
/**
|
|
|
|
* @author Martin Karkowski
|
|
|
|
* @email m.karkowski@zema.de
|
|
|
|
* @desc [description]
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { injectable } from "inversify";
|
|
|
|
import { resolve } from "path";
|
|
|
|
import "reflect-metadata";
|
|
|
|
import { IPackageDescription } from "../types/nope/nopePackage.interface";
|
2022-01-17 18:23:00 +00:00
|
|
|
import { NopePackageLoader } from "./nopePackageLoader";
|
2022-01-17 17:06:10 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Helper Class to Build an inversify Container.
|
|
|
|
*
|
|
|
|
* @export
|
|
|
|
* @class NopePackageLoader
|
|
|
|
* @implements {INopePackageLoader}
|
|
|
|
*/
|
|
|
|
@injectable()
|
|
|
|
export class NopePackageLoaderFileAccess extends NopePackageLoader {
|
|
|
|
async loadPackageFile(path: string, useAutostart = true, useInstance = true) {
|
|
|
|
const loadedPackage = (await import(resolve(path)))
|
|
|
|
.DESCRIPTION as IPackageDescription<any>;
|
|
|
|
if (!useAutostart) {
|
|
|
|
loadedPackage.autostart = {};
|
|
|
|
}
|
|
|
|
if (!useInstance) {
|
|
|
|
loadedPackage.defaultInstances = [];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|