@builder.io/mitosis-cli 0.0.17-1 → 0.0.17-101

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.
Files changed (27) hide show
  1. package/dist/build/build.js +257 -293
  2. package/dist/build/helpers/context.js +85 -0
  3. package/dist/build/helpers/extensions.js +33 -0
  4. package/dist/build/helpers/transpile-solid-file.js +18 -24
  5. package/dist/build/helpers/transpile.js +41 -46
  6. package/dist/commands/compile.js +1 -1
  7. package/dist/commands/new.js +1 -1
  8. package/dist/helpers/fast-clone.js +6 -0
  9. package/dist/templates/component.lite.tsx.ejs +2 -2
  10. package/dist/templates/library-simple/src/components/my-component.lite.jsx +2 -4
  11. package/dist/templates/library-simple/src/components/my-component.lite.tsx +2 -4
  12. package/dist/templates/library-simple/src/global.d.ts +2 -0
  13. package/dist/types/build/helpers/context.d.ts +6 -0
  14. package/dist/types/build/helpers/extensions.d.ts +2 -0
  15. package/dist/types/build/helpers/transpile.d.ts +12 -4
  16. package/dist/types/helpers/fast-clone.d.ts +1 -0
  17. package/dist/types/templates/library-simple/src/components/my-component.lite.d.ts +1 -2
  18. package/package.json +6 -6
  19. package/readme.md +0 -14
  20. package/dist/build/helpers/compile-vue-file.js +0 -250
  21. package/dist/build/helpers/compile-vue-v2-file.js +0 -255
  22. package/dist/build/helpers/transpile-optional-chaining.js +0 -20
  23. package/dist/build/helpers/transpile-vue-binding-expression.js +0 -42
  24. package/dist/types/build/helpers/compile-vue-file.d.ts +0 -18
  25. package/dist/types/build/helpers/compile-vue-v2-file.d.ts +0 -9
  26. package/dist/types/build/helpers/transpile-optional-chaining.d.ts +0 -1
  27. package/dist/types/build/helpers/transpile-vue-binding-expression.d.ts +0 -1
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
2
  var __assign = (this && this.__assign) || function () {
7
3
  __assign = Object.assign || function(t) {
8
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -14,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
14
10
  };
15
11
  return __assign.apply(this, arguments);
16
12
  };
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -89,15 +62,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
89
62
  exports.build = void 0;
90
63
  var mitosis_1 = require("@builder.io/mitosis");
91
64
  var debug_1 = __importDefault(require("debug"));
92
- var dedent_1 = __importDefault(require("dedent"));
93
65
  var fast_glob_1 = __importDefault(require("fast-glob"));
66
+ var function_1 = require("fp-ts/lib/function");
94
67
  var fs_extra_1 = require("fs-extra");
95
- var json5 = __importStar(require("json5"));
96
68
  var lodash_1 = require("lodash");
97
69
  var micromatch_1 = __importDefault(require("micromatch"));
98
- var get_simple_id_1 = require("./helpers/get-simple-id");
70
+ var fast_clone_1 = require("../helpers/fast-clone");
71
+ var context_1 = require("./helpers/context");
72
+ var extensions_1 = require("./helpers/extensions");
99
73
  var transpile_1 = require("./helpers/transpile");
100
- var transpile_optional_chaining_1 = require("./helpers/transpile-optional-chaining");
101
74
  var transpile_solid_file_1 = require("./helpers/transpile-solid-file");
102
75
  var cwd = process.cwd();
