@modern-js/server-utils 2.0.0-beta.3 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,146 +1,368 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
- import * as path from 'path';
6
- import { getBabelChain, applyUserBabelConfig } from '@modern-js/babel-preset-lib';
7
- import { fs, json5, getAliasConfig } from '@modern-js/utils';
8
- import { compiler } from '@modern-js/babel-compiler';
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _defineProperty(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+ return obj;
50
+ }
51
+ function _iterableToArrayLimit(arr, i) {
52
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
53
+ if (_i == null) return;
54
+ var _arr = [];
55
+ var _n = true;
56
+ var _d = false;
57
+ var _s, _e;
58
+ try {
59
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
60
+ _arr.push(_s.value);
61
+ if (i && _arr.length === i) break;
62
+ }
63
+ } catch (err) {
64
+ _d = true;
65
+ _e = err;
66
+ } finally{
67
+ try {
68
+ if (!_n && _i["return"] != null) _i["return"]();
69
+ } finally{
70
+ if (_d) throw _e;
71
+ }
72
+ }
73
+ return _arr;
74
+ }
75
+ function _nonIterableRest() {
76
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
77
+ }
78
+ function _objectSpread(target) {
79
+ for(var i = 1; i < arguments.length; i++){
80
+ var source = arguments[i] != null ? arguments[i] : {};
81
+ var ownKeys = Object.keys(source);
82
+ if (typeof Object.getOwnPropertySymbols === "function") {
83
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
84
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
85
+ }));
86
+ }
87
+ ownKeys.forEach(function(key) {
88
+ _defineProperty(target, key, source[key]);
89
+ });
90
+ }
91
+ return target;
92
+ }
93
+ function ownKeys(object, enumerableOnly) {
94
+ var keys = Object.keys(object);
95
+ if (Object.getOwnPropertySymbols) {
96
+ var symbols = Object.getOwnPropertySymbols(object);
97
+ if (enumerableOnly) {
98
+ symbols = symbols.filter(function(sym) {
99
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
100
+ });
101
+ }
102
+ keys.push.apply(keys, symbols);
103
+ }
104
+ return keys;
105
+ }
106
+ function _objectSpreadProps(target, source) {
107
+ source = source != null ? source : {};
108
+ if (Object.getOwnPropertyDescriptors) {
109
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
110
+ } else {
111
+ ownKeys(Object(source)).forEach(function(key) {
112
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
113
+ });
114
+ }
115
+ return target;
116
+ }
117
+ function _slicedToArray(arr, i) {
118
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
119
+ }
120
+ function _unsupportedIterableToArray(o, minLen) {
121
+ if (!o) return;
122
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
123
+ var n = Object.prototype.toString.call(o).slice(8, -1);
124
+ if (n === "Object" && o.constructor) n = o.constructor.name;
125
+ if (n === "Map" || n === "Set") return Array.from(n);
126
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
127
+ }
128
+ var __generator = this && this.__generator || function(thisArg, body) {
129
+ var f, y, t, g, _ = {
130
+ label: 0,
131
+ sent: function() {
132
+ if (t[0] & 1) throw t[1];
133
+ return t[1];
134
+ },
135
+ trys: [],
136
+ ops: []
137
+ };
138
+ return(g = {
139
+ next: verb(0),
140
+ "throw": verb(1),
141
+ "return": verb(2)
142
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
143
+ return this;
144
+ }), g);
145
+ function verb(n) {
146
+ return function(v) {
147
+ return step([
148
+ n,
149
+ v
150
+ ]);
151
+ };
152
+ }
153
+ function step(op) {
154
+ if (f) throw new TypeError("Generator is already executing.");
155
+ while(_)try {
156
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
157
+ if (y = 0, t) op = [
158
+ op[0] & 2,
159
+ t.value
160
+ ];
161
+ switch(op[0]){
162
+ case 0:
163
+ case 1:
164
+ t = op;
165
+ break;
166
+ case 4:
167
+ _.label++;
168
+ return {
169
+ value: op[1],
170
+ done: false
171
+ };
172
+ case 5:
173
+ _.label++;
174
+ y = op[1];
175
+ op = [
176
+ 0
177
+ ];
178
+ continue;
179
+ case 7:
180
+ op = _.ops.pop();
181
+ _.trys.pop();
182
+ continue;
183
+ default:
184
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
185
+ _ = 0;
186
+ continue;
187
+ }
188
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
189
+ _.label = op[1];
190
+ break;
191
+ }
192
+ if (op[0] === 6 && _.label < t[1]) {
193
+ _.label = t[1];
194
+ t = op;
195
+ break;
196
+ }
197
+ if (t && _.label < t[2]) {
198
+ _.label = t[2];
199
+ _.ops.push(op);
200
+ break;
201
+ }
202
+ if (t[2]) _.ops.pop();
203
+ _.trys.pop();
204
+ continue;
205
+ }
206
+ op = body.call(thisArg, _);
207
+ } catch (e) {
208
+ op = [
209
+ 6,
210
+ e
211
+ ];
212
+ y = 0;
213
+ } finally{
214
+ f = t = 0;
215
+ }
216
+ if (op[0] & 5) throw op[1];
217
+ return {
218
+ value: op[0] ? op[1] : void 0,
219
+ done: true
220
+ };
221
+ }
222
+ };
223
+ import * as path from "path";
224
+ import { getBabelChain, applyUserBabelConfig } from "@modern-js/babel-preset-lib";
225
+ import { fs, json5, getAliasConfig } from "@modern-js/utils";
226
+ import { compiler } from "@modern-js/babel-compiler";
9
227
  import { FILE_EXTENSIONS } from "../../common";
