UNPKG

1.93 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _isBoolean2 = require('lodash/isBoolean');
8
9var _isBoolean3 = _interopRequireDefault(_isBoolean2);
10
11var _isUndefined2 = require('lodash/isUndefined');
12
13var _isUndefined3 = _interopRequireDefault(_isUndefined2);
14
15var _forEach2 = require('lodash/forEach');
16
17var _forEach3 = _interopRequireDefault(_forEach2);
18
19var _es6Map = require('es6-map');
20
21var _es6Map2 = _interopRequireDefault(_es6Map);
22
23function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
25var userConfigurationIndex = undefined;
26
27userConfigurationIndex = new _es6Map2.default();
28
29/**
30 * @typedef CSSModules~Options
31 * @see {@link https://github.com/gajus/react-css-modules#options}
32 * @property {boolean} allowMultiple
33 * @property {boolean} errorWhenNotFound
34 */
35
36/**
37 * @param {CSSModules~Options} userConfiguration
38 * @returns {CSSModules~Options}
39 */
40
41exports.default = function () {
42 var userConfiguration = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
43
44 var configuration = undefined;
45
46 configuration = userConfigurationIndex.get(userConfiguration);
47
48 if (configuration) {
49 return configuration;
50 }
51
52 configuration = {
53 allowMultiple: false,
54 errorWhenNotFound: true
55 };
56
57 (0, _forEach3.default)(userConfiguration, function (value, name) {
58 if ((0, _isUndefined3.default)(configuration[name])) {
59 throw new Error('Unknown configuration property "' + name + '".');
60 }
61
62 if (!(0, _isBoolean3.default)(value)) {
63 throw new Error('"' + name + '" property value must be a boolean.');
64 }
65
66 configuration[name] = value;
67 });
68
69 userConfigurationIndex.set(userConfiguration, configuration);
70
71 return configuration;
72};
73
74module.exports = exports['default'];
75//# sourceMappingURL=makeConfiguration.js.map