@modern-js/server-utils 2.0.0-beta.2 → 2.0.0-beta.4

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,142 +1,368 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
- import * as path from 'path';
5
- import { getBabelChain, applyUserBabelConfig } from '@modern-js/babel-preset-lib';
6
- import { fs, json5, getAliasConfig } from '@modern-js/utils';
7
- 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";
8
227
  import { FILE_EXTENSIONS } from "../../common";
9
- export * from '@babel/core';
10
- export var readTsConfig = function readTsConfig(tsconfigPath) {
11
- var noExistReturn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
12
- // 如果不存在,则返回 noExistReturn
13
- if (!fs.existsSync(tsconfigPath)) {
14
- return noExistReturn;
15
- }
16
- var content = fs.readFileSync(tsconfigPath, 'utf-8');
17
- 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);
18
236
  };
19
- export var existTsConfigFile = function existTsConfigFile(tsconfigAbsolutePath) {
20
- var tsconfig = readTsConfig(tsconfigAbsolutePath);
21
- return Boolean(tsconfig);
237
+ var existTsConfigFile = function(tsconfigAbsolutePath) {
238
+ var tsconfig = readTsConfig(tsconfigAbsolutePath);
239
+ return Boolean(tsconfig);
22
240
  };
23
- export var getBabelConfig = function getBabelConfig(libPresetOption, syntaxOption) {
24
- var chain = getBabelChain(libPresetOption, syntaxOption);
25
- return _objectSpread({
26
- sourceType: 'unambiguous'
27
- }, chain.toJSON());
241
+ var getBabelConfig = function(libPresetOption, syntaxOption) {
242
+ var chain = getBabelChain(libPresetOption, syntaxOption);
243
+ return _objectSpread({
244
+ sourceType: "unambiguous"
245
+ }, chain.toJSON());
28
246
  };
29
- export var resolveBabelConfig = function resolveBabelConfig(appDirectory, config, option
30
- // FIXME: babel type can't pass type checking
31
- ) {
32
- var define = config.define,
33
- globalVars = config.globalVars,
34
- alias = config.alias,
35
- babelConfig = config.babelConfig;
36
-
37
- // alias config
38
- var aliasConfig = getAliasConfig(alias, _objectSpread({
39
- appDirectory: appDirectory
40
- }, option));
41
-
42
- // babel config
43
- var babelChain = getBabelChain({
44
- appDirectory: appDirectory,
45
- enableReactPreset: true,
46
- enableTypescriptPreset: true,
47
- alias: aliasConfig,
48
- // FIXME: handle the define envVars
49
- envVars: define,
50
- globalVars: globalVars
51
- }, {
52
- type: option.type,
53
- syntax: option.syntax
54
- });
55
- var envOptions = babelChain.preset('@babel/preset-env').options();
56
- babelChain.preset('@babel/preset-env').use(require.resolve('@babel/preset-env'), [_objectSpread(_objectSpread({}, envOptions[0]), {}, {
57
- loose: true
58
- })]);
59
- babelChain.plugin('babel-plugin-transform-typescript-metadata').use(require.resolve('babel-plugin-transform-typescript-metadata'), []);
60
- babelChain.plugin('@babel/plugin-proposal-decorators').use(require.resolve('@babel/plugin-proposal-decorators'), [{
61
- legacy: true
62
- }]);
63
-
64
- // resolve "Definitely assigned fields cannot be initialized here, but only in the constructor."
65
- babelChain.plugin('@babel/plugin-proposal-class-properties').use(require.resolve('@babel/plugin-proposal-class-properties'), [{
66
- loose: true
67
- }]);
68
- var internalBabelConfig = _objectSpread({}, babelChain.toJSON());
69
- 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);
70
287
  };
71
- export var compileByBabel = /*#__PURE__*/function () {
72
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(appDirectory, config, compileOptions) {
73
- var sourceDirs, distDir, tsconfigPath, results;
74
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
75
- while (1) {
76
- switch (_context2.prev = _context2.next) {
77
- case 0:
78
- sourceDirs = compileOptions.sourceDirs, distDir = compileOptions.distDir, tsconfigPath = compileOptions.tsconfigPath;
79
- _context2.next = 3;
80
- return Promise.all(sourceDirs.map( /*#__PURE__*/function () {
81
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(sourceDir) {
82
- var babelConfig, basename, targetDir;
83
- return _regeneratorRuntime().wrap(function _callee$(_context) {
84
- while (1) {
85
- switch (_context.prev = _context.next) {
86
- case 0:
87
- babelConfig = resolveBabelConfig(appDirectory, config, {
88
- tsconfigPath: tsconfigPath ? tsconfigPath : '',
89
- syntax: 'es6+',
90
- type: 'commonjs'
91
- });
92
- _context.next = 3;
93
- return fs.pathExists(sourceDir);
94
- case 3:
95
- if (!_context.sent) {
96
- _context.next = 8;
97
- 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);
98
356
  }
99
- basename = path.basename(sourceDir);
100
- targetDir = path.join(distDir, basename);
101
- _context.next = 8;
102
- return fs.copy(sourceDir, targetDir, {
103
- filter: function filter(src) {
104
- return !['.ts', '.js'].includes(path.extname(src)) && src !== tsconfigPath;
105
- }
106
- });
107
- case 8:
108
- return _context.abrupt("return", compiler({
109
- rootDir: appDirectory,
110
- distDir: distDir,
111
- sourceDir: sourceDir,
112
- extensions: FILE_EXTENSIONS
113
- }, babelConfig));
114
- case 9:
115
- case "end":
116
- return _context.stop();
117
- }
118
- }
119
- }, _callee);
120
- }));
121
- return function (_x4) {
122
- return _ref2.apply(this, arguments);
123
- };
124
- }()));
125
- case 3:
126
- results = _context2.sent;
127
- results.forEach(function (result) {
128
- if (result.code === 1) {
129
- throw new Error(result.message);
130
- }
131
- });
132
- case 5:
133
- case "end":
134
- return _context2.stop();
135
- }
136
- }
137
- }, _callee2);
138
- }));
139
- return function compileByBabel(_x, _x2, _x3) {
140
- return _ref.apply(this, arguments);
141
- };
142
- }();
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 };