1 | 'use strict';
|
2 |
|
3 | var _Object$keys = require('babel-runtime/core-js/object/keys')['default'];
|
4 |
|
5 | var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];
|
6 |
|
7 | var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
|
8 |
|
9 | exports.__esModule = true;
|
10 | exports.default_webpack_assets = default_webpack_assets;
|
11 | exports.normalize_options = normalize_options;
|
12 | exports.alias = alias;
|
13 |
|
14 | var _path = require('path');
|
15 |
|
16 | var _path2 = _interopRequireDefault(_path);
|
17 |
|
18 | var _helpers = require('./helpers');
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | function default_webpack_assets() {
|
24 | var webpack_assets = {
|
25 | javascript: {},
|
26 | styles: {},
|
27 | assets: {}
|
28 | };
|
29 |
|
30 | return webpack_assets;
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 | function normalize_options(options) {
|
36 |
|
37 | for (var _iterator = _Object$keys(options), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {
|
38 | var _ref;
|
39 |
|
40 | if (_isArray) {
|
41 | if (_i >= _iterator.length) break;
|
42 | _ref = _iterator[_i++];
|
43 | } else {
|
44 | _i = _iterator.next();
|
45 | if (_i.done) break;
|
46 | _ref = _i.value;
|
47 | }
|
48 |
|
49 | var key = _ref;
|
50 |
|
51 | switch (key) {
|
52 | case 'assets':
|
53 | if (!_helpers.is_object(options[key])) {
|
54 | throw new Error('"' + key + '" configuration parameter must be ' + 'an object');
|
55 | }
|
56 | break;
|
57 |
|
58 | case 'debug':
|
59 | if (typeof options[key] !== 'boolean') {
|
60 | throw new Error('"' + key + '" configuration parameter must be ' + 'a boolean');
|
61 | }
|
62 | break;
|
63 |
|
64 | case 'webpack_assets_file_path':
|
65 | if (typeof options[key] !== 'string') {
|
66 | throw new Error('"' + key + '" configuration parameter must be ' + 'a string');
|
67 | }
|
68 | break;
|
69 |
|
70 | case 'alias':
|
71 | if (!_helpers.is_object(options[key])) {
|
72 | throw new Error('"' + key + '" configuration parameter must be ' + 'an object');
|
73 | }
|
74 | break;
|
75 |
|
76 | default:
|
77 | throw new Error('Unknown configuration parameter "' + key + '"');
|
78 | }
|
79 | }
|
80 |
|
81 |
|
82 | if (!options.assets) {
|
83 |
|
84 | throw new Error('You must specify "assets" parameter in webpack-isomorphic-tools configuration');
|
85 | }
|
86 |
|
87 |
|
88 | options.webpack_assets_file_path = options.webpack_assets_file_path || 'webpack-assets.json';
|
89 |
|
90 |
|
91 | if (options.alias) {
|
92 | for (var _iterator2 = _Object$keys(options.alias), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {
|
93 | var _ref2;
|
94 |
|
95 | if (_isArray2) {
|
96 | if (_i2 >= _iterator2.length) break;
|
97 | _ref2 = _iterator2[_i2++];
|
98 | } else {
|
99 | _i2 = _iterator2.next();
|
100 | if (_i2.done) break;
|
101 | _ref2 = _i2.value;
|
102 | }
|
103 |
|
104 | var key = _ref2;
|
105 |
|
106 | if (typeof options.alias[key] !== 'string') {
|
107 | throw new Error('Invalid alias for "' + key + '": "' + options.alias[key] + '"');
|
108 | }
|
109 | }
|
110 | }
|
111 |
|
112 |
|
113 | for (var _iterator3 = _Object$keys(options.assets), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {
|
114 | var _ref3;
|
115 |
|
116 | if (_isArray3) {
|
117 | if (_i3 >= _iterator3.length) break;
|
118 | _ref3 = _iterator3[_i3++];
|
119 | } else {
|
120 | _i3 = _iterator3.next();
|
121 | if (_i3.done) break;
|
122 | _ref3 = _i3.value;
|
123 | }
|
124 |
|
125 | var asset_type = _ref3;
|
126 |
|
127 | var description = options.assets[asset_type];
|
128 |
|
129 |
|
130 | if (description.extension) {
|
131 |
|
132 | if (Array.isArray(description.extension)) {
|
133 | throw new Error('Use "extensions" key instead of "extension" for specifying an array of file extensions for assets of type "' + asset_type + '"');
|
134 | }
|
135 |
|
136 |
|
137 | if (typeof description.extension !== 'string') {
|
138 | throw new Error('"extension" value must be a string for assets of type "' + asset_type + '"');
|
139 | }
|
140 |
|
141 |
|
142 | description.extensions = [description.extension];
|
143 | delete description.extension;
|
144 | }
|
145 |
|
146 |
|
147 | if (!description.extensions) {
|
148 | throw new Error('You must specify file extensions for assets of type "' + asset_type + '"');
|
149 | }
|
150 |
|
151 |
|
152 | for (var _iterator4 = _Object$keys(description), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {
|
153 | var _ref4;
|
154 |
|
155 | if (_isArray4) {
|
156 | if (_i4 >= _iterator4.length) break;
|
157 | _ref4 = _iterator4[_i4++];
|
158 | } else {
|
159 | _i4 = _iterator4.next();
|
160 | if (_i4.done) break;
|
161 | _ref4 = _i4.value;
|
162 | }
|
163 |
|
164 | var key = _ref4;
|
165 |
|
166 | switch (key) {
|
167 | case 'extensions':
|
168 | break;
|
169 |
|
170 | case 'exclude':
|
171 | if (!Array.isArray(description[key])) {
|
172 | throw new Error('"' + key + '" must be an array for asset type "' + asset_type + '"');
|
173 | }
|
174 | for (var _iterator5 = description[key], _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {
|
175 | var _ref5;
|
176 |
|
177 | if (_isArray5) {
|
178 | if (_i5 >= _iterator5.length) break;
|
179 | _ref5 = _iterator5[_i5++];
|
180 | } else {
|
181 | _i5 = _iterator5.next();
|
182 | if (_i5.done) break;
|
183 | _ref5 = _i5.value;
|
184 | }
|
185 |
|
186 | var exclusion = _ref5;
|
187 |
|
188 | if (typeof exclusion !== 'string' && !(exclusion instanceof RegExp) && typeof exclusion !== 'function') {
|
189 | throw new Error('Unsupported object type for exclusion "' + exclusion + '" for asset type "' + asset_type + '"');
|
190 | }
|
191 | }
|
192 | break;
|
193 |
|
194 | case 'include':
|
195 | if (!Array.isArray(description[key])) {
|
196 | throw new Error('"' + key + '" must be an array for asset type "' + asset_type + '"');
|
197 | }
|
198 | for (var _iterator6 = description[key], _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {
|
199 | var _ref6;
|
200 |
|
201 | if (_isArray6) {
|
202 | if (_i6 >= _iterator6.length) break;
|
203 | _ref6 = _iterator6[_i6++];
|
204 | } else {
|
205 | _i6 = _iterator6.next();
|
206 | if (_i6.done) break;
|
207 | _ref6 = _i6.value;
|
208 | }
|
209 |
|
210 | var inclusion = _ref6;
|
211 |
|
212 | if (typeof inclusion !== 'string' && !(inclusion instanceof RegExp) && typeof inclusion !== 'function') {
|
213 | throw new Error('Unsupported object type for inclusion "' + inclusion + '" for asset type "' + asset_type + '"');
|
214 | }
|
215 | }
|
216 | break;
|
217 |
|
218 | case 'filter':
|
219 | case 'parser':
|
220 | case 'path':
|
221 | if (typeof description[key] !== 'function') {
|
222 | throw new Error('"' + key + '" must be a function for asset type "' + asset_type + '"');
|
223 | }
|
224 | break;
|
225 |
|
226 | default:
|
227 | throw new Error('Unknown property "' + key + '" for asset type "' + asset_type + '"');
|
228 | }
|
229 | }
|
230 | }
|
231 | }
|
232 |
|
233 | function alias(path, aliases) {
|
234 |
|
235 | if (_helpers.starts_with(path, '.') || _helpers.starts_with(path, '/')) {
|
236 | return;
|
237 | }
|
238 |
|
239 |
|
240 | var slash_index = path.indexOf('/');
|
241 | var module_name = slash_index >= 0 ? path.substring(0, slash_index) : path;
|
242 | var rest = slash_index >= 0 ? path.substring(slash_index) : '';
|
243 |
|
244 |
|
245 | var alias = aliases[module_name];
|
246 |
|
247 |
|
248 | if (alias) {
|
249 | return alias + rest;
|
250 | }
|
251 | }
|
252 |
|
\ | No newline at end of file |