UNPKG

npm-to-cdn

Version:

A CLI tool to get CDN links for any npm package.

57 lines (56 loc) 2.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPossibleUmdFiles = getPossibleUmdFiles; // Return a prioritized list of possible UMD file names for a given package and version function getPossibleUmdFiles(pkg, version, opts) { // Helper to parse major version function getMajor(ver) { if (!ver) return null; const m = ver.match(/^(\d+)/); return m ? parseInt(m[1], 10) : null; } const min = opts?.min ?? true; const dev = opts?.dev ?? false; switch (pkg) { case 'react': { const major = getMajor(version); if (major && major >= 18) { return dev ? ['react.development.js', 'umd/react.development.js'] : ['react.production.min.js', 'umd/react.production.min.js', 'react.development.js', 'umd/react.development.js']; } return min ? ['react.production.min.js', 'umd/react.production.min.js', 'react.development.js', 'umd/react.development.js'] : ['react.development.js', 'umd/react.development.js', 'react.production.min.js', 'umd/react.production.min.js']; } case 'react-dom': { const major = getMajor(version); if (major && major >= 18) { return dev ? ['react-dom.development.js', 'umd/react-dom.development.js'] : ['react-dom.production.min.js', 'umd/react-dom.production.min.js', 'react-dom.development.js', 'umd/react-dom.development.js']; } return min ? ['react-dom.production.min.js', 'umd/react-dom.production.min.js', 'react-dom.development.js', 'umd/react-dom.development.js'] : ['react-dom.development.js', 'umd/react-dom.development.js', 'react-dom.production.min.js', 'umd/react-dom.production.min.js']; } case 'vue': { const major = getMajor(version); if (major && major >= 3) { return min ? ['vue.global.prod.js', 'vue.runtime.global.prod.js', 'vue.global.js'] : ['vue.global.js', 'vue.global.prod.js', 'vue.runtime.global.prod.js']; } return min ? ['vue.runtime.min.js', 'vue.min.js'] : ['vue.js', 'vue.runtime.js', 'vue.runtime.min.js', 'vue.min.js']; } case 'lodash': return min ? ['lodash.min.js'] : ['lodash.js', 'lodash.min.js']; case 'axios': return min ? ['axios.min.js'] : ['axios.js', 'axios.min.js']; default: return min ? [`${pkg}.min.js`] : [`${pkg}.js`, `${pkg}.min.js`]; } }