@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
29 lines (25 loc) • 1.41 kB
JavaScript
;
var sdkHelpers = require('@descope/sdk-helpers');
var loggerMixin = require('../loggerMixin/loggerMixin.js');
var constants = require('./constants.js');
var helpers = require('./helpers.js');
const injectNpmLibMixin = sdkHelpers.createSingletonMixin((superclass) => {
const BaseClass = sdkHelpers.compose(loggerMixin.loggerMixin)(superclass);
return class InjectNpmLibMixinClass extends BaseClass {
get baseCdnUrl() {
return this.getAttribute('base-cdn-url') || '';
}
injectNpmLib(libName, version, filePath = '', overrides = [], integrity) {
this.logger.debug(`Injecting npm lib: "${libName}" with version: "${version}"${integrity ? ' with SRI integrity check' : ''}`);
return helpers.injectScriptWithFallbacks(helpers.generateLibUrls([...overrides, this.baseCdnUrl, ...constants.BASE_URLS], libName, version, filePath, integrity), (scriptData, existingScript) => {
if (existingScript) {
this.logger.error(`Existing script cannot be loaded: "${scriptData.url}"`);
return;
}
this.logger.error(`Cannot load script from URL, Make sure this URL is valid and return the correct script: "${scriptData.url}"`);
});
}
};
});
exports.injectNpmLibMixin = injectNpmLibMixin;
//# sourceMappingURL=injectNpmLibMixin.js.map