10
- export * from '@babel/core';
11
- export var readTsConfig = function readTsConfig(tsconfigPath) {
12
- var noExistReturn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
13
- // 如果不存在,则返回 noExistReturn
14
- if (!fs.existsSync(tsconfigPath)) {
15
- return noExistReturn;
16
- }
17
- var content = fs.readFileSync(tsconfigPath, 'utf-8');
18
- return json5.parse(content);
228
+ export * from "@babel/core";
229
+ var readTsConfig = function(tsconfigPath) {
230
+ var noExistReturn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
231
+ if (!fs.existsSync(tsconfigPath)) {
232
+ return noExistReturn;
233
+ }
234
+ var content = fs.readFileSync(tsconfigPath, "utf-8");
235
+ return json5.parse(content);
19
236
  };
20
- export var existTsConfigFile = function existTsConfigFile(tsconfigAbsolutePath) {
21
- var tsconfig = readTsConfig(tsconfigAbsolutePath);
22
- return Boolean(tsconfig);
237
+ var existTsConfigFile = function(tsconfigAbsolutePath) {
238
+ var tsconfig = readTsConfig(tsconfigAbsolutePath);
239
+ return Boolean(tsconfig);
23
240
  };
24
- export var getBabelConfig = function getBabelConfig(libPresetOption, syntaxOption) {
25
- var chain = getBabelChain(libPresetOption, syntaxOption);
26
- return _objectSpread({
27
- sourceType: 'unambiguous'
28
- }, chain.toJSON());
241
+ var getBabelConfig = function(libPresetOption, syntaxOption) {
242
+ var chain = getBabelChain(libPresetOption, syntaxOption);
243
+ return _objectSpread({
244
+ sourceType: "unambiguous"
245
+ }, chain.toJSON());
29
246
  };
30
- export var resolveBabelConfig = function resolveBabelConfig(appDirectory, config, option) {
31
- var globalVars = config.globalVars,
32
- alias = config.alias,
33
- babelConfig = config.babelConfig,
34
- define = config.define;
35
- var globalDefineVars = define && Object.entries(define).reduce(function (object, _ref) {
36
- var _ref2 = _slicedToArray(_ref, 2),
37
- key = _ref2[0],
38
- value = _ref2[1];
39
- object[key] = JSON.stringify(value);
40
- return object;
41
- }, {});
42
- // alias config
43
- var aliasConfig = getAliasConfig(alias, _objectSpread({
44
- appDirectory: appDirectory
45
- }, option));
46
-
47
- // babel config
48
- var babelChain = getBabelChain({
49
- appDirectory: appDirectory,
50
- enableReactPreset: true,
51
- enableTypescriptPreset: true,
52
- alias: aliasConfig,
53
- envVars: [],
54
- globalVars: _objectSpread(_objectSpread({}, globalVars), globalDefineVars)
55
- }, {
56
- type: option.type,
57
- syntax: option.syntax
58
- });
59
- var envOptions = babelChain.preset('@babel/preset-env').options();
60
- babelChain.preset('@babel/preset-env').use(require.resolve('@babel/preset-env'), [_objectSpread(_objectSpread({}, envOptions[0]), {}, {
61
- loose: true
62
- })]);
63
- babelChain.plugin('babel-plugin-transform-typescript-metadata').use(require.resolve('babel-plugin-transform-typescript-metadata'), []);
64
- babelChain.plugin('@babel/plugin-proposal-decorators').use(require.resolve('@babel/plugin-proposal-decorators'), [{
65
- legacy: true
66
- }]);
67
-
68
- // resolve "Definitely assigned fields cannot be initialized here, but only in the constructor."
69
- babelChain.plugin('@babel/plugin-proposal-class-properties').use(require.resolve('@babel/plugin-proposal-class-properties'), [{
70
- loose: true
71
- }]);
72
- var internalBabelConfig = _objectSpread({}, babelChain.toJSON());
73
- return applyUserBabelConfig(internalBabelConfig, babelConfig);
247
+ var resolveBabelConfig = function(appDirectory, config, option) {
248
+ var globalVars = config.globalVars, alias = config.alias, babelConfig = config.babelConfig, define = config.define;
249
+ var globalDefineVars = define && Object.entries(define).reduce(function(object, param) {
250
+ var _param = _slicedToArray(param, 2), key = _param[0], value = _param[1];
251
+ object[key] = JSON.stringify(value);
252
+ return object;
253
+ }, {});
254
+ var aliasConfig = getAliasConfig(alias, _objectSpread({
255
+ appDirectory: appDirectory
256
+ }, option));
257
+ var babelChain = getBabelChain({
258
+ appDirectory: appDirectory,
259
+ enableReactPreset: true,
260
+ enableTypescriptPreset: true,
261
+ alias: aliasConfig,
262
+ envVars: [],
263
+ globalVars: _objectSpread({}, globalVars, globalDefineVars)
264
+ }, {
265
+ type: option.type,
266
+ syntax: option.syntax
267
+ });
268
+ var envOptions = babelChain.preset("@babel/preset-env").options();
269
+ babelChain.preset("@babel/preset-env").use(require.resolve("@babel/preset-env"), [
270
+ _objectSpreadProps(_objectSpread({}, envOptions[0]), {
271
+ loose: true
272
+ })
273
+ ]);
274
+ babelChain.plugin("babel-plugin-transform-typescript-metadata").use(require.resolve("babel-plugin-transform-typescript-metadata"), []);
275
+ babelChain.plugin("@babel/plugin-proposal-decorators").use(require.resolve("@babel/plugin-proposal-decorators"), [
276
+ {
277
+ legacy: true
278
+ }
279
+ ]);
280
+ babelChain.plugin("@babel/plugin-proposal-class-properties").use(require.resolve("@babel/plugin-proposal-class-properties"), [
281
+ {
282
+ loose: true
283
+ }
284
+ ]);
285
+ var internalBabelConfig = _objectSpread({}, babelChain.toJSON());
286
+ return applyUserBabelConfig(internalBabelConfig, babelConfig);
74
287
  };
75
- export var compileByBabel = /*#__PURE__*/function () {
76
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(appDirectory, config, compileOptions) {
77
- var sourceDirs, distDir, tsconfigPath, results;
78
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
79
- while (1) {
80
- switch (_context2.prev = _context2.next) {
81
- case 0:
82
- sourceDirs = compileOptions.sourceDirs, distDir = compileOptions.distDir, tsconfigPath = compileOptions.tsconfigPath;
83
- _context2.next = 3;
84
- return Promise.all(sourceDirs.map( /*#__PURE__*/function () {
85
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(sourceDir) {
86
- var babelConfig, basename, targetDir;
87
- return _regeneratorRuntime().wrap(function _callee$(_context) {
88
- while (1) {
89
- switch (_context.prev = _context.next) {
90
- case 0:
91
- babelConfig = resolveBabelConfig(appDirectory, config, {
92
- tsconfigPath: tsconfigPath ? tsconfigPath : '',
93
- syntax: 'es6+',
94
- type: 'commonjs'
95
- });
96
- _context.next = 3;
97
- return fs.pathExists(sourceDir);
98
- case 3:
99
- if (!_context.sent) {
100
- _context.next = 8;
101
- break;
288
+ var compileByBabel = function() {
289
+ var _ref = _asyncToGenerator(function(appDirectory, config, compileOptions) {
290
+ var sourceDirs, distDir, tsconfigPath, results;
291
+ return __generator(this, function(_state) {
292
+ switch(_state.label){
293
+ case 0:
294
+ sourceDirs = compileOptions.sourceDirs, distDir = compileOptions.distDir, tsconfigPath = compileOptions.tsconfigPath;
295
+ return [
296
+ 4,
297
+ Promise.all(sourceDirs.map(function() {
298
+ var _ref = _asyncToGenerator(function(sourceDir) {
299
+ var babelConfig, basename, targetDir;
300
+ return __generator(this, function(_state) {
301
+ switch(_state.label){
302
+ case 0:
303
+ babelConfig = resolveBabelConfig(appDirectory, config, {
304
+ tsconfigPath: tsconfigPath ? tsconfigPath : "",
305
+ syntax: "es6+",
306
+ type: "commonjs"
307
+ });
308
+ return [
309
+ 4,
310
+ fs.pathExists(sourceDir)
311
+ ];
312
+ case 1:
313
+ if (!_state.sent()) return [
314
+ 3,
315
+ 3
316
+ ];
317
+ basename = path.basename(sourceDir);
318
+ targetDir = path.join(distDir, basename);
319
+ return [
320
+ 4,
321
+ fs.copy(sourceDir, targetDir, {
322
+ filter: function(src) {
323
+ return ![
324
+ ".ts",
325
+ ".js"
326
+ ].includes(path.extname(src)) && src !== tsconfigPath;
327
+ }
328
+ })
329
+ ];
330
+ case 2:
331
+ _state.sent();
332
+ _state.label = 3;
333
+ case 3:
334
+ return [
335
+ 2,
336
+ compiler({
337
+ rootDir: appDirectory,
338
+ distDir: distDir,
339
+ sourceDir: sourceDir,
340
+ extensions: FILE_EXTENSIONS
341
+ }, babelConfig)
342
+ ];
343
+ }
344
+ });
345
+ });
346
+ return function(sourceDir) {
347
+ return _ref.apply(this, arguments);
348
+ };
349
+ }()))
350
+ ];
351
+ case 1:
352
+ results = _state.sent();
353
+ results.forEach(function(result) {
354
+ if (result.code === 1) {
355
+ throw new Error(result.message);
102
356
  }
103
- basename = path.basename(sourceDir);
104
- targetDir = path.join(distDir, basename);
105
- _context.next = 8;
106
- return fs.copy(sourceDir, targetDir, {
107
- filter: function filter(src) {
108
- return !['.ts', '.js'].includes(path.extname(src)) && src !== tsconfigPath;
109
- }
110
- });
111
- case 8:
112
- return _context.abrupt("return", compiler({
113
- rootDir: appDirectory,
114
- distDir: distDir,
115
- sourceDir: sourceDir,
116
- extensions: FILE_EXTENSIONS
117
- }, babelConfig));
118
- case 9:
119
- case "end":
120
- return _context.stop();
121
- }
122
- }
123
- }, _callee);
124
- }));
125
- return function (_x4) {
126
- return _ref4.apply(this, arguments);
127
- };
128
- }()));
129
- case 3:
130
- results = _context2.sent;
131
- results.forEach(function (result) {
132
- if (result.code === 1) {
133
- throw new Error(result.message);
134
- }
135
- });
136
- case 5:
137
- case "end":
138
- return _context2.stop();
139
- }
140
- }
141
- }, _callee2);
142
- }));
143
- return function compileByBabel(_x, _x2, _x3) {
144
- return _ref3.apply(this, arguments);
145
- };
146
- }();
357
+ });
358
+ return [
359
+ 2
360
+ ];
361
+ }
362
+ });
363
+ });
364
+ return function compileByBabel(appDirectory, config, compileOptions) {
365
+ return _ref.apply(this, arguments);
366
+ };
367
+ }();
368
+ export { compileByBabel, existTsConfigFile, getBabelConfig, readTsConfig, resolveBabelConfig };