@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
27 lines (24 loc) • 1.37 kB
JavaScript
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
import { loggerMixin } from '../loggerMixin/loggerMixin.js';
import { BASE_URLS } from './constants.js';
import { injectScriptWithFallbacks, generateLibUrls } from './helpers.js';
const injectNpmLibMixin = createSingletonMixin((superclass) => {
const BaseClass = compose(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 injectScriptWithFallbacks(generateLibUrls([...overrides, this.baseCdnUrl, ...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}"`);
});
}
};
});
export { injectNpmLibMixin };
//# sourceMappingURL=injectNpmLibMixin.js.map