@pkgr/umd-globals
Version:
Union collections of umd globals mappings
53 lines • 1.51 kB
JavaScript
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