UNPKG

1.89 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 = new _es6Map2.default();
26
27/**
28 * @typedef CSSModules~Options
29 * @see {@link https://github.com/gajus/react-css-modules#options}
30 * @property {boolean} allowMultiple
31 * @property {boolean} errorWhenNotFound
32 */
33
34/**
35 * @param {CSSModules~Options} userConfiguration
36 * @returns {CSSModules~Options}
37 */
38
39exports.default = function () {
40 var userConfiguration = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
41
42 var configuration = void 0;
43
44 configuration = userConfigurationIndex.get(userConfiguration);
45
46 if (configuration) {
47 return configuration;
48 }
49
50 configuration = {
51 allowMultiple: false,
52 errorWhenNotFound: true
53 };
54
55 (0, _forEach3.default)(userConfiguration, function (value, name) {
56 if ((0, _isUndefined3.default)(configuration[name])) {
57 throw new Error('Unknown configuration property "' + name + '".');
58 }
59
60 if (!(0, _isBoolean3.default)(value)) {
61 throw new Error('"' + name + '" property value must be a boolean.');
62 }
63
64 configuration[name] = value;
65 });
66
67 userConfigurationIndex.set(userConfiguration, configuration);
68
69 return configuration;
70};
71
72module.exports = exports['default'];
73//# sourceMappingURL=makeConfiguration.js.map