23 lines
633 B
JavaScript
23 lines
633 B
JavaScript
'use strict';
|
|
|
|
var Individual = require('./index.js');
|
|
|
|
module.exports = OneVersion;
|
|
|
|
function OneVersion(moduleName, version, defaultValue) {
|
|
var key = '__INDIVIDUAL_ONE_VERSION_' + moduleName;
|
|
var enforceKey = key + '_ENFORCE_SINGLETON';
|
|
|
|
var versionValue = Individual(enforceKey, version);
|
|
|
|
if (versionValue !== version) {
|
|
throw new Error('Can only have one copy of ' +
|
|
moduleName + '.\n' +
|
|
'You already have version ' + versionValue +
|
|
' installed.\n' +
|
|
'This means you cannot install version ' + version);
|
|
}
|
|
|
|
return Individual(key, defaultValue);
|
|
}
|