103
76
  var DEFAULT_CONFIG = {
@@ -106,90 +79,14 @@ var DEFAULT_CONFIG = {
106
79
  files: 'src/*',
107
80
  overridesDir: 'overrides',
108
81
  };
109
- var DEFAULT_OPTIONS = {
110
- vue: {
111
- cssNamespace: function () { return (0, get_simple_id_1.getSimpleId)(); },
112
- namePrefix: function (path) { return (path.includes('/blocks/') ? 'builder' : undefined); },
113
- builderRegister: true,
114
- },
115
- };
116
- function build(config) {
117
- var _a;
118
- return __awaiter(this, void 0, void 0, function () {
119
- var options, tsLiteFiles, _b, _c, _d;
120
- var _this = this;
121
- return __generator(this, function (_e) {
122
- switch (_e.label) {
123
- case 0:
124
- options = __assign(__assign(__assign({}, DEFAULT_CONFIG), config), { options: __assign(__assign(__assign({}, DEFAULT_OPTIONS), config === null || config === void 0 ? void 0 : config.options), { vue: __assign(__assign({}, DEFAULT_OPTIONS.vue), (_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.vue) }) });
125
- return [4 /*yield*/, clean(options)];
126
- case 1:
127
- _e.sent();
128
- _c = (_b = Promise).all;
129
- _d = micromatch_1.default;
130
- return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
131
- case 2: return [4 /*yield*/, _c.apply(_b, [_d.apply(void 0, [_e.sent(), "**/*.lite.tsx"]).map(function (path) { return __awaiter(_this, void 0, void 0, function () {
132
- var parsed, _a, err_1;
133
- return __generator(this, function (_b) {
134
- switch (_b.label) {
135
- case 0:
136
- _b.trys.push([0, 2, , 3]);
137
- _a = mitosis_1.parseJsx;
138
- return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
139
- case 1:
140
- parsed = _a.apply(void 0, [_b.sent(), {
141
- jsonHookNames: ['registerComponent'],
142
- }]);
143
- return [2 /*return*/, {
144
- path: path,
145
- mitosisJson: parsed,
146
- }];
147
- case 2:
148
- err_1 = _b.sent();
149
- console.error('Could not parse file:', path);
150
- throw err_1;
151
- case 3: return [2 /*return*/];
152
- }
153
- });
154
- }); })])];
155
- case 3:
156
- tsLiteFiles = _e.sent();
157
- return [4 /*yield*/, Promise.all(options.targets.map(function (target) { return __awaiter(_this, void 0, void 0, function () {
158
- var jsFiles;
159
- return __generator(this, function (_a) {
160
- switch (_a.label) {
161
- case 0: return [4 /*yield*/, buildTsFiles({ target: target, options: options })];
162
- case 1:
163
- jsFiles = _a.sent();
164
- return [4 /*yield*/, Promise.all([
165
- outputTsFiles(target, jsFiles, options),
166
- outputTsxLiteFiles(target, tsLiteFiles, options),
167
- ])];
168
- case 2:
169
- _a.sent();
170
- return [4 /*yield*/, outputOverrides(target, options)];
171
- case 3:
172
- _a.sent();
173
- return [2 /*return*/];
174
- }
175
- });
176
- }); }))];
177
- case 4:
178
- _e.sent();
179
- console.info('Done!');
180
- return [2 /*return*/];
181
- }
182
- });
183
- });
184
- }
185
- exports.build = build;
82
+ var getOptions = function (config) { return (__assign(__assign(__assign({}, DEFAULT_CONFIG), config), { options: __assign(__assign({}, DEFAULT_CONFIG.options), config === null || config === void 0 ? void 0 : config.options) })); };
186
83
  function clean(options) {
187
84
  return __awaiter(this, void 0, void 0, function () {
188
85
  var files;
189
86
  var _this = this;
190
87
  return __generator(this, function (_a) {
191
88
  switch (_a.label) {
192
- case 0: return [4 /*yield*/, (0, fast_glob_1.default)("".concat(options.dest, "/*/").concat(options.files))];
89
+ case 0: return [4 /*yield*/, (0, fast_glob_1.default)("".concat(options.dest, "/**/*/").concat(options.files))];
193
90
  case 1:
194
91
  files = _a.sent();
195
92
  return [4 /*yield*/, Promise.all(files.map(function (file) { return __awaiter(_this, void 0, void 0, function () {
@@ -209,55 +106,107 @@ function clean(options) {
209
106
  });
210
107
  });
211
108
  }
212
- function outputOverrides(target, options) {
109
+ var getMitosisComponentJSONs = function (options) { return __awaiter(void 0, void 0, void 0, function () {
110
+ var _a, _b, _c;
111
+ var _d;
112
+ return __generator(this, function (_e) {
113
+ switch (_e.label) {
114
+ case 0:
115
+ _b = (_a = Promise).all;
116
+ _c = micromatch_1.default;
117
+ return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
118
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.apply(void 0, [_e.sent(), "**/*.".concat((_d = options.extension) !== null && _d !== void 0 ? _d : 'lite.tsx')]).map(function (path) { return __awaiter(void 0, void 0, void 0, function () {
119
+ var file, parsed, err_1;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ _a.trys.push([0, 3, , 4]);
124
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
125
+ case 1:
126
+ file = _a.sent();
127
+ return [4 /*yield*/, (options.parser ? options.parser(file) : (0, mitosis_1.parseJsx)(file))];
128
+ case 2:
129
+ parsed = _a.sent();
130
+ return [2 /*return*/, {
131
+ path: path,
132
+ mitosisJson: parsed,
133
+ }];
134
+ case 3:
135
+ err_1 = _a.sent();
136
+ console.error('Could not parse file:', path);
137
+ throw err_1;
138
+ case 4: return [2 /*return*/];
139
+ }
140
+ });
141
+ }); })])];
142
+ }
143
+ });
144
+ }); };
145
+ var getTargetContexts = function (options) {
146
+ return options.targets.map(function (target) { return ({
147
+ target: target,
148
+ generator: getGeneratorForTarget({ target: target, options: options }),
149
+ outputPath: getTargetPath({ target: target }),
150
+ }); });
151
+ };
152
+ var buildAndOutputNonComponentFiles = function (targetContext) { return __awaiter(void 0, void 0, void 0, function () {
153
+ var jsFiles;
154
+ return __generator(this, function (_a) {
155
+ switch (_a.label) {
156
+ case 0: return [4 /*yield*/, buildNonComponentFiles(targetContext)];
157
+ case 1:
158
+ jsFiles = _a.sent();
159
+ return [4 /*yield*/, outputNonComponentFiles(__assign(__assign({}, targetContext), { files: jsFiles }))];
160
+ case 2:
161
+ _a.sent();
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ }); };
166
+ function build(config) {
213
167
  return __awaiter(this, void 0, void 0, function () {
214
- var kebabTarget, outputDirPath, files;
168
+ var options, mitosisComponents, targetContexts;
215
169
  var _this = this;
216
170
  return __generator(this, function (_a) {
217
171
  switch (_a.label) {
218
172
  case 0:
219
- kebabTarget = (0, lodash_1.kebabCase)(target);
220
- outputDirPath = "".concat(options.overridesDir, "/").concat(kebabTarget);
221
- return [4 /*yield*/, (0, fast_glob_1.default)([
222
- "".concat(outputDirPath, "/**/*"),
223
- "!".concat(outputDirPath, "/node_modules/**/*"),
224
- ])];
173
+ options = getOptions(config);
174
+ // clean output directory
175
+ return [4 /*yield*/, clean(options)];
225
176
  case 1:
226
- files = _a.sent();
227
- return [4 /*yield*/, Promise.all(files.map(function (file) { return __awaiter(_this, void 0, void 0, function () {
228
- var contents, esbuildTranspile, targetPaths;
177
+ // clean output directory
178
+ _a.sent();
179
+ return [4 /*yield*/, getMitosisComponentJSONs(options)];
180
+ case 2:
181
+ mitosisComponents = _a.sent();
182
+ targetContexts = getTargetContexts(options);
183
+ return [4 /*yield*/, Promise.all(targetContexts.map(function (targetContext) { return __awaiter(_this, void 0, void 0, function () {
184
+ var files, targetContextWithConfig;
229
185
  return __generator(this, function (_a) {
230
186
  switch (_a.label) {
231
- case 0: return [4 /*yield*/, (0, fs_extra_1.readFile)(file, 'utf8')];
187
+ case 0:
188
+ files = (0, fast_clone_1.fastClone)(mitosisComponents);
189
+ targetContextWithConfig = __assign(__assign({}, targetContext), { options: options });
190
+ return [4 /*yield*/, Promise.all([
191
+ buildAndOutputNonComponentFiles(targetContextWithConfig),
192
+ buildAndOutputComponentFiles(__assign(__assign({}, targetContextWithConfig), { files: files })),
193
+ ])];
232
194
  case 1:
233
- contents = _a.sent();
234
- esbuildTranspile = file.match(/\.tsx?$/);
235
- if (!esbuildTranspile) return [3 /*break*/, 3];
236
- return [4 /*yield*/, (0, transpile_1.transpile)({ path: file, target: target })];
237
- case 2:
238
- contents = _a.sent();
239
- _a.label = 3;
240
- case 3:
241
- targetPaths = getTargetPaths(target);
242
- return [4 /*yield*/, Promise.all(targetPaths.map(function (targetPath) {
243
- return (0, fs_extra_1.outputFile)(file
244
- .replace("".concat(outputDirPath), "".concat(options.dest, "/").concat(targetPath))
245
- .replace(/\.tsx?$/, '.js'), contents);
246
- }))];
247
- case 4:
248
195
  _a.sent();
249
196
  return [2 /*return*/];
250
197
  }
251
198
  });
252
199
  }); }))];
253
- case 2:
200
+ case 3:
254
201
  _a.sent();
202
+ console.info('Done!');
255
203
  return [2 /*return*/];
256
204
  }
257
205
  });
258
206
  });
259
207
  }
260
- var getTranspilerForTarget = function (_a) {
208
+ exports.build = build;
209
+ var getGeneratorForTarget = function (_a) {
261
210
  var target = _a.target, options = _a.options;
262
211
  switch (target) {
263
212
  case 'customElement':
@@ -266,8 +215,14 @@ var getTranspilerForTarget = function (_a) {
266
215
  return (0, mitosis_1.componentToHtml)(options.options.html);
267
216
  case 'reactNative':
268
217
  return (0, mitosis_1.componentToReactNative)({ stateType: 'useState' });
218
+ case 'vue2':
219
+ return (0, mitosis_1.componentToVue2)(options.options.vue2);
269
220
  case 'vue':
270
- return (0, mitosis_1.componentToVue)(options.options.vue);
221
+ console.log('Targeting Vue: defaulting to vue v3');
222
+ case 'vue3':
223
+ return (0, mitosis_1.componentToVue3)(options.options.vue3);
224
+ case 'angular':
225
+ return (0, mitosis_1.componentToAngular)(options.options.angular);
271
226
  case 'react':
272
227
  return (0, mitosis_1.componentToReact)(options.options.react);
273
228
  case 'swift':
@@ -278,64 +233,62 @@ var getTranspilerForTarget = function (_a) {
278
233
  return (0, mitosis_1.componentToCustomElement)(options.options.webcomponent);
279
234
  case 'svelte':
280
235
  return (0, mitosis_1.componentToSvelte)(options.options.svelte);
236
+ case 'qwik':
237
+ return (0, mitosis_1.componentToQwik)(options.options.qwik);
238
+ case 'marko':
239
+ return (0, mitosis_1.componentToMarko)(options.options.marko);
240
+ case 'preact':
241
+ return (0, mitosis_1.componentToPreact)(options.options.preact);
242
+ case 'lit':
243
+ return (0, mitosis_1.componentToLit)(options.options.lit);
281
244
  default:
282
- // TO-DO: throw instead of `never`
283
- return null;
245
+ throw new Error('CLI does not yet support target: ' + target);
284
246
  }
285
247
  };
286
- var getFileExtensionForTarget = function (target) {
287
- switch (target) {
288
- case 'vue':
289
- return '.vue';
290
- case 'swift':
291
- return '.swift';
292
- case 'svelte':
293
- return '.svelte';
294
- case 'solid':
295
- return '.jsx';
296
- default:
297
- return '.js';
298
- }
248
+ /**
249
+ * Output generated component file, before it is minified and transpiled into JS.
250
+ */
251
+ var checkShouldOutputTypeScript = function (_a) {
252
+ var _b;
253
+ var target = _a.target, options = _a.options;
254
+ var isTypescript = (_b = options.options[target]) === null || _b === void 0 ? void 0 : _b.typescript;
255
+ return isTypescript;
299
256
  };
300
257
  var replaceFileExtensionForTarget = function (_a) {
301
258
  var target = _a.target, path = _a.path;
302
- return path.replace(/\.lite\.tsx$/, getFileExtensionForTarget(target));
259
+ return path.replace(/\.lite\.tsx$/, (0, extensions_1.getFileExtensionForTarget)(target));
303
260
  };
304
261
  /**
305
262
  * Transpiles and outputs Mitosis component files.
306
263
  */
307
- function outputTsxLiteFiles(target, files, options) {
264
+ function buildAndOutputComponentFiles(_a) {
265
+ var target = _a.target, files = _a.files, options = _a.options, generator = _a.generator, outputPath = _a.outputPath;
308
266
  return __awaiter(this, void 0, void 0, function () {
309
- var kebabTarget, debugTarget, transpiler, output;
267
+ var debugTarget, output;
310
268
  var _this = this;
311
- return __generator(this, function (_a) {
312
- switch (_a.label) {
269
+ return __generator(this, function (_b) {
270
+ switch (_b.label) {
313
271
  case 0:
314
- kebabTarget = (0, lodash_1.kebabCase)(target);
315
272
  debugTarget = (0, debug_1.default)("mitosis:".concat(target));
316
- transpiler = getTranspilerForTarget({ options: options, target: target });
317
273
  output = files.map(function (_a) {
318
274
  var path = _a.path, mitosisJson = _a.mitosisJson;
319
275
  return __awaiter(_this, void 0, void 0, function () {
320
- var outputFilePath, overrideFilePath, overrideFile, _b, transpiled, original, _c, registerComponentHook, outputDir, _d;
321
- return __generator(this, function (_e) {
322
- switch (_e.label) {
276
+ var outputFilePath, overrideFilePath, overrideFile, _b, transpiled, original, _c, outputDir;
277
+ return __generator(this, function (_d) {
278
+ switch (_d.label) {
323
279
  case 0:
324
- outputFilePath = replaceFileExtensionForTarget({
325
- target: target,
326
- path: path,
327
- });
328
- overrideFilePath = "".concat(options.overridesDir, "/").concat(kebabTarget, "/").concat(outputFilePath);
280
+ outputFilePath = replaceFileExtensionForTarget({ target: target, path: path });
281
+ overrideFilePath = "".concat(options.overridesDir, "/").concat(outputPath, "/").concat(outputFilePath);
329
282
  return [4 /*yield*/, (0, fs_extra_1.pathExists)(overrideFilePath)];
330
283
  case 1:
331
- if (!(_e.sent())) return [3 /*break*/, 3];
284
+ if (!(_d.sent())) return [3 /*break*/, 3];
332
285
  return [4 /*yield*/, (0, fs_extra_1.readFile)(overrideFilePath, 'utf8')];
333
286
  case 2:
334
- _b = _e.sent();
287
+ _b = _d.sent();
335
288
  return [3 /*break*/, 4];
336
289
  case 3:
337
290
  _b = null;
338
- _e.label = 4;
291
+ _d.label = 4;
339
292
  case 4:
340
293
  overrideFile = _b;
341
294
  debugTarget("transpiling ".concat(path, "..."));
@@ -344,21 +297,24 @@ function outputTsxLiteFiles(target, files, options) {
344
297
  debugTarget("override exists for ".concat(path, ": ").concat(!!overrideFile));
345
298
  }
346
299
  try {
347
- transpiled = overrideFile !== null && overrideFile !== void 0 ? overrideFile : transpiler({ path: path, component: mitosisJson });
300
+ transpiled = overrideFile !== null && overrideFile !== void 0 ? overrideFile : generator({ path: path, component: mitosisJson });
348
301
  debugTarget("Success: transpiled ".concat(path, ". Output length: ").concat(transpiled.length));
349
302
  }
350
303
  catch (error) {
351
304
  debugTarget("Failure: transpiled ".concat(path, "."));
352
305
  debugTarget(error);
353
- return [2 /*return*/];
306
+ throw error;
354
307
  }
355
308
  original = transpiled;
356
309
  _c = target;
357
310
  switch (_c) {
358
311
  case 'solid': return [3 /*break*/, 5];
359
312
  case 'reactNative': return [3 /*break*/, 7];
313
+ case 'preact': return [3 /*break*/, 7];
360
314
  case 'react': return [3 /*break*/, 7];
361
315
  case 'vue': return [3 /*break*/, 9];
316
+ case 'vue2': return [3 /*break*/, 9];
317
+ case 'vue3': return [3 /*break*/, 9];
362
318
  }
363
319
  return [3 /*break*/, 10];
364
320
  case 5: return [4 /*yield*/, (0, transpile_solid_file_1.transpileSolidFile)({
@@ -367,164 +323,173 @@ function outputTsxLiteFiles(target, files, options) {
367
323
  mitosisComponent: mitosisJson,
368
324
  })];
369
325
  case 6:
370
- transpiled = _e.sent();
326
+ transpiled = _d.sent();
371
327
  return [3 /*break*/, 10];
372
- case 7: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, content: transpiled, target: target })];
328
+ case 7: return [4 /*yield*/, (0, transpile_1.transpile)({
329
+ path: path,
330
+ content: transpiled,
331
+ target: target,
332
+ options: options,
333
+ })];
373
334
  case 8:
374
- transpiled = _e.sent();
375
- registerComponentHook = mitosisJson.meta.registerComponent;
376
- if (registerComponentHook) {
377
- transpiled = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { registerComponent } from '../functions/register-component';\n \n ", "\n \n registerComponent(", ", ", ");\n "], ["\n import { registerComponent } from '../functions/register-component';\n \n ", "\n \n registerComponent(", ", ", ");\n "])), transpiled, mitosisJson.name, json5.stringify(registerComponentHook));
378
- }
335
+ transpiled = _d.sent();
379
336
  return [3 /*break*/, 10];
380
- case 9:
381
- // TODO: transform to CJS (?)
382
- transpiled = (0, transpile_optional_chaining_1.transpileOptionalChaining)(transpiled).replace(/\.lite(['"];)/g, '$1');
383
- _e.label = 10;
337
+ case 9: return [3 /*break*/, 10];
384
338
  case 10:
385
- outputDir = "".concat(options.dest, "/").concat(kebabTarget);
386
- _d = target;
387
- switch (_d) {
388
- case 'vue': return [3 /*break*/, 11];
389
- }
390
- return [3 /*break*/, 13];
391
- case 11:
392
- // Nuxt
393
- return [4 /*yield*/, (0, fs_extra_1.outputFile)("".concat(outputDir, "/nuxt2/").concat(outputFilePath), transpiled)];
394
- case 12:
395
- // Nuxt
396
- _e.sent();
397
- return [3 /*break*/, 15];
398
- case 13: return [4 /*yield*/, Promise.all(__spreadArray([
399
- // this is the default output
400
- (0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(outputFilePath), transpiled)
401
- ], (target === 'swift' || target === 'svelte'
402
- ? []
403
- : [(0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(path), original)]), true))];
404
- case 14:
405
- _e.sent();
406
- return [3 /*break*/, 15];
407
- case 15: return [2 /*return*/];
339
+ outputDir = "".concat(options.dest, "/").concat(outputPath);
340
+ return [4 /*yield*/, Promise.all(__spreadArray([
341
+ // this is the default output
342
+ (0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(outputFilePath), transpiled)
343
+ ], (checkShouldOutputTypeScript({ target: target, options: options })
344
+ ? [(0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(path), original)]
345
+ : []), true))];
346
+ case 11:
347
+ _d.sent();
348
+ return [2 /*return*/];
408
349
  }
409
350
  });
410
351
  });
411
352
  });
412
353
  return [4 /*yield*/, Promise.all(output)];
413
354
  case 1:
414
- _a.sent();
355
+ _b.sent();
415
356
  return [2 /*return*/];
416
357
  }
417
358
  });
418
359
  });
419
360
  }
420
- function getTargetPaths(target) {
421
- var kebabTarget = (0, lodash_1.kebabCase)(target);
422
- var targetPaths = target === 'vue' ? ['vue/nuxt2', 'vue/vue2', 'vue/vue3'] : [kebabTarget];
423
- return targetPaths;
424
- }
361
+ var getTargetPath = function (_a) {
362
+ var target = _a.target;
363
+ switch (target) {
364
+ case 'vue2':
365
+ return 'vue/vue2';
366
+ case 'vue':
367
+ case 'vue3':
368
+ return 'vue/vue3';
369
+ default:
370
+ return (0, lodash_1.kebabCase)(target);
371
+ }
372
+ };
373
+ var getNonComponentFileExtension = (0, function_1.flow)(checkShouldOutputTypeScript, function (shouldOutputTypeScript) {
374
+ return shouldOutputTypeScript ? '.ts' : '.js';
375
+ });
425
376
  /**
426
377
  * Outputs non-component files to the destination directory, without modifying them.
427
378
  */
428
- function outputTsFiles(target, files, options) {
429
- return __awaiter(this, void 0, void 0, function () {
430
- var targetPaths, output, _loop_1, _i, targetPaths_1, targetPath;
431
- return __generator(this, function (_a) {
432
- switch (_a.label) {
379
+ var outputNonComponentFiles = function (_a) {
380
+ var files = _a.files, options = _a.options, outputPath = _a.outputPath, target = _a.target;
381
+ return __awaiter(void 0, void 0, void 0, function () {
382
+ var extension;
383
+ return __generator(this, function (_b) {
384
+ switch (_b.label) {
433
385
  case 0:
434
- targetPaths = getTargetPaths(target);
435
- output = [];
436
- _loop_1 = function (targetPath) {
437
- output.push.apply(output, files.map(function (_a) {
386
+ extension = getNonComponentFileExtension({ target: target, options: options });
387
+ return [4 /*yield*/, Promise.all(files.map(function (_a) {
438
388
  var path = _a.path, output = _a.output;
439
- return (0, fs_extra_1.outputFile)("".concat(options.dest, "/").concat(targetPath, "/").concat(path.replace(/\.tsx?$/, '.js')), output);
440
- }));
441
- };
442
- for (_i = 0, targetPaths_1 = targetPaths; _i < targetPaths_1.length; _i++) {
443
- targetPath = targetPaths_1[_i];
444
- _loop_1(targetPath);
445
- }
446
- return [4 /*yield*/, Promise.all(output)];
389
+ return (0, fs_extra_1.outputFile)("".concat(options.dest, "/").concat(outputPath, "/").concat(path.replace(/\.tsx?$/, extension)), output);
390
+ }))];
447
391
  case 1:
448
- _a.sent();
392
+ _b.sent();
449
393
  return [2 /*return*/];
450
394
  }
451
395
  });
452
396
  });
453
- }
454
- var buildContextFile = function (_a) {
455
- var path = _a.path, options = _a.options, target = _a.target;
456
- return __awaiter(void 0, void 0, void 0, function () {
457
- var name, context, _b;
458
- return __generator(this, function (_c) {
459
- switch (_c.label) {
460
- case 0:
461
- name = (0, lodash_1.upperFirst)((0, lodash_1.camelCase)((0, lodash_1.last)(path.split('/')).split('.')[0]));
462
- _b = mitosis_1.parseContext;
463
- return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
397
+ };
398
+ function buildContextFile(_a) {
399
+ var target = _a.target, options = _a.options, path = _a.path;
400
+ return __awaiter(this, void 0, void 0, function () {
401
+ var output;
402
+ return __generator(this, function (_b) {
403
+ switch (_b.label) {
404
+ case 0: return [4 /*yield*/, (0, context_1.generateContextFile)({ path: path, options: options, target: target })];
464
405
  case 1:
465
- context = _b.apply(void 0, [_c.sent(), { name: name }]);
466
- if (!context) {
467
- console.warn('Could not parse context from file', path);
468
- }
469
- else {
470
- switch (target) {
471
- case 'svelte':
472
- return [2 /*return*/, (0, mitosis_1.contextToSvelte)(options.options.svelte)({ context: context })];
473
- case 'vue':
474
- return [2 /*return*/, (0, mitosis_1.contextToVue)(context)];
475
- case 'solid':
476
- return [2 /*return*/, (0, mitosis_1.contextToSolid)()({ context: context })];
477
- case 'react':
478
- case 'reactNative':
479
- return [2 /*return*/, (0, mitosis_1.contextToReact)()({ context: context })];
480
- default:
481
- console.warn('Context files are not supported for this target. Outputting no-op');
482
- return [2 /*return*/, (0, mitosis_1.contextToVue)(context)];
483
- }
484
- }
485
- return [2 /*return*/];
406
+ output = _b.sent();
407
+ if (!!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 3];
408
+ return [4 /*yield*/, (0, transpile_1.transpile)({
409
+ path: path,
410
+ target: target,
411
+ content: output,
412
+ options: options,
413
+ })];
414
+ case 2:
415
+ output = _b.sent();
416
+ _b.label = 3;
417
+ case 3:
418
+ // we remove the `.lite` extension from the path for Context files.
419
+ path = path.replace('.lite.ts', '.ts');
420
+ return [2 /*return*/, {
421
+ path: path,
422
+ output: output,
423
+ }];
486
424
  }
487
425
  });
488
426
  });
489
- };
427
+ }
490
428
  /**
491
429
  * Transpiles all non-component files, including Context files.
492
430
  */
493
- function buildTsFiles(_a) {
494
- var target = _a.target, options = _a.options;
431
+ function buildNonComponentFiles(args) {
495
432
  return __awaiter(this, void 0, void 0, function () {
496
- var tsFiles;
433
+ var target, options, outputPath, nonComponentFiles;
497
434
  var _this = this;
498
- return __generator(this, function (_b) {
499
- switch (_b.label) {
500
- case 0: return [4 /*yield*/, (0, fast_glob_1.default)("src/**/*.ts", {
501
- cwd: cwd,
502
- })];
435
+ return __generator(this, function (_a) {
436
+ switch (_a.label) {
437
+ case 0:
438
+ target = args.target, options = args.options, outputPath = args.outputPath;
439
+ return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
503
440
  case 1:
504
- tsFiles = _b.sent();
505
- return [4 /*yield*/, Promise.all(tsFiles.map(function (path) { return __awaiter(_this, void 0, void 0, function () {
506
- var output;
507
- return __generator(this, function (_a) {
508
- switch (_a.label) {
441
+ nonComponentFiles = (_a.sent()).filter(function (file) { return file.endsWith('.ts') || file.endsWith('.js'); });
442
+ return [4 /*yield*/, Promise.all(nonComponentFiles.map(function (path) { return __awaiter(_this, void 0, void 0, function () {
443
+ var overrideFilePath, overrideFile, _a, output_1, _b, isContextFile, output, _c, _d;
444
+ return __generator(this, function (_e) {
445
+ switch (_e.label) {
509
446
  case 0:
510
- if (!path.endsWith('.context.lite.ts')) return [3 /*break*/, 2];
511
- return [4 /*yield*/, buildContextFile({ path: path, options: options, target: target })];
447
+ overrideFilePath = "".concat(options.overridesDir, "/").concat(outputPath, "/").concat(path);
448
+ return [4 /*yield*/, (0, fs_extra_1.pathExists)(overrideFilePath)];
512
449
  case 1:
513
- output = _a.sent();
514
- // we remove the `.lite` extension from the path for Context files.
515
- path = path.replace('.lite.ts', '.ts');
516
- _a.label = 2;
517
- case 2: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, target: target, content: output })];
450
+ if (!(_e.sent())) return [3 /*break*/, 3];
451
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(overrideFilePath, 'utf8')];
452
+ case 2:
453
+ _a = _e.sent();
454
+ return [3 /*break*/, 4];
518
455
  case 3:
519
- output = _a.sent();
520
- return [2 /*return*/, {
521
- path: path,
522
- output: output,
523
- }];
456
+ _a = null;
457
+ _e.label = 4;
458
+ case 4:
459
+ overrideFile = _a;
460
+ if (!overrideFile) return [3 /*break*/, 8];
461
+ if (!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 5];
462
+ _b = (0, transpile_1.transformImports)(target)(overrideFile);
463
+ return [3 /*break*/, 7];
464
+ case 5: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, target: target, content: overrideFile, options: options })];
465
+ case 6:
466
+ _b = _e.sent();
467
+ _e.label = 7;
468
+ case 7:
469
+ output_1 = _b;
470
+ return [2 /*return*/, { output: output_1, path: path }];
471
+ case 8:
472
+ isContextFile = path.endsWith('.context.lite.ts');
473
+ if (isContextFile) {
474
+ return [2 /*return*/, buildContextFile(__assign(__assign({}, args), { path: path }))];
475
+ }
476
+ if (!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 10];
477
+ _d = function_1.pipe;
478
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
479
+ case 9:
480
+ _c = _d.apply(void 0, [_e.sent(), (0, transpile_1.transformImports)(target)]);
481
+ return [3 /*break*/, 12];
482
+ case 10: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, target: target, options: options })];
483
+ case 11:
484
+ _c = _e.sent();
485
+ _e.label = 12;
486
+ case 12:
487
+ output = _c;
488
+ return [2 /*return*/, { output: output, path: path }];
524
489
  }
525
490
  });
526
491
  }); }))];
527
- case 2: return [2 /*return*/, _b.sent()];
492
+ case 2: return [2 /*return*/, _a.sent()];
528
493
  }
529
494
  });
530
495
  });
@@ -532,5 +497,4 @@ function buildTsFiles(_a) {
532
497
  if (require.main === module) {
533
498
  build().catch(console.error);
534
499
  }
535
- var templateObject_1;
536
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGQvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FtQjZCO0FBQzdCLGdEQUEwQjtBQUMxQixrREFBNEI7QUFDNUIsd0RBQTZCO0FBQzdCLHFDQUFvRTtBQUNwRSwyQ0FBK0I7QUFDL0IsaUNBQWdFO0FBQ2hFLDBEQUFvQztBQUNwQyx5REFBc0Q7QUFDdEQsaURBQWdEO0FBQ2hELHFGQUFrRjtBQUNsRix1RUFBb0U7QUFFcEUsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLElBQU0sY0FBYyxHQUEyQjtJQUM3QyxPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxZQUFZLEVBQUUsV0FBVztDQUMxQixDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQTZCO0lBQ2hELEdBQUcsRUFBRTtRQUNILFlBQVksRUFBRSxjQUFNLE9BQUEsSUFBQSwyQkFBVyxHQUFFLEVBQWIsQ0FBYTtRQUNqQyxVQUFVLEVBQUUsVUFBQyxJQUFJLElBQUssT0FBQSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQW5ELENBQW1EO1FBQ3pFLGVBQWUsRUFBRSxJQUFJO0tBQ3RCO0NBQ0YsQ0FBQztBQUVGLFNBQXNCLEtBQUssQ0FBQyxNQUFzQjs7Ozs7Ozs7b0JBQzFDLE9BQU8sa0NBQ1IsY0FBYyxHQUNkLE1BQU0sS0FDVCxPQUFPLGlDQUNGLGVBQWUsR0FDZixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxLQUNs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
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGQvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FvQjZCO0FBQzdCLGdEQUEwQjtBQUMxQix3REFBNkI7QUFDN0IsK0NBQWdEO0FBQ2hELHFDQUFvRTtBQUNwRSxpQ0FBbUM7QUFDbkMsMERBQW9DO0FBQ3BDLG9EQUFrRDtBQUNsRCw2Q0FBd0Q7QUFDeEQsbURBQWlFO0FBQ2pFLGlEQUFrRTtBQUNsRSx1RUFBb0U7QUFFcEUsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLElBQU0sY0FBYyxHQUEyQjtJQUM3QyxPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxZQUFZLEVBQUUsV0FBVztDQUMxQixDQUFDO0FBRUYsSUFBTSxVQUFVLEdBQUcsVUFBQyxNQUFzQixJQUFvQixPQUFBLGdDQUN6RCxjQUFjLEdBQ2QsTUFBTSxLQUNULE9BQU8sd0JBQ0YsY0FBYyxDQUFDLE9BQU8sR0FDdEIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sS0FFcEIsRUFQNEQsQ0FPNUQsQ0FBQztBQUVILFNBQWUsS0FBSyxDQUFDLE9BQXNCOzs7Ozs7d0JBQzNCLHFCQUFNLElBQUEsbUJBQUksRUFBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLG1CQUFTLE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBQyxFQUFBOztvQkFBM0QsS0FBSyxHQUFHLFNBQW1EO29CQUNqRSxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBTyxJQUFJOzs7NENBQ25CLHFCQUFNLElBQUEsaUJBQU0sRUFBQyxJQUFJLENBQUMsRUFBQTs7d0NB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