@knapsack/renderer-react 4.69.9--canary.4745.99a87d9.0 → 4.69.9--canary.4739.3a8c6f1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +0 -12
- package/dist/demo-wrapper.d.mts +0 -1
- package/dist/demo-wrapper.d.ts +0 -1
- package/dist/error-catcher.js.map +1 -1
- package/dist/error-catcher.mjs.map +1 -1
- package/dist/index.d.mts +25 -18
- package/dist/index.d.ts +25 -18
- package/dist/index.js +43 -49
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -57
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
package/dist/index.mjs
CHANGED
@@ -16,23 +16,21 @@ var __dirname = /* @__PURE__ */ getDirname();
|
|
16
16
|
|
17
17
|
// src/renderer-react.ts
|
18
18
|
import sleep from "sleep-promise";
|
19
|
-
import {
|
19
|
+
import { KnapsackRendererWebpackBase } from "@knapsack/renderer-webpack-base";
|
20
20
|
import { pascalCase, isFirstLetterCapital } from "@knapsack/utils";
|
21
|
-
import { knapsackEvents, log as log2 } from "@knapsack/app";
|
22
|
-
import {
|
23
|
-
babelCodeForBrowser,
|
24
|
-
createSlotOptionsHtmlTags
|
25
|
-
} from "@knapsack/app/renderers";
|
21
|
+
import { knapsackEvents, log as log2, KnapsackRendererBase } from "@knapsack/app";
|
26
22
|
import {
|
23
|
+
isSlottedText,
|
24
|
+
isSlottedTemplateReference,
|
25
|
+
isSlottedTemplateDemo,
|
27
26
|
rendererIds
|
28
27
|
} from "@knapsack/types";
|
29
28
|
import {
|
30
|
-
exists
|
29
|
+
exists,
|
31
30
|
findUpPkgJson,
|
32
31
|
getJsExportNames as getJsExportNames2,
|
33
32
|
readFile as readFile2,
|
34
|
-
formatCode as formatCode2
|
35
|
-
resolvePath as resolvePath2
|
33
|
+
formatCode as formatCode2
|
36
34
|
} from "@knapsack/file-utils";
|
37
35
|
import { join, relative, parse } from "path";
|
38
36
|
|
@@ -726,7 +724,8 @@ var createReactPattern = createCreator({
|
|
726
724
|
// src/renderer-react.ts
|
727
725
|
var { pkg } = findUpPkgJson(__dirname);
|
728
726
|
log2.setupUpdateNotifier({ ...pkg, name: pkg.name, version: pkg.version });
|
729
|
-
var
|
727
|
+
var { createSlotOptionsHtmlTags } = KnapsackRendererBase;
|
728
|
+
var KnapsackReactRenderer = class _KnapsackReactRenderer extends KnapsackRendererWebpackBase {
|
730
729
|
static {
|
731
730
|
__name(this, "KnapsackReactRenderer");
|
732
731
|
}
|
@@ -735,6 +734,7 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends RendererWebpack
|
|
735
734
|
*/
|
736
735
|
assets;
|
737
736
|
babelConfig;
|
737
|
+
creators;
|
738
738
|
demoWrapperPath;
|
739
739
|
disableReactStrictMode;
|
740
740
|
constructor({
|
@@ -755,15 +755,15 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends RendererWebpack
|
|
755
755
|
this.disableReactStrictMode = disableReactStrictMode;
|
756
756
|
this.creators = [createReactPattern];
|
757
757
|
}
|
758
|
-
|
758
|
+
async init(opt) {
|
759
759
|
await super.init(opt);
|
760
760
|
this.assets = await copyReactAssets(this.outputDir, this.publicPath);
|
761
|
-
if (!await
|
761
|
+
if (!await exists(this.demoWrapperPath)) {
|
762
762
|
throw new Error(
|
763
763
|
`Could not find demo wrapper at: "${this.demoWrapperPath}"`
|
764
764
|
);
|
765
765
|
}
|
766
|
-
}
|
766
|
+
}
|
767
767
|
getMeta = /* @__PURE__ */ __name(() => ({
|
768
768
|
id: this.id,
|
769
769
|
title: "React",
|
@@ -793,16 +793,18 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends RendererWebpack
|
|
793
793
|
}
|
794
794
|
}
|
795
795
|
}), "getMeta");
|
796
|
-
changeCase
|
797
|
-
|
796
|
+
changeCase(str) {
|
797
|
+
return pascalCase(str);
|
798
|
+
}
|
799
|
+
createWebpackConfig() {
|
798
800
|
const config = super.createWebpackConfig();
|
799
801
|
config.externals = {
|
800
802
|
react: "React",
|
801
803
|
"react-dom": "ReactDOM"
|
802
804
|
};
|
803
805
|
return config;
|
804
|
-
}
|
805
|
-
getJsImports
|
806
|
+
}
|
807
|
+
getJsImports() {
|
806
808
|
const imports = super.getJsImports();
|
807
809
|
imports.push(
|
808
810
|
{
|
@@ -823,7 +825,7 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends RendererWebpack
|
|
823
825
|
}
|
824
826
|
);
|
825
827
|
return imports;
|
826
|
-
}
|
828
|
+
}
|
827
829
|
async prepClientRenderResults({
|
828
830
|
usage,
|
829
831
|
demoApp,
|
@@ -948,7 +950,7 @@ ${renderReact.name}({
|
|
948
950
|
let codeHadError = false;
|
949
951
|
let errorHtmlMsg = "";
|
950
952
|
try {
|
951
|
-
code = await babelCodeForBrowser({
|
953
|
+
code = await this.babelCodeForBrowser({
|
952
954
|
code
|
953
955
|
});
|
954
956
|
} catch (e) {
|
@@ -1000,24 +1002,18 @@ ${errorHtmlMsg}
|
|
1000
1002
|
templateLanguage: this.language
|
1001
1003
|
};
|
1002
1004
|
}
|
1003
|
-
|
1004
|
-
if (opt.demo
|
1005
|
+
async render(opt) {
|
1006
|
+
if (_KnapsackReactRenderer.isTemplateDemo(opt.demo)) {
|
1005
1007
|
const waits = [5, 10, 20, 50, 100, 1e3, 1e3];
|
1006
1008
|
let templateDemoPath;
|
1007
1009
|
let attempt = 0;
|
1008
1010
|
while (true) {
|
1009
1011
|
try {
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1012
|
+
templateDemoPath = opt.patternManifest.getTemplateDemoAbsolutePath({
|
1013
|
+
patternId: opt.pattern.id,
|
1014
|
+
templateId: opt.template.id,
|
1015
|
+
demoId: opt.demo.id
|
1014
1016
|
});
|
1015
|
-
if (!exists) {
|
1016
|
-
throw new Error(
|
1017
|
-
`Template demo file does not exist: ${absolutePath}`
|
1018
|
-
);
|
1019
|
-
}
|
1020
|
-
templateDemoPath = absolutePath;
|
1021
1017
|
break;
|
1022
1018
|
} catch (e) {
|
1023
1019
|
const waitTime = waits[attempt];
|
@@ -1043,7 +1039,7 @@ ${errorHtmlMsg}
|
|
1043
1039
|
});
|
1044
1040
|
return results;
|
1045
1041
|
}
|
1046
|
-
if (opt.demo
|
1042
|
+
if (_KnapsackReactRenderer.isDataDemo(opt.demo)) {
|
1047
1043
|
const { usage, imports } = await this.getUsageAndImports(opt);
|
1048
1044
|
const { code: importCode } = this.createJsImportCodeBlock({
|
1049
1045
|
imports
|
@@ -1064,14 +1060,10 @@ ${errorHtmlMsg}
|
|
1064
1060
|
renderOptions: opt
|
1065
1061
|
});
|
1066
1062
|
}
|
1067
|
-
}
|
1068
|
-
getUsageAndImports
|
1069
|
-
pattern,
|
1070
|
-
|
1071
|
-
patternManifest,
|
1072
|
-
demo
|
1073
|
-
}) => {
|
1074
|
-
if (demo?.type && demo.type === "data") {
|
1063
|
+
}
|
1064
|
+
async getUsageAndImports(opt) {
|
1065
|
+
const { pattern, template, patternManifest, demo } = opt;
|
1066
|
+
if (demo?.type && _KnapsackReactRenderer.isDataDemo(demo)) {
|
1075
1067
|
const {
|
1076
1068
|
data: { props, slots, slotsOptionsComputed }
|
1077
1069
|
} = demo;
|
@@ -1095,16 +1087,16 @@ ${errorHtmlMsg}
|
|
1095
1087
|
const slotItems = slots[slotName];
|
1096
1088
|
const slotItemsUsages = await Promise.all(
|
1097
1089
|
slotItems.filter((slotItem) => {
|
1098
|
-
if (slotItem
|
1090
|
+
if (!isSlottedText(slotItem)) {
|
1099
1091
|
if (!slotItem.patternId) return false;
|
1100
1092
|
if (!slotItem.templateId) return false;
|
1101
|
-
if (slotItem
|
1093
|
+
if (isSlottedTemplateDemo(slotItem) && !slotItem.demoId) {
|
1102
1094
|
return false;
|
1103
1095
|
}
|
1104
1096
|
}
|
1105
1097
|
return true;
|
1106
1098
|
}).map(async (slotItem) => {
|
1107
|
-
if (slotItem
|
1099
|
+
if (isSlottedText(slotItem)) {
|
1108
1100
|
if (slotItems.length === 1 && slotName !== "children") {
|
1109
1101
|
return `\`${slotItem.text}\``;
|
1110
1102
|
}
|
@@ -1116,7 +1108,7 @@ ${errorHtmlMsg}
|
|
1116
1108
|
const slotTemplate = slotPattern.templates.find(
|
1117
1109
|
(t) => t.id === slotItem.templateId
|
1118
1110
|
);
|
1119
|
-
if (slotItem
|
1111
|
+
if (isSlottedTemplateReference(slotItem)) {
|
1120
1112
|
const { usage: usage2, imports } = await this.getUsageAndImports({
|
1121
1113
|
pattern: slotPattern,
|
1122
1114
|
template: slotTemplate,
|
@@ -1125,7 +1117,7 @@ ${errorHtmlMsg}
|
|
1125
1117
|
importInfos.push(...imports);
|
1126
1118
|
return usage2;
|
1127
1119
|
}
|
1128
|
-
if (slotItem
|
1120
|
+
if (isSlottedTemplateDemo(slotItem)) {
|
1129
1121
|
const { usage: usage2, imports } = await this.getUsageAndImports({
|
1130
1122
|
pattern: slotPattern,
|
1131
1123
|
template: slotTemplate,
|
@@ -1196,7 +1188,7 @@ ${errorHtmlMsg}
|
|
1196
1188
|
imports: importInfos
|
1197
1189
|
};
|
1198
1190
|
}
|
1199
|
-
if (demo?.type && demo
|
1191
|
+
if (demo?.type && _KnapsackReactRenderer.isTemplateDemo(demo)) {
|
1200
1192
|
const importInfo = this.getJsImport({
|
1201
1193
|
patternId: pattern.id,
|
1202
1194
|
templateId: template.id,
|
@@ -1240,7 +1232,11 @@ ${errorHtmlMsg}
|
|
1240
1232
|
demo
|
1241
1233
|
)}`
|
1242
1234
|
);
|
1243
|
-
}
|
1235
|
+
}
|
1236
|
+
async getUsage(opt) {
|
1237
|
+
const { usage } = await this.getUsageAndImports(opt);
|
1238
|
+
return usage;
|
1239
|
+
}
|
1244
1240
|
inferSpec = /* @__PURE__ */ __name(async ({
|
1245
1241
|
template,
|
1246
1242
|
templatePath
|
@@ -1259,12 +1255,12 @@ ${errorHtmlMsg}
|
|
1259
1255
|
}
|
1260
1256
|
return spec;
|
1261
1257
|
}, "inferSpec");
|
1262
|
-
|
1263
|
-
super.watch(opt);
|
1258
|
+
async watch(opt) {
|
1259
|
+
await super.watch(opt);
|
1264
1260
|
knapsackEvents.onPatternTemplateChanged(() => {
|
1265
1261
|
clearInferSpecCache();
|
1266
1262
|
});
|
1267
|
-
}
|
1263
|
+
}
|
1268
1264
|
getTemplateMeta = /* @__PURE__ */ __name(async ({
|
1269
1265
|
pattern,
|
1270
1266
|
template
|
@@ -1307,10 +1303,7 @@ ${errorHtmlMsg}
|
|
1307
1303
|
}
|
1308
1304
|
return files;
|
1309
1305
|
}, "getTemplateMeta");
|
1310
|
-
alterTemplateMetaFiles = /* @__PURE__ */ __name(async ({
|
1311
|
-
files,
|
1312
|
-
metaDir
|
1313
|
-
}) => {
|
1306
|
+
alterTemplateMetaFiles = /* @__PURE__ */ __name(async ({ files, metaDir }) => {
|
1314
1307
|
const imports = [];
|
1315
1308
|
const ext = ".spec.d.ts";
|
1316
1309
|
files.forEach((file) => {
|
@@ -1337,9 +1330,9 @@ ${errorHtmlMsg}
|
|
1337
1330
|
}
|
1338
1331
|
];
|
1339
1332
|
}, "alterTemplateMetaFiles");
|
1340
|
-
|
1333
|
+
async getTemplateSuggestions({
|
1341
1334
|
newPath
|
1342
|
-
})
|
1335
|
+
}) {
|
1343
1336
|
const { data: dataDir } = this.patterns.userConfig;
|
1344
1337
|
const { allTemplateDemos, allTemplates } = this.getMyTemplates();
|
1345
1338
|
const usedSuggestions = [
|
@@ -1390,7 +1383,7 @@ ${errorHtmlMsg}
|
|
1390
1383
|
return {
|
1391
1384
|
suggestions
|
1392
1385
|
};
|
1393
|
-
}
|
1386
|
+
}
|
1394
1387
|
};
|
1395
1388
|
export {
|
1396
1389
|
KnapsackReactRenderer
|