@omnia/tooling-vue 8.0.91-vnext → 8.0.92-dev
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.
- package/internal-do-not-import-from-here/config/omnia.fx.core_a2892051-fd9f-4056-ae8d-30d16d48417d.manifest.json +1 -0
- package/internal-do-not-import-from-here/config/omnia.fx.ux_dee030cc-4ab3-4158-bb06-8049f5c67542.manifest.json +1 -0
- package/internal-do-not-import-from-here/config/omnia.fx_a5a89056-b5f5-475d-8518-a1f55090379d.manifest.json +1 -0
- package/internal-do-not-import-from-here/config/omnia.vendor.manifest.json +1 -1
- package/internal-do-not-import-from-here/config/tooling.output.json +1 -1
- package/internal-do-not-import-from-here/config/wctypings.d.ts +4435 -1498
- package/internal-do-not-import-from-here/shared.d.ts +11 -6
- package/internal-do-not-import-from-here/shared.js +32 -12
- package/internal-do-not-import-from-here/tasks/ComponentDocRegistrations.js +1 -1
- package/internal-do-not-import-from-here/tasks/bundle.js +65 -380
- package/internal-do-not-import-from-here/tasks/doc.d.ts +3 -1
- package/internal-do-not-import-from-here/tasks/doc.js +393 -392
- package/internal-do-not-import-from-here/tasks/vendor.js +16 -12
- package/internal-do-not-import-from-here/vite/hmr/graph.js +3 -1
- package/internal-do-not-import-from-here/vite/plugins/OmniaPlugin.js +1 -1
- package/internal-do-not-import-from-here/webpack-loaders/doc-loader.d.ts +1 -0
- package/internal-do-not-import-from-here/webpack-loaders/doc-loader.js +11 -0
- package/internal-do-not-import-from-here/webpack-loaders/esbuild-custom-loader.d.ts +1 -0
- package/internal-do-not-import-from-here/webpack-loaders/esbuild-custom-loader.js +10 -0
- package/internal-do-not-import-from-here/webpack-loaders/ts-loader.d.ts +5 -2
- package/internal-do-not-import-from-here/webpack-loaders/ts-loader.js +8 -0
- package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.d.ts +3 -3
- package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.js +3 -0
- package/internal-do-not-import-from-here/webpack-loaders/wc-loader.d.ts +1 -1
- package/internal-do-not-import-from-here/webpack-loaders/wc-loader.js +5 -1
- package/package.json +7 -8
|
@@ -14,7 +14,7 @@ const fx_models_1 = require("@omnia/fx-models");
|
|
|
14
14
|
const $ = tslib_1.__importStar(require("../variables"));
|
|
15
15
|
const shared_1 = require("../shared");
|
|
16
16
|
const tooling_1 = require("@omnia/tooling");
|
|
17
|
-
const
|
|
17
|
+
const doc_1 = require("./doc");
|
|
18
18
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
19
19
|
const ConcatSource = require('webpack-core/lib/ConcatSource');
|
|
20
20
|
const CircularDependencyPlugin = require('circular-dependency-plugin');
|
|
@@ -40,19 +40,24 @@ $.tooling.core.registerBuildTask({
|
|
|
40
40
|
return new Promise(function (resolve, reject) {
|
|
41
41
|
buildEntries()
|
|
42
42
|
.then((result) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
if (process.argv.length > 0 && process.argv.find(argv => argv === "--package") !== undefined) {
|
|
44
|
+
resolve(result);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
let startTime = new Date().getTime();
|
|
48
|
+
tooling_1.utils.log("Typescript checking...");
|
|
49
|
+
const spawn = require("child_process").spawn;
|
|
50
|
+
spawn("node", [path_1.default.resolve(__dirname, "./tsc.js")], { stdio: "inherit", })
|
|
51
|
+
.on('exit', (code) => {
|
|
52
|
+
if (code == 0) {
|
|
53
|
+
tooling_1.utils.logTime('Done - Typescript', startTime);
|
|
54
|
+
resolve(result);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
process.exit(code);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
56
61
|
}, reject);
|
|
57
62
|
});
|
|
58
63
|
}
|
|
@@ -197,11 +202,12 @@ function buildEntries(serve = false) {
|
|
|
197
202
|
var componentRegistry = $.composers.ComponentRegistry;
|
|
198
203
|
let componentRegistrations = componentRegistry.getRegistrations();
|
|
199
204
|
const serviceInfo = $.composers.ServiceManifestRegistry.getServiceInfo();
|
|
200
|
-
if (serviceInfo.serviceType === tooling_composers_1.ServiceTypes.WebApp) {
|
|
201
|
-
await generateComponentTypingsAndDoc(componentRegistrations);
|
|
202
|
-
}
|
|
203
205
|
startTime = new Date().getTime();
|
|
204
206
|
$.tooling.logTime("Found [" + componentRegistrations.length + "] component registrations", startTime);
|
|
207
|
+
let componentEntries = createVueEntryFormComponentRegistrations(componentRegistrations);
|
|
208
|
+
if (serviceInfo.serviceType === tooling_composers_1.ServiceTypes.WebApp) {
|
|
209
|
+
await (0, doc_1.generateComponentTypingsAndDoc)(componentRegistrations);
|
|
210
|
+
}
|
|
205
211
|
var resourceRegistry = $.composers.ResourceRegistry;
|
|
206
212
|
let resourceBundlesWithBuildOptions = resourceRegistry.getRegisteredResourceBundles(shared_1.convertManifestPathToEntryPath);
|
|
207
213
|
$.tooling.logTime("Found [" + resourceBundlesWithBuildOptions?.size + "] resource bundles", startTime);
|
|
@@ -217,7 +223,6 @@ function buildEntries(serve = false) {
|
|
|
217
223
|
console.log("debug " + res[0] + " has build options for paths " + resource.paths + " buildoptions: " + JSON.stringify(resource.buildOptions));
|
|
218
224
|
}
|
|
219
225
|
}
|
|
220
|
-
let componentEntries = createVueEntryFormRegistrations(componentRegistrations);
|
|
221
226
|
var entries = $.merge(componentEntries, resourceEntries);
|
|
222
227
|
if (checkDuplicateWebpackEntryPoints(entries)) {
|
|
223
228
|
$.tooling.log('Build manifests metadata have error that found duplicated resource path', $.tooling.LogTypes.Error);
|
|
@@ -252,248 +257,7 @@ function buildEntries(serve = false) {
|
|
|
252
257
|
}
|
|
253
258
|
});
|
|
254
259
|
}
|
|
255
|
-
|
|
256
|
-
tooling_1.utils.log("Generate components typings and documentation running...");
|
|
257
|
-
var startTime = new Date().getTime();
|
|
258
|
-
let DefineVueType;
|
|
259
|
-
(function (DefineVueType) {
|
|
260
|
-
DefineVueType[DefineVueType["Prop"] = 0] = "Prop";
|
|
261
|
-
DefineVueType[DefineVueType["Model"] = 1] = "Model";
|
|
262
|
-
DefineVueType[DefineVueType["Slot"] = 2] = "Slot";
|
|
263
|
-
DefineVueType[DefineVueType["Emit"] = 4] = "Emit";
|
|
264
|
-
})(DefineVueType || (DefineVueType = {}));
|
|
265
|
-
const docResult = {};
|
|
266
|
-
function getPropertyFunctionTypeAsString(type) {
|
|
267
|
-
let params = "";
|
|
268
|
-
if (type.params?.length > 0) {
|
|
269
|
-
type.params.forEach(p => {
|
|
270
|
-
params += `${p.value}:${getPropertyType(p.typeAnnotation)}, `;
|
|
271
|
-
});
|
|
272
|
-
params = params.replace(/,\s*$/, "");
|
|
273
|
-
}
|
|
274
|
-
return `(${params}) => ${getPropertyType(type.typeAnnotation)}`;
|
|
275
|
-
}
|
|
276
|
-
function getPropertyType(tsType) {
|
|
277
|
-
let result = "";
|
|
278
|
-
if (tsType.type === "TsTypeAnnotation") {
|
|
279
|
-
return getPropertyType(tsType.typeAnnotation);
|
|
280
|
-
}
|
|
281
|
-
switch (tsType.type) {
|
|
282
|
-
case "TsLiteralType":
|
|
283
|
-
result = tsType.literal.value;
|
|
284
|
-
break;
|
|
285
|
-
case "TsKeywordType":
|
|
286
|
-
result = tsType.kind;
|
|
287
|
-
break;
|
|
288
|
-
case "TsTypeReference":
|
|
289
|
-
result = tsType.typeName.value;
|
|
290
|
-
break;
|
|
291
|
-
case "TsFunctionType":
|
|
292
|
-
result = getPropertyFunctionTypeAsString(tsType);
|
|
293
|
-
break;
|
|
294
|
-
default:
|
|
295
|
-
break;
|
|
296
|
-
}
|
|
297
|
-
return result;
|
|
298
|
-
}
|
|
299
|
-
function getNameProperty(ce, result) {
|
|
300
|
-
const identifier = ce.callee?.property?.value;
|
|
301
|
-
if (identifier) {
|
|
302
|
-
switch (identifier) {
|
|
303
|
-
case "name":
|
|
304
|
-
result.name = ce.arguments[0].expression.value;
|
|
305
|
-
getNameProperty(ce.callee.object, result);
|
|
306
|
-
break;
|
|
307
|
-
case "vModel":
|
|
308
|
-
result.type = DefineVueType.Model;
|
|
309
|
-
result.propertyTypeAsString = getPropertyType(ce.typeArguments.params[0]);
|
|
310
|
-
result.name = result.name ? `v-model:${result.name}` : result.name;
|
|
311
|
-
break;
|
|
312
|
-
case "slots":
|
|
313
|
-
result.type = DefineVueType.Slot;
|
|
314
|
-
result.propertyTypeAsObject = {};
|
|
315
|
-
ce.typeArguments.params[0].members
|
|
316
|
-
.forEach(m => {
|
|
317
|
-
result.propertyTypeAsObject[m.key.value] = getPropertyType(m.typeAnnotation);
|
|
318
|
-
});
|
|
319
|
-
break;
|
|
320
|
-
case "prop":
|
|
321
|
-
result.type = DefineVueType.Prop;
|
|
322
|
-
result.propertyTypeAsString = getPropertyType(ce.typeArguments.params[0]);
|
|
323
|
-
break;
|
|
324
|
-
case "emit":
|
|
325
|
-
result.type = DefineVueType.Emit;
|
|
326
|
-
result.propertyTypeAsString = getPropertyType(ce.typeArguments.params[0]);
|
|
327
|
-
break;
|
|
328
|
-
default:
|
|
329
|
-
getNameProperty(ce.callee.object, result);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
async function buildDoc(wc) {
|
|
334
|
-
try {
|
|
335
|
-
const wcPath = (0, shared_1.convertManifestPathToEntryPath)(wc.manifestPath, [wc.componentOptions.entryPoint])[0];
|
|
336
|
-
const wcParseResult = await (0, core_1.parseFile)(wcPath, {
|
|
337
|
-
syntax: 'typescript',
|
|
338
|
-
target: 'es2020',
|
|
339
|
-
tsx: true,
|
|
340
|
-
decorators: true,
|
|
341
|
-
dynamicImport: true
|
|
342
|
-
});
|
|
343
|
-
wcParseResult.body.forEach(b => {
|
|
344
|
-
if (b.type === 'ExportDefaultExpression'
|
|
345
|
-
&& b.expression.callee?.value === "defineVueWebComponent") {
|
|
346
|
-
b.expression.arguments[0].expression
|
|
347
|
-
.properties?.filter(p => p.key.value === "props"
|
|
348
|
-
|| p.key.value === "emits")
|
|
349
|
-
?.forEach(propsIdentifier => {
|
|
350
|
-
if (propsIdentifier) {
|
|
351
|
-
propsIdentifier.value
|
|
352
|
-
.properties?.forEach(p => {
|
|
353
|
-
const em = p.arguments;
|
|
354
|
-
if (em?.callee?.property?.value === "doc$") {
|
|
355
|
-
const PropertyResult = {
|
|
356
|
-
type: null,
|
|
357
|
-
propertyTypeAsString: "",
|
|
358
|
-
name: ""
|
|
359
|
-
};
|
|
360
|
-
getNameProperty(em, PropertyResult);
|
|
361
|
-
if (!docResult[wc.componentOptions.elementName]) {
|
|
362
|
-
docResult[wc.componentOptions.elementName] = {
|
|
363
|
-
emits: {},
|
|
364
|
-
models: {},
|
|
365
|
-
props: {},
|
|
366
|
-
slots: {}
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
switch (PropertyResult.type) {
|
|
370
|
-
case DefineVueType.Prop:
|
|
371
|
-
docResult[wc.componentOptions.elementName].props[PropertyResult.name] = {
|
|
372
|
-
type: PropertyResult.propertyTypeAsString,
|
|
373
|
-
description: em.arguments[0].expression.value
|
|
374
|
-
};
|
|
375
|
-
break;
|
|
376
|
-
case DefineVueType.Model:
|
|
377
|
-
docResult[wc.componentOptions.elementName].models[PropertyResult.name] = {
|
|
378
|
-
type: PropertyResult.propertyTypeAsString,
|
|
379
|
-
description: em.arguments[0].expression.value
|
|
380
|
-
};
|
|
381
|
-
break;
|
|
382
|
-
case DefineVueType.Emit:
|
|
383
|
-
docResult[wc.componentOptions.elementName].emits[PropertyResult.name] = {
|
|
384
|
-
type: PropertyResult.propertyTypeAsString,
|
|
385
|
-
description: em.arguments[0].expression.value
|
|
386
|
-
};
|
|
387
|
-
break;
|
|
388
|
-
case DefineVueType.Slot:
|
|
389
|
-
em.arguments[0].expression
|
|
390
|
-
.properties
|
|
391
|
-
.forEach(p => {
|
|
392
|
-
const slotName = p.key.value;
|
|
393
|
-
docResult[wc.componentOptions.elementName].slots[slotName] = {
|
|
394
|
-
type: PropertyResult.propertyTypeAsObject[slotName],
|
|
395
|
-
description: p.value.value
|
|
396
|
-
};
|
|
397
|
-
});
|
|
398
|
-
break;
|
|
399
|
-
default:
|
|
400
|
-
break;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
catch (ex) {
|
|
410
|
-
tooling_1.utils.log(`Have a exception when extract doc$ for web component manifest -> ${wc.manifestPath}`, tooling_1.utils.LogTypes.Error);
|
|
411
|
-
console.error(ex);
|
|
412
|
-
throw new Error("Exit, have an exception.");
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
let docPath = $.path.resolve(__dirname, "ComponentDocRegistrations.ts");
|
|
416
|
-
;
|
|
417
|
-
const wcNamespace = getBuildOption()?.webComponentNamespace;
|
|
418
|
-
const info = shared_1.ConfigurationManager.outputInfo.get();
|
|
419
|
-
info.wc = {
|
|
420
|
-
namespace: wcNamespace,
|
|
421
|
-
mappings: {}
|
|
422
|
-
};
|
|
423
|
-
let wcTypings = wcNamespace ? `
|
|
424
|
-
//{{importWC}}
|
|
425
|
-
declare global {
|
|
426
|
-
namespace JSX {
|
|
427
|
-
interface Element { }
|
|
428
|
-
interface ElementClass { }
|
|
429
|
-
|
|
430
|
-
interface IntrinsicElements {
|
|
431
|
-
//{{elementName}}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
declare global {
|
|
437
|
-
let ${wcNamespace}: {
|
|
438
|
-
//{{nselementName}}
|
|
439
|
-
};
|
|
440
|
-
}
|
|
441
|
-
`
|
|
442
|
-
: `
|
|
443
|
-
//{{importWC}}
|
|
444
|
-
declare global {
|
|
445
|
-
namespace JSX {
|
|
446
|
-
interface Element { }
|
|
447
|
-
interface ElementClass { }
|
|
448
|
-
|
|
449
|
-
interface IntrinsicElements {
|
|
450
|
-
//{{elementName}}
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
}`;
|
|
454
|
-
if ($.isExtensionEnv) {
|
|
455
|
-
wcTypings = `import { VueComponentBaseProps } from "@omnia/fx/ux";
|
|
456
|
-
${wcTypings}`;
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
wcTypings = `import { VueComponentBaseProps } from "../../../../client/fx/ux/index";
|
|
460
|
-
${wcTypings}`;
|
|
461
|
-
}
|
|
462
|
-
await tooling_1.utils.asyncForEach(componentRegistrations, async (wc) => {
|
|
463
|
-
wcTypings = generateWebComponentTypings(wc, wcTypings, info);
|
|
464
|
-
await buildDoc(wc);
|
|
465
|
-
});
|
|
466
|
-
if (Object.keys(docResult).length > 0) {
|
|
467
|
-
fsExtra.outputFileSync(docPath, `
|
|
468
|
-
import { extendApi } from "@omnia/fx";
|
|
469
|
-
import { ComponentDoc } from "@omnia/fx-models";
|
|
470
|
-
|
|
471
|
-
extendApi(api => api.fx.docs.registrations, api => {
|
|
472
|
-
|
|
473
|
-
const registrations: { [elementName: string]: ComponentDoc } = ${JSON.stringify(docResult)}
|
|
474
|
-
|
|
475
|
-
Object.keys(registrations).forEach(elementName => {
|
|
476
|
-
api.register(elementName, registrations[elementName]);
|
|
477
|
-
});
|
|
478
|
-
});
|
|
479
|
-
`);
|
|
480
|
-
// create dynamic doc manifest
|
|
481
|
-
$.composers.ManifestRegistry.setCurrentManifestPath(`${path_1.default.relative(tooling_1.utils.root(""), path_1.default.resolve(__dirname))}/`);
|
|
482
|
-
$.composers
|
|
483
|
-
.Composer
|
|
484
|
-
.registerManifest(getBuildOption().docResourceManifestId || new fx_models_1.Guid(`${tooling_1.utils.generateGuid()}`), "omnia.fx.docs.components.registraions")
|
|
485
|
-
.registerResources({
|
|
486
|
-
resourcePaths: ["./ComponentDocRegistrations.ts"]
|
|
487
|
-
})
|
|
488
|
-
.withTarget(fx_models_1.ClientManifestTargetTypes.Docs)
|
|
489
|
-
.extendApi(api => api.fx.docs.registrations);
|
|
490
|
-
$.composers.ManifestRegistry.setCurrentManifestPath();
|
|
491
|
-
}
|
|
492
|
-
shared_1.ConfigurationManager.webComponentTypings.update(wcTypings);
|
|
493
|
-
shared_1.ConfigurationManager.outputInfo.update(info);
|
|
494
|
-
tooling_1.utils.logTime('Done - Generate components typings and documentation', startTime);
|
|
495
|
-
}
|
|
496
|
-
function buildManifestMetadatas(entries) {
|
|
260
|
+
function buildManifestMetadata(entries) {
|
|
497
261
|
return new Promise(function (resolve, reject) {
|
|
498
262
|
try {
|
|
499
263
|
var startTime = new Date().getTime();
|
|
@@ -580,7 +344,7 @@ function beforeBundleManifest(entries) {
|
|
|
580
344
|
// isRunBuildMetadata = !isEqual(entries, cachedEntries);
|
|
581
345
|
// }
|
|
582
346
|
// }
|
|
583
|
-
if ($.fs.existsSync(cachedEntriesPath)) {
|
|
347
|
+
if (!isBuildWebpackManifestOnly() && $.fs.existsSync(cachedEntriesPath)) {
|
|
584
348
|
let cachedEntries = require(cachedEntriesPath);
|
|
585
349
|
isRunBuildMetadata = !isEqual(entries, cachedEntries);
|
|
586
350
|
}
|
|
@@ -612,9 +376,14 @@ function beforeBundleManifest(entries) {
|
|
|
612
376
|
fsExtra.writeJsonSync(manifestPath, content);
|
|
613
377
|
}
|
|
614
378
|
});
|
|
615
|
-
|
|
379
|
+
buildManifestMetadata(entriesToBuild).then(() => {
|
|
616
380
|
fsExtra.ensureFileSync(cachedEntriesPath);
|
|
617
381
|
fsExtra.writeJsonSync(cachedEntriesPath, entries);
|
|
382
|
+
if (isBuildWebpackManifestOnly()) {
|
|
383
|
+
fsExtra.copyFileSync(`${outDirManifestMetadata}/omnia.fx.core_a2892051-fd9f-4056-ae8d-30d16d48417d.manifest.json`, "client/tooling/vue/config/omnia.fx.core_a2892051-fd9f-4056-ae8d-30d16d48417d.manifest.json");
|
|
384
|
+
fsExtra.copyFileSync(`${outDirManifestMetadata}/omnia.fx_a5a89056-b5f5-475d-8518-a1f55090379d.manifest.json`, "client/tooling/vue/config/omnia.fx_a5a89056-b5f5-475d-8518-a1f55090379d.manifest.json");
|
|
385
|
+
fsExtra.copyFileSync(`${outDirManifestMetadata}/omnia.fx.ux_dee030cc-4ab3-4158-bb06-8049f5c67542.manifest.json`, "client/tooling/vue/config/omnia.fx.ux_dee030cc-4ab3-4158-bb06-8049f5c67542.manifest.json");
|
|
386
|
+
}
|
|
618
387
|
resolve(entries);
|
|
619
388
|
});
|
|
620
389
|
}
|
|
@@ -754,6 +523,9 @@ function afterGenerateManifestsMetadata() {
|
|
|
754
523
|
.then(resolve, reject);
|
|
755
524
|
});
|
|
756
525
|
}
|
|
526
|
+
function isBuildWebpackManifestOnly() {
|
|
527
|
+
return process.argv?.find(argv => argv === "--webpackManifest") !== undefined;
|
|
528
|
+
}
|
|
757
529
|
function minifyBundles() {
|
|
758
530
|
return new Promise(function (resolve, reject) {
|
|
759
531
|
if (process.argv.length > 0 && process.argv.find(argv => argv === "--minify") !== undefined) {
|
|
@@ -919,7 +691,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, viteHmrO
|
|
|
919
691
|
'@microsoft/signalr$': '@microsoft/signalr/dist/webworker/signalr.js',
|
|
920
692
|
}),
|
|
921
693
|
},
|
|
922
|
-
target: ['web', 'es2022'],
|
|
694
|
+
target: ['web', 'es2022'], // Will change ES6 when stop support IE11
|
|
923
695
|
output: {
|
|
924
696
|
//library: {
|
|
925
697
|
// type: "umd"
|
|
@@ -954,8 +726,8 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, viteHmrO
|
|
|
954
726
|
}
|
|
955
727
|
return false;
|
|
956
728
|
},
|
|
957
|
-
// use: 'null-loader',
|
|
958
729
|
use: [
|
|
730
|
+
// 'null-loader',
|
|
959
731
|
{
|
|
960
732
|
loader: path_1.default.resolve(__dirname, $.isExtensionEnv ? '../webpack-loaders/ingore-vuetify-locale.js' : '../webpack-loaders/ingore-vuetify-locale.ts'),
|
|
961
733
|
}
|
|
@@ -1069,7 +841,7 @@ function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
|
|
|
1069
841
|
var entensionId = getServiceId();
|
|
1070
842
|
return Object.assign({}, getBaseWebpackConfigForManifestMetadata(entry, metadataOutputDir), {
|
|
1071
843
|
plugins: [
|
|
1072
|
-
...buildReferenceManifestFromConfig(),
|
|
844
|
+
...buildReferenceManifestFromConfig(Object.keys(entry)[0]),
|
|
1073
845
|
new $.omniaWebpackPlugins.NamedModulesPlugin(buildModuleName()),
|
|
1074
846
|
new $.webpack.DllPlugin({
|
|
1075
847
|
entryOnly: false,
|
|
@@ -1439,12 +1211,17 @@ function buildReferenceManifest(currentEntry, entries) {
|
|
|
1439
1211
|
var manifests = [];
|
|
1440
1212
|
var dynamicReferenceManifests = [];
|
|
1441
1213
|
let buildOptions = getBuildOption();
|
|
1442
|
-
if (buildOptions && buildOptions.bundleOptions && buildOptions.bundleOptions.commonsChunk)
|
|
1443
|
-
return dynamicReferenceManifests.concat(buildReferenceManifestFromConfig());
|
|
1444
1214
|
var currentEntryName = Object.keys(currentEntry)[0];
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1215
|
+
if (buildOptions && buildOptions.bundleOptions && buildOptions.bundleOptions.commonsChunk)
|
|
1216
|
+
return dynamicReferenceManifests.concat(buildReferenceManifestFromConfig(currentEntryName));
|
|
1217
|
+
// exclude pre-built webpack manifest
|
|
1218
|
+
if ($.isExtensionEnv
|
|
1219
|
+
|| (currentEntryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1220
|
+
&& currentEntryName.indexOf(vendorProdId) === -1
|
|
1221
|
+
// && currentEntryName.indexOf(OmniaResourceManifests.FxCore.toString()) === -1
|
|
1222
|
+
// && currentEntryName.indexOf(OmniaResourceManifests.Fx.toString()) === -1
|
|
1223
|
+
// && currentEntryName.indexOf(OmniaResourceManifests.FxUx.toString()) === -1
|
|
1224
|
+
)) {
|
|
1448
1225
|
Object.keys(entries).forEach((entryName) => {
|
|
1449
1226
|
if (entryName !== currentEntryName) {
|
|
1450
1227
|
if ($.fs.existsSync($.tooling.utils.root(outDirManifestMetadata + "/" + entryName + ".manifest.json"))) {
|
|
@@ -1458,14 +1235,14 @@ function buildReferenceManifest(currentEntry, entries) {
|
|
|
1458
1235
|
}
|
|
1459
1236
|
});
|
|
1460
1237
|
}
|
|
1461
|
-
manifests = buildReferenceManifestFromConfig().concat(dynamicReferenceManifests).concat(manifests);
|
|
1238
|
+
manifests = buildReferenceManifestFromConfig(currentEntryName).concat(dynamicReferenceManifests).concat(manifests);
|
|
1462
1239
|
return manifests;
|
|
1463
1240
|
}
|
|
1464
1241
|
function cleanUpComposer() {
|
|
1465
1242
|
$.composers.ManifestRegistry.clearState();
|
|
1466
1243
|
}
|
|
1467
1244
|
exports.cleanUpComposer = cleanUpComposer;
|
|
1468
|
-
function buildReferenceManifestFromConfig() {
|
|
1245
|
+
function buildReferenceManifestFromConfig(entryName) {
|
|
1469
1246
|
var manifests = [];
|
|
1470
1247
|
let buildOptions = getBuildOption();
|
|
1471
1248
|
if (buildOptions.reference) {
|
|
@@ -1477,6 +1254,17 @@ function buildReferenceManifestFromConfig() {
|
|
|
1477
1254
|
}));
|
|
1478
1255
|
}
|
|
1479
1256
|
}
|
|
1257
|
+
if (!isBuildWebpackManifestOnly() && buildOptions.webpackManifests) {
|
|
1258
|
+
for (let manifestPath of buildOptions.webpackManifests) {
|
|
1259
|
+
if (manifestPath.indexOf(entryName) === -1) {
|
|
1260
|
+
manifests.push(new $.omniaWebpackPlugins.DllReferencePlugin({
|
|
1261
|
+
context: $.tooling.utils.root(""),
|
|
1262
|
+
manifest: $.tooling.utils.root(manifestPath),
|
|
1263
|
+
// name: `md${++trackingModuleRefId}` //require('md5')(manifestPath)
|
|
1264
|
+
}));
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1480
1268
|
if ($.isExtensionEnv) {
|
|
1481
1269
|
_registeredReferenceManifests.forEach(manifest => {
|
|
1482
1270
|
manifests.push(new $.omniaWebpackPlugins.DllReferencePlugin({
|
|
@@ -1556,89 +1344,18 @@ function getServiceId() {
|
|
|
1556
1344
|
return serviceId;
|
|
1557
1345
|
}
|
|
1558
1346
|
exports.getServiceId = getServiceId;
|
|
1559
|
-
function
|
|
1560
|
-
let foundTypes = {};
|
|
1561
|
-
componentRegistrations.forEach((comp) => {
|
|
1562
|
-
let defPaths = comp.componentOptions.typings;
|
|
1563
|
-
if (defPaths) {
|
|
1564
|
-
let isChildSpec = false;
|
|
1565
|
-
defPaths.forEach((defPath) => {
|
|
1566
|
-
let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(comp.manifestPath, [defPath])[0];
|
|
1567
|
-
let contents = $.fs.readFileSync(entryPointPath, 'utf8');
|
|
1568
|
-
let wcEl = getWcElement(contents, isChildSpec);
|
|
1569
|
-
if (wcEl) {
|
|
1570
|
-
//Now lets find the interface mapped to element
|
|
1571
|
-
//example /*@WebComponentInterface("omfx-dialog")*/
|
|
1572
|
-
let interfaceToken = `/*@WebComponentInterface("${wcEl}")*/`;
|
|
1573
|
-
let interfaceIndex = contents.indexOf(interfaceToken);
|
|
1574
|
-
if (interfaceIndex > -1) {
|
|
1575
|
-
let wcProps = [];
|
|
1576
|
-
let intf = contents.substring(interfaceIndex);
|
|
1577
|
-
let nextIsDomProp = false;
|
|
1578
|
-
intf = intf
|
|
1579
|
-
.substring(intf.indexOf("{") + 1, intf.indexOf("}"))
|
|
1580
|
-
.replace(/\?/g, '')
|
|
1581
|
-
.trim()
|
|
1582
|
-
.split(/\r\n|\r|\n/g).forEach((group) => {
|
|
1583
|
-
/*@DomProperty*/
|
|
1584
|
-
let sub = group.trim();
|
|
1585
|
-
if (sub.indexOf("/*@DomProperty*/") > -1) {
|
|
1586
|
-
nextIsDomProp = true;
|
|
1587
|
-
return;
|
|
1588
|
-
}
|
|
1589
|
-
if (nextIsDomProp) {
|
|
1590
|
-
if (sub.indexOf(':')) {
|
|
1591
|
-
sub = sub.split(':')[0];
|
|
1592
|
-
}
|
|
1593
|
-
if (sub) {
|
|
1594
|
-
if (!foundTypes[wcEl]) {
|
|
1595
|
-
foundTypes[wcEl] = [];
|
|
1596
|
-
}
|
|
1597
|
-
foundTypes[wcEl].push(sub);
|
|
1598
|
-
}
|
|
1599
|
-
nextIsDomProp = false;
|
|
1600
|
-
}
|
|
1601
|
-
});
|
|
1602
|
-
}
|
|
1603
|
-
}
|
|
1604
|
-
isChildSpec = true;
|
|
1605
|
-
});
|
|
1606
|
-
}
|
|
1607
|
-
});
|
|
1608
|
-
return foundTypes;
|
|
1609
|
-
}
|
|
1610
|
-
var lastWcElement = "";
|
|
1611
|
-
function getWcElement(contents, isChildSpec) {
|
|
1612
|
-
if (isChildSpec) {
|
|
1613
|
-
if (lastWcElement === "") {
|
|
1614
|
-
new Error("Cant find the /*@DomProperty*/ on the parent interface for the WebComponent definition");
|
|
1615
|
-
}
|
|
1616
|
-
return lastWcElement;
|
|
1617
|
-
}
|
|
1618
|
-
else {
|
|
1619
|
-
lastWcElement = "";
|
|
1620
|
-
}
|
|
1621
|
-
let wcElToken = "/*@WebComponent*/";
|
|
1622
|
-
let wcElIndex = contents.indexOf(wcElToken);
|
|
1623
|
-
let wcEl = "";
|
|
1624
|
-
if (wcElIndex > -1) {
|
|
1625
|
-
wcEl = contents.substring(wcElIndex);
|
|
1626
|
-
wcEl = wcEl.substring(wcEl.indexOf('"') + 1);
|
|
1627
|
-
wcEl = wcEl.substring(0, wcEl.indexOf('"'));
|
|
1628
|
-
lastWcElement = wcEl;
|
|
1629
|
-
}
|
|
1630
|
-
return lastWcElement;
|
|
1631
|
-
}
|
|
1632
|
-
function createVueEntryFormRegistrations(registrations) {
|
|
1347
|
+
function createVueEntryFormComponentRegistrations(registrations) {
|
|
1633
1348
|
let entryPaths = {};
|
|
1634
1349
|
for (let r of registrations) {
|
|
1635
|
-
if (r.componentOptions.entryPoint.endsWith('.
|
|
1350
|
+
if (r.componentOptions.entryPoint.endsWith('.tsx')
|
|
1351
|
+
|| r.componentOptions.entryPoint.endsWith('.vue')) {
|
|
1636
1352
|
let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(r.manifestPath, [r.componentOptions.entryPoint]);
|
|
1637
1353
|
let entryId = r.manifest.resourceId;
|
|
1638
1354
|
if (r.manifest.resourceName) {
|
|
1639
1355
|
entryId = `${r.manifest.resourceName}_${entryId}`;
|
|
1640
1356
|
}
|
|
1641
|
-
|
|
1357
|
+
r.componentOptions.entryPointPath = entryPointPath[0];
|
|
1358
|
+
entryPaths[entryId.toString()] = entryPointPath;
|
|
1642
1359
|
}
|
|
1643
1360
|
else {
|
|
1644
1361
|
$.tooling.log('The OmniaFx build system only supports .jsx, .vue and .tsx based components at the moment ', $.tooling.LogTypes.Error);
|
|
@@ -1958,35 +1675,3 @@ function sortString(a, b) {
|
|
|
1958
1675
|
}
|
|
1959
1676
|
return -1;
|
|
1960
1677
|
}
|
|
1961
|
-
function generateWebComponentTypings(wc, template, info) {
|
|
1962
|
-
// export default defineVueWebComponent
|
|
1963
|
-
let wcPath = (0, shared_1.convertManifestPathToEntryPath)(wc.manifestPath, [wc.componentOptions.entryPoint])[0];
|
|
1964
|
-
let content = fsExtra.readFileSync(wcPath, 'utf8');
|
|
1965
|
-
if (content.indexOf("defineVueWebComponent") > -1) {
|
|
1966
|
-
if (!new RegExp('export\\s+default\\s+').test(content)) {
|
|
1967
|
-
throw new Error(`Missing statement 'export default a vue web component' in ${wcPath}`);
|
|
1968
|
-
}
|
|
1969
|
-
let friendlyManifestId = `wc${wc.manifest.resourceId.toString().replace(/-/g, '').toLowerCase()}`;
|
|
1970
|
-
let importPath = wcPath.substring(0, wcPath.lastIndexOf('.tsx'));
|
|
1971
|
-
if (importPath.indexOf("./") === 0) {
|
|
1972
|
-
importPath = importPath.replace("./", "");
|
|
1973
|
-
}
|
|
1974
|
-
if ($.isExtensionEnv) {
|
|
1975
|
-
importPath = `../../../../${importPath}`;
|
|
1976
|
-
}
|
|
1977
|
-
else {
|
|
1978
|
-
importPath = `../../../../${importPath}`;
|
|
1979
|
-
}
|
|
1980
|
-
let elementNamePascalCase = wc.componentOptions.elementName.replace("omfx-", "").replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });
|
|
1981
|
-
elementNamePascalCase = elementNamePascalCase[0].toUpperCase() + elementNamePascalCase.substring(1, elementNamePascalCase.length);
|
|
1982
|
-
info.wc.mappings[elementNamePascalCase] = wc.componentOptions.elementName;
|
|
1983
|
-
return template
|
|
1984
|
-
.replace(/\/\/{{importWC}}/, `import ${friendlyManifestId} from '${importPath}';
|
|
1985
|
-
//{{importWC}}`)
|
|
1986
|
-
.replace(/\/\/{{elementName}}/, `"${wc.componentOptions.elementName}": typeof ${friendlyManifestId}.propsDefinition & VueComponentBaseProps
|
|
1987
|
-
//{{elementName}}`)
|
|
1988
|
-
.replace(/\/\/{{nselementName}}/, `"${elementNamePascalCase}": { new(...args: any[]): { $props: typeof ${friendlyManifestId}.propsDefinition & VueComponentBaseProps } }
|
|
1989
|
-
//{{nselementName}}`);
|
|
1990
|
-
}
|
|
1991
|
-
return template;
|
|
1992
|
-
}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { ComponentRegistration } from "@omnia/tooling-composers";
|
|
2
|
+
export declare function generateComponentTypingsAndDoc(componentRegistrations: ComponentRegistration[]): Promise<void>;
|
|
3
|
+
export declare function importSnippetCode(content: string, filePath: string): string;
|