UNPKG

@kospa/base

Version:

Base components for kospa framework

117 lines (116 loc) 3.87 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setViewLoader = exports.setModuleLoader = exports.setViewLocator = exports.setModuleLocator = exports.loadView = exports.loadModule = exports.viewLoader = exports.moduleLoader = exports.viewLocator = exports.moduleLocator = void 0; // @ts-ignore var IS_AMD = (typeof define === "function" && define.amd); // @ts-ignore var IS_COMMONJS = (typeof module === "object" && module.exports); // @ts-ignore var IS_SYSTEMJS = (typeof System === "object" && typeof System.import === "function"); exports.moduleLocator = defaultModuleLocator; exports.viewLocator = defaultViewLocator; exports.moduleLoader = defaultModuleLoader; exports.viewLoader = defaultViewLoader; function loadModule(module) { return exports.moduleLoader(exports.moduleLocator(module)); } exports.loadModule = loadModule; function loadView(view) { return exports.viewLoader(exports.viewLocator(view)); } exports.loadView = loadView; function setModuleLocator(locator) { exports.moduleLocator = locator; } exports.setModuleLocator = setModuleLocator; function setViewLocator(locator) { exports.viewLocator = locator; } exports.setViewLocator = setViewLocator; function setModuleLoader(loader) { exports.moduleLoader = loader; } exports.setModuleLoader = setModuleLoader; function setViewLoader(loader) { exports.viewLoader = loader; } exports.setViewLoader = setViewLoader; function defaultModuleLocator(module) { return module; } function defaultViewLocator(view) { if (IS_AMD) { return "text!" + addHTMLExtension(view); } else if (IS_COMMONJS) { return view; } else if (IS_SYSTEMJS) { return addHTMLExtension(view) + "!text"; } else { throw new TypeError("No import mecanism available!"); } } function defaultModuleLoader(module) { if (IS_AMD) { return importAMD(module); } else if (IS_COMMONJS) { return importCommonJS(module); } else if (IS_SYSTEMJS) { return importSystemJS(module); } else { return Promise.reject(new TypeError("No import mecanism available!")); } } function defaultViewLoader(view) { return defaultModuleLoader(view) .then(function (res) { if (IS_COMMONJS) { return res.view || res.default; } return res; }); } function importAMD(module) { return new Promise(function (resolve, reject) { try { // @ts-ignore require([module], function (mod) { resolve(mod); }, function (err) { reject(err); }); } catch (e) { reject(e); } }); } function importCommonJS(module) { return new Promise(function (resolve, reject) { try { // @ts-ignore resolve(require(module)); } catch (e) { reject(e); } }); } function importSystemJS(module) { // @ts-ignore return System.import(module); } function addHTMLExtension(path) { return path + (/\.html$/.test(path) ? "" : ".html"); } });