UNPKG

@descope/sdk-mixins

Version:
27 lines (24 loc) 1.37 kB
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