UNPKG

1.66 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
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21/**
22 * @typedef CSSModules~Options
23 * @see {@link https://github.com/gajus/react-css-modules#options}
24 * @property {boolean} allowMultiple
25 * @property {string} handleNotFoundStyleName
26 */
27
28/**
29 * @param {CSSModules~Options} userConfiguration
30 * @returns {CSSModules~Options}
31 */
32exports.default = function () {
33 var userConfiguration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
35 var configuration = {
36 allowMultiple: false,
37 handleNotFoundStyleName: 'throw'
38 };
39
40 (0, _forEach3.default)(userConfiguration, function (value, name) {
41 if ((0, _isUndefined3.default)(configuration[name])) {
42 throw new Error('Unknown configuration property "' + name + '".');
43 }
44
45 if (name === 'allowMultiple' && !(0, _isBoolean3.default)(value)) {
46 throw new Error('"allowMultiple" property value must be a boolean.');
47 }
48
49 if (name === 'handleNotFoundStyleName' && !['throw', 'log', 'ignore'].includes(value)) {
50 throw new Error('"handleNotFoundStyleName" property value must be "throw", "log" or "ignore".');
51 }
52
53 configuration[name] = value;
54 });
55
56 return configuration;
57};
58
59module.exports = exports['default'];
\No newline at end of file