@cocojs/cli 0.0.1-alpha202511021451

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.
@@ -0,0 +1,9 @@
1
+ declare function buildDotCoco(monorepoProjPath: string): void;
2
+
3
+ export declare function cli(command: string, domain: string, rest: string[]): void;
4
+
5
+ export declare let _test_helper: {
6
+ buildDotCoco: typeof buildDotCoco;
7
+ };
8
+
9
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,508 @@
1
+ 'use strict';
2
+
3
+ var child_process = require('child_process');
4
+ var path = require('path');
5
+ var process$1 = require('node:process');
6
+ var path$1 = require('node:path');
7
+ var rollup = require('rollup');
8
+ var typescript = require('@rollup/plugin-typescript');
9
+ var babel = require('@rollup/plugin-babel');
10
+
11
+ function _arrayLikeToArray(r, a) {
12
+ (null == a || a > r.length) && (a = r.length);
13
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
14
+ return n;
15
+ }
16
+ function _arrayWithHoles(r) {
17
+ if (Array.isArray(r)) return r;
18
+ }
19
+ function _classCallCheck(a, n) {
20
+ if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
21
+ }
22
+ function _defineProperties(e, r) {
23
+ for (var t = 0; t < r.length; t++) {
24
+ var o = r[t];
25
+ o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
26
+ }
27
+ }
28
+ function _createClass(e, r, t) {
29
+ return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
30
+ writable: false
31
+ }), e;
32
+ }
33
+ function _iterableToArrayLimit(r, l) {
34
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
35
+ if (null != t) {
36
+ var e,
37
+ n,
38
+ i,
39
+ u,
40
+ a = [],
41
+ f = true,
42
+ o = false;
43
+ try {
44
+ if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
45
+ } catch (r) {
46
+ o = true, n = r;
47
+ } finally {
48
+ try {
49
+ if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
50
+ } finally {
51
+ if (o) throw n;
52
+ }
53
+ }
54
+ return a;
55
+ }
56
+ }
57
+ function _nonIterableRest() {
58
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
59
+ }
60
+ function _regenerator() {
61
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
62
+ var e,
63
+ t,
64
+ r = "function" == typeof Symbol ? Symbol : {},
65
+ n = r.iterator || "@@iterator",
66
+ o = r.toStringTag || "@@toStringTag";
67
+ function i(r, n, o, i) {
68
+ var c = n && n.prototype instanceof Generator ? n : Generator,
69
+ u = Object.create(c.prototype);
70
+ return _regeneratorDefine(u, "_invoke", function (r, n, o) {
71
+ var i,
72
+ c,
73
+ u,
74
+ f = 0,
75
+ p = o || [],
76
+ y = false,
77
+ G = {
78
+ p: 0,
79
+ n: 0,
80
+ v: e,
81
+ a: d,
82
+ f: d.bind(e, 4),
83
+ d: function (t, r) {
84
+ return i = t, c = 0, u = e, G.n = r, a;
85
+ }
86
+ };
87
+ function d(r, n) {
88
+ for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
89
+ var o,
90
+ i = p[t],
91
+ d = G.p,
92
+ l = i[2];
93
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
94
+ }
95
+ if (o || r > 1) return a;
96
+ throw y = true, n;
97
+ }
98
+ return function (o, p, l) {
99
+ if (f > 1) throw TypeError("Generator is already running");
100
+ for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
101
+ i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
102
+ try {
103
+ if (f = 2, i) {
104
+ if (c || (o = "next"), t = i[o]) {
105
+ if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
106
+ if (!t.done) return t;
107
+ u = t.value, c < 2 && (c = 0);
108
+ } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
109
+ i = e;
110
+ } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
111
+ } catch (t) {
112
+ i = e, c = 1, u = t;
113
+ } finally {
114
+ f = 1;
115
+ }
116
+ }
117
+ return {
118
+ value: t,
119
+ done: y
120
+ };
121
+ };
122
+ }(r, o, i), true), u;
123
+ }
124
+ var a = {};
125
+ function Generator() {}
126
+ function GeneratorFunction() {}
127
+ function GeneratorFunctionPrototype() {}
128
+ t = Object.getPrototypeOf;
129
+ var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
130
+ return this;
131
+ }), t),
132
+ u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
133
+ function f(e) {
134
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
135
+ }
136
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
137
+ return this;
138
+ }), _regeneratorDefine(u, "toString", function () {
139
+ return "[object Generator]";
140
+ }), (_regenerator = function () {
141
+ return {
142
+ w: i,
143
+ m: f
144
+ };
145
+ })();
146
+ }
147
+ function _regeneratorDefine(e, r, n, t) {
148
+ var i = Object.defineProperty;
149
+ try {
150
+ i({}, "", {});
151
+ } catch (e) {
152
+ i = 0;
153
+ }
154
+ _regeneratorDefine = function (e, r, n, t) {
155
+ function o(r, n) {
156
+ _regeneratorDefine(e, r, function (e) {
157
+ return this._invoke(r, n, e);
158
+ });
159
+ }
160
+ r ? i ? i(e, r, {
161
+ value: n,
162
+ enumerable: !t,
163
+ configurable: !t,
164
+ writable: !t
165
+ }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
166
+ }, _regeneratorDefine(e, r, n, t);
167
+ }
168
+ function _slicedToArray(r, e) {
169
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
170
+ }
171
+ function _toPrimitive(t, r) {
172
+ if ("object" != typeof t || !t) return t;
173
+ var e = t[Symbol.toPrimitive];
174
+ if (void 0 !== e) {
175
+ var i = e.call(t, r);
176
+ if ("object" != typeof i) return i;
177
+ throw new TypeError("@@toPrimitive must return a primitive value.");
178
+ }
179
+ return (String )(t);
180
+ }
181
+ function _toPropertyKey(t) {
182
+ var i = _toPrimitive(t, "string");
183
+ return "symbol" == typeof i ? i : i + "";
184
+ }
185
+ function _unsupportedIterableToArray(r, a) {
186
+ if (r) {
187
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
188
+ var t = {}.toString.call(r).slice(8, -1);
189
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
190
+ }
191
+ }
192
+
193
+ function __awaiter(thisArg, _arguments, P, generator) {
194
+ function adopt(value) {
195
+ return value instanceof P ? value : new P(function (resolve) {
196
+ resolve(value);
197
+ });
198
+ }
199
+ return new (P || (P = Promise))(function (resolve, reject) {
200
+ function fulfilled(value) {
201
+ try {
202
+ step(generator.next(value));
203
+ } catch (e) {
204
+ reject(e);
205
+ }
206
+ }
207
+ function rejected(value) {
208
+ try {
209
+ step(generator["throw"](value));
210
+ } catch (e) {
211
+ reject(e);
212
+ }
213
+ }
214
+ function step(result) {
215
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
216
+ }
217
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
218
+ });
219
+ }
220
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
221
+ var e = new Error(message);
222
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
223
+ };
224
+
225
+ var WorkFlow = /*#__PURE__*/function () {
226
+ function WorkFlow() {
227
+ _classCallCheck(this, WorkFlow);
228
+ this.init();
229
+ }
230
+ return _createClass(WorkFlow, [{
231
+ key: "init",
232
+ value: function init() {
233
+ var _this = this;
234
+ process$1.on('exit', function () {
235
+ _this.terminate();
236
+ });
237
+ }
238
+ }, {
239
+ key: "forkAll",
240
+ value: function forkAll() {
241
+ this.webpackProcess = this.startProcess(path.join(__dirname, './webpack-process/index.js'));
242
+ this.webpackProcess.on('message', this.webpackMessageCb.bind(this));
243
+ this.buildDotCocoProcess = this.startProcess(path.join(__dirname, './build-dot-coco-process/index.js'));
244
+ this.buildDotCocoProcess.on('message', this.buildDotCocoMessageCb.bind(this));
245
+ }
246
+ }, {
247
+ key: "startProcess",
248
+ value: function startProcess(entry) {
249
+ var _this2 = this;
250
+ var cp = child_process.fork(entry, ['run-as-process']);
251
+ cp.on('exit', function (code) {
252
+ _this2.terminate();
253
+ });
254
+ return cp;
255
+ }
256
+ }, {
257
+ key: "buildDotCocoMessageCb",
258
+ value: function buildDotCocoMessageCb(msg) {
259
+ switch (msg) {
260
+ case 'build-success':
261
+ if (!this.webpackProcess.killed) {
262
+ this.webpackProcess.send('build-once');
263
+ }
264
+ break;
265
+ case 'init-build-success':
266
+ if (!this.webpackProcess.killed) {
267
+ this.webpackProcess.send('start-server');
268
+ }
269
+ break;
270
+ default:
271
+ console.info('rcv msg from buildDotCoco process', msg);
272
+ break;
273
+ }
274
+ }
275
+ }, {
276
+ key: "webpackMessageCb",
277
+ value: function webpackMessageCb(msg) {
278
+ var _a;
279
+ switch (msg) {
280
+ case 'build-success':
281
+ (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this);
282
+ break;
283
+ default:
284
+ console.info('rcv msg from webpack process', msg);
285
+ break;
286
+ }
287
+ }
288
+ }, {
289
+ key: "build",
290
+ value: function build() {
291
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
292
+ return _regenerator().w(function (_context) {
293
+ while (1) switch (_context.n) {
294
+ case 0:
295
+ return _context.a(2, this.run('build-once'));
296
+ }
297
+ }, _callee, this);
298
+ }));
299
+ }
300
+ }, {
301
+ key: "dev",
302
+ value: function dev() {
303
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee2() {
304
+ return _regenerator().w(function (_context2) {
305
+ while (1) switch (_context2.n) {
306
+ case 0:
307
+ return _context2.a(2, this.run('build-and-watch'));
308
+ }
309
+ }, _callee2, this);
310
+ }));
311
+ }
312
+ }, {
313
+ key: "run",
314
+ value: function run(task) {
315
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee3() {
316
+ var _this3 = this;
317
+ return _regenerator().w(function (_context3) {
318
+ while (1) switch (_context3.n) {
319
+ case 0:
320
+ if (!this.processingTask) {
321
+ _context3.n = 1;
322
+ break;
323
+ }
324
+ throw new Error('已经存在一个任务');
325
+ case 1:
326
+ this.buildDotCocoProcess.send(task);
327
+ this.processingTask = new Promise(function (resolve, reject) {
328
+ _this3.resolve = resolve;
329
+ _this3.reject = reject;
330
+ });
331
+ return _context3.a(2, this.processingTask);
332
+ }
333
+ }, _callee3, this);
334
+ }));
335
+ }
336
+ }, {
337
+ key: "terminate",
338
+ value: function terminate() {
339
+ if (this.webpackProcess && !this.webpackProcess.killed) {
340
+ this.webpackProcess.kill();
341
+ }
342
+ if (this.buildDotCocoProcess && !this.buildDotCocoProcess.killed) {
343
+ this.buildDotCocoProcess.kill();
344
+ }
345
+ }
346
+ }]);
347
+ }();
348
+
349
+ function devApp() {
350
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
351
+ var workflow;
352
+ return _regenerator().w(function (_context) {
353
+ while (1) switch (_context.n) {
354
+ case 0:
355
+ workflow = new WorkFlow();
356
+ workflow.forkAll();
357
+ _context.n = 1;
358
+ return workflow.dev();
359
+ case 1:
360
+ return _context.a(2);
361
+ }
362
+ }, _callee);
363
+ }));
364
+ }
365
+
366
+ function buildApp() {
367
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
368
+ var workFlow;
369
+ return _regenerator().w(function (_context) {
370
+ while (1) switch (_context.n) {
371
+ case 0:
372
+ workFlow = new WorkFlow();
373
+ workFlow.forkAll();
374
+ _context.n = 1;
375
+ return workFlow.build();
376
+ case 1:
377
+ process.exit(0);
378
+ case 2:
379
+ return _context.a(2);
380
+ }
381
+ }, _callee);
382
+ }));
383
+ }
384
+
385
+ var build = function build() {
386
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
387
+ var result;
388
+ return _regenerator().w(function (_context) {
389
+ while (1) switch (_context.n) {
390
+ case 0:
391
+ _context.n = 1;
392
+ return rollup.rollup({
393
+ input: path$1.join(process$1.cwd(), './src/lib.ts'),
394
+ plugins: [typescript({
395
+ compilerOptions: {
396
+ target: 'ESNext',
397
+ lib: ['dom', 'esnext'],
398
+ declaration: true,
399
+ declarationDir: './dist/types',
400
+ jsx: 'preserve',
401
+ resolveJsonModule: true,
402
+ plugins: [{
403
+ transform: '@cocojs/type-extractor',
404
+ transformProgram: true
405
+ }]
406
+ }
407
+ }), babel({
408
+ extensions: ['.js', '.jsx', '.ts', '.tsx'],
409
+ plugins: [[require.resolve('@babel/plugin-proposal-decorators'), {
410
+ version: '2023-11'
411
+ }], [require.resolve('@babel/plugin-transform-react-jsx', {
412
+ paths: [path$1.resolve(__dirname, '..', '../node_modules')]
413
+ }), {
414
+ runtime: 'automatic',
415
+ importSource: 'coco-mvc'
416
+ }]]
417
+ })]
418
+ });
419
+ case 1:
420
+ result = _context.v;
421
+ _context.n = 2;
422
+ return result.write({
423
+ file: path$1.join(process$1.cwd(), './dist/bundle.esm.js'),
424
+ format: 'es'
425
+ });
426
+ case 2:
427
+ return _context.a(2);
428
+ }
429
+ }, _callee);
430
+ }));
431
+ };
432
+
433
+ var _test_helper;
434
+
435
+ // TODO: 添加测试用例验证模版的基本功能都是正确的?
436
+ /**
437
+ * 应用项目命令
438
+ * coco app create 搭建框架
439
+ * coco app build 构建
440
+ * coco app dev 开发
441
+ */
442
+ function execAppCmd(action) {
443
+ switch (action) {
444
+ case 'build':
445
+ {
446
+ buildApp();
447
+ break;
448
+ }
449
+ case 'dev':
450
+ {
451
+ devApp();
452
+ break;
453
+ }
454
+ default:
455
+ {
456
+ console.log("Unknown app action: ".concat(action));
457
+ break;
458
+ }
459
+ }
460
+ }
461
+ /**
462
+ * 组件库项目命令
463
+ * coco lib create 搭建框架
464
+ * coco lib build 构建
465
+ */
466
+ function execLibCmd(action) {
467
+ switch (action) {
468
+ case 'build':
469
+ {
470
+ build();
471
+ break;
472
+ }
473
+ case 'dev':
474
+ {
475
+ devApp();
476
+ break;
477
+ }
478
+ default:
479
+ {
480
+ console.log("Unknown lib action: ".concat(action));
481
+ break;
482
+ }
483
+ }
484
+ }
485
+ function cli(command, domain, rest) {
486
+ var _rest = _slicedToArray(rest, 1),
487
+ action = _rest[0];
488
+ switch (domain) {
489
+ case 'app':
490
+ {
491
+ execAppCmd(action);
492
+ break;
493
+ }
494
+ case 'lib':
495
+ {
496
+ execLibCmd(action);
497
+ break;
498
+ }
499
+ default:
500
+ {
501
+ console.log("Unknown domain: ".concat(domain));
502
+ break;
503
+ }
504
+ }
505
+ }
506
+
507
+ exports._test_helper = _test_helper;
508
+ exports.cli = cli;