UNPKG

@pkgr/umd-globals

Version:
53 lines 1.51 kB
export const AS_IS_PKGS = [ 'dayjs', 'moment', 'prettier', 'rxjs', 'tslib', ]; export const UPPER_CAMEL_CASE_PKGS = ['react', 'react-router', 'redux', 'vue']; export const normalizePkg = (pkg) => { if (pkg.startsWith('@')) { pkg = pkg.split('/').slice(1).join('/'); } return pkg; }; export const asIsReducer = (globals, pkg) => ({ ...(typeof globals === 'string' ? { [globals]: normalizePkg(globals), } : globals), ...(pkg && { [pkg]: normalizePkg(pkg), }), }); export const upperCamelCase = (pkg) => pkg.replace(/(^|-)([a-z])/g, (_, _$1, $2) => $2.toUpperCase()); export const upperCamelCaseReducer = (globals, pkg) => ({ ...(typeof globals === 'string' ? { [globals]: upperCamelCase(normalizePkg(globals)), } : globals), ...(pkg && { [pkg]: upperCamelCase(normalizePkg(pkg)), }), }); const GLOBALS = { lodash: '_', qrcode: 'QRCode', qrious: 'QRious', 'react-dom': 'ReactDOM', underscore: '_', }; export const getGlobals = ({ asIsPkgs, upperCamelCasePkgs, globals, } = {}) => ({ ...GLOBALS, ...AS_IS_PKGS.reduce(asIsReducer, {}), ...UPPER_CAMEL_CASE_PKGS.reduce(upperCamelCaseReducer, {}), ...(asIsPkgs ?? []).reduce(asIsReducer, {}), ...(upperCamelCasePkgs ?? []).reduce(upperCamelCaseReducer, {}), ...globals, }); export const globals = getGlobals(); export default globals; //# sourceMappingURL=index.js.map