UNPKG

global-package-version

Version:
57 lines (45 loc) 1.72 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _browserOrNode = require('browser-or-node'); var defaultOptions = { wrapper: 'packageVersion', customPackageName: null }; /* global window */ var hyphenCaseToCamelCase = function hyphenCaseToCamelCase(str) { if (typeof str === 'string') { return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); }); } return str; }; var assignToGlobal = function assignToGlobal(packageName, packageVersion, options) { var wrapper = options.wrapper ? options.wrapper : 'packageVersion'; if (_browserOrNode.isBrowser) { window[wrapper] = window[wrapper] || {}; window[wrapper][packageName] = packageVersion; } if (_browserOrNode.isNode) { global[wrapper] = global[wrapper] || {}; global[wrapper][packageName] = packageVersion; } }; var globalPackageVersion = function globalPackageVersion(packageJson) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var convertedPackageName = void 0; var packageVersion = void 0; // eslint-disable-next-line no-param-reassign options = Object.assign({}, defaultOptions, options); if (packageJson && packageJson.name && packageJson.version) { if (options.customPackageName) convertedPackageName = options.customPackageName;else convertedPackageName = hyphenCaseToCamelCase(packageJson.name); packageVersion = packageJson.version; } else { convertedPackageName = 'package__not__found'; packageVersion = 'package__not__found'; } assignToGlobal(convertedPackageName, packageVersion, options); }; exports.default = globalPackageVersion; module.exports = exports['default'];