UNPKG

nope-js-node

Version:

NoPE Runtime for Nodejs. For Browser-Support please use nope-browser

54 lines (53 loc) 2.15 kB
"use strict"; /** * @author Martin Karkowski * @email m.karkowski@zema.de */ Object.defineProperty(exports, "__esModule", { value: true }); exports.getPackageLoader = void 0; const singletonMethod_1 = require("../helpers/singletonMethod"); const generateNopeBasicPackage_1 = require("./generateNopeBasicPackage"); const nopePackageLoader_1 = require("./nopePackageLoader"); /** * Function to extract the Package-Loader. This Package-Loader omits methods, that depends on a file-system. * * This method should be used in a browser enviroment, otherwise use the function created for the Backend. * * @param {INopeDispatcherOptions} dispatcherOptions The provided options for the Dispatcher * @param options Settings for the creation of the Dispatcher etc. * @returns {INopePackageLoader} The Package loader. */ function getPackageLoader(dispatcherOptions, options = {}) { if (options.packageLoaderConstructorClass === null || options.packageLoaderConstructorClass === undefined) { options.packageLoaderConstructorClass = nopePackageLoader_1.NopePackageLoader; } options = Object.assign({ packageLoaderConstructorClass: null, dispatcherConstructorClass: null, singleton: true, useBaseServices: true, }, options); const create = () => { // Create a loader const loader = new options.packageLoaderConstructorClass(); // load the default Package: loader .addPackage((0, generateNopeBasicPackage_1.generateNopeBasicPackage)(dispatcherOptions, options.singleton)) .catch((e) => { throw e; }); return loader; }; if (options.singleton) { // Create a singaleton if required. // use the container to receive the // singleton object const container = (0, singletonMethod_1.getSingleton)("nopeBackendPackageLoader.instance", create); return container.instance; } // No singleton is required => // create a new instance. return create(); } exports.getPackageLoader = getPackageLoader;