@sitecore-content-sdk/nextjs 1.3.0-canary.9 → 1.4.0-canary.2
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/README.md +11 -11
- package/dist/cjs/client/index.js +10 -10
- package/dist/cjs/client/models.js +2 -2
- package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
- package/dist/cjs/components/BYOCWrapper.js +31 -30
- package/dist/cjs/components/ComponentPropsContext.js +66 -59
- package/dist/cjs/components/FEaaSWrapper.js +33 -32
- package/dist/cjs/components/Link.js +117 -90
- package/dist/cjs/components/NextImage.js +66 -62
- package/dist/cjs/components/Placeholder.js +55 -50
- package/dist/cjs/components/RichText.js +133 -128
- package/dist/cjs/config/define-config.js +26 -25
- package/dist/cjs/config/index.js +5 -5
- package/dist/cjs/config-cli/define-cli-config.js +40 -39
- package/dist/cjs/config-cli/index.js +5 -5
- package/dist/cjs/editing/codegen/import-map.js +129 -118
- package/dist/cjs/editing/codegen/index.js +6 -6
- package/dist/cjs/editing/constants.js +10 -10
- package/dist/cjs/editing/editing-config-middleware.js +70 -69
- package/dist/cjs/editing/editing-render-middleware.js +145 -144
- package/dist/cjs/editing/feaas-render-middleware.js +102 -101
- package/dist/cjs/editing/index.js +19 -19
- package/dist/cjs/editing/render-middleware.js +46 -46
- package/dist/cjs/editing/utils.js +260 -257
- package/dist/cjs/index.js +132 -131
- package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
- package/dist/cjs/middleware/index.js +30 -30
- package/dist/cjs/middleware/locale-middleware.js +85 -84
- package/dist/cjs/middleware/middleware.js +195 -192
- package/dist/cjs/middleware/multisite-middleware.js +141 -118
- package/dist/cjs/middleware/personalize-middleware.js +240 -236
- package/dist/cjs/middleware/redirects-middleware.js +323 -297
- package/dist/cjs/middleware/robots-middleware.js +45 -44
- package/dist/cjs/middleware/sitemap-middleware.js +50 -49
- package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
- package/dist/cjs/monitoring/index.js +5 -5
- package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
- package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
- package/dist/cjs/route-handler/index.js +11 -11
- package/dist/cjs/route-handler/robots-route-handler.js +69 -68
- package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
- package/dist/cjs/search/index.js +17 -0
- package/dist/cjs/services/component-props-service.js +142 -138
- package/dist/cjs/sharedTypes/component-props.js +2 -2
- package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
- package/dist/cjs/site/index.js +5 -5
- package/dist/cjs/tools/codegen/import-map.js +15 -0
- package/dist/cjs/tools/component-props.loader.js +95 -95
- package/dist/cjs/tools/generate-map.js +317 -317
- package/dist/cjs/tools/index.js +14 -13
- package/dist/cjs/tools/templating/byoc-component.js +36 -36
- package/dist/cjs/tools/templating/constants.js +7 -7
- package/dist/cjs/tools/templating/default-component.js +35 -35
- package/dist/cjs/tools/templating/utils.js +200 -0
- package/dist/cjs/utils/index.js +14 -14
- package/dist/cjs/utils/utils.js +82 -73
- package/dist/esm/client/index.js +2 -2
- package/dist/esm/client/models.js +1 -1
- package/dist/esm/client/sitecore-nextjs-client.js +156 -152
- package/dist/esm/components/BYOCWrapper.js +27 -26
- package/dist/esm/components/ComponentPropsContext.js +28 -21
- package/dist/esm/components/FEaaSWrapper.js +29 -28
- package/dist/esm/components/Link.js +78 -51
- package/dist/esm/components/NextImage.js +60 -56
- package/dist/esm/components/Placeholder.js +18 -13
- package/dist/esm/components/RichText.js +96 -91
- package/dist/esm/config/define-config.js +21 -20
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/config-cli/define-cli-config.js +36 -35
- package/dist/esm/config-cli/index.js +1 -1
- package/dist/esm/editing/codegen/import-map.js +92 -81
- package/dist/esm/editing/codegen/index.js +1 -1
- package/dist/esm/editing/constants.js +7 -7
- package/dist/esm/editing/editing-config-middleware.js +66 -65
- package/dist/esm/editing/editing-render-middleware.js +141 -140
- package/dist/esm/editing/feaas-render-middleware.js +98 -97
- package/dist/esm/editing/index.js +6 -6
- package/dist/esm/editing/render-middleware.js +42 -42
- package/dist/esm/editing/utils.js +246 -243
- package/dist/esm/index.js +25 -25
- package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
- package/dist/esm/middleware/index.js +11 -11
- package/dist/esm/middleware/locale-middleware.js +81 -80
- package/dist/esm/middleware/middleware.js +189 -186
- package/dist/esm/middleware/multisite-middleware.js +137 -114
- package/dist/esm/middleware/personalize-middleware.js +236 -232
- package/dist/esm/middleware/redirects-middleware.js +316 -290
- package/dist/esm/middleware/robots-middleware.js +41 -40
- package/dist/esm/middleware/sitemap-middleware.js +46 -45
- package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
- package/dist/esm/monitoring/index.js +1 -1
- package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
- package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
- package/dist/esm/route-handler/index.js +4 -4
- package/dist/esm/route-handler/robots-route-handler.js +65 -64
- package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
- package/dist/esm/search/index.js +1 -0
- package/dist/esm/services/component-props-service.js +135 -131
- package/dist/esm/sharedTypes/component-props.js +1 -1
- package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
- package/dist/esm/site/index.js +1 -1
- package/dist/esm/tools/codegen/import-map.js +11 -0
- package/dist/esm/tools/component-props.loader.js +59 -59
- package/dist/esm/tools/generate-map.js +279 -279
- package/dist/esm/tools/index.js +3 -2
- package/dist/esm/tools/templating/byoc-component.js +30 -30
- package/dist/esm/tools/templating/constants.js +4 -4
- package/dist/esm/tools/templating/default-component.js +29 -29
- package/dist/esm/tools/templating/utils.js +190 -0
- package/dist/esm/utils/index.js +3 -3
- package/dist/esm/utils/utils.js +74 -65
- package/package.json +87 -13
- package/search.d.ts +1 -0
- package/types/client/index.d.ts +3 -2
- package/types/client/index.d.ts.map +1 -0
- package/types/client/models.d.ts +9 -8
- package/types/client/models.d.ts.map +1 -0
- package/types/client/sitecore-nextjs-client.d.ts +68 -63
- package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
- package/types/components/BYOCWrapper.d.ts +16 -14
- package/types/components/BYOCWrapper.d.ts.map +1 -0
- package/types/components/ComponentPropsContext.d.ts +30 -18
- package/types/components/ComponentPropsContext.d.ts.map +1 -0
- package/types/components/FEaaSWrapper.d.ts +17 -15
- package/types/components/FEaaSWrapper.d.ts.map +1 -0
- package/types/components/Link.d.ts +25 -15
- package/types/components/Link.d.ts.map +1 -0
- package/types/components/NextImage.d.ts +11 -6
- package/types/components/NextImage.d.ts.map +1 -0
- package/types/components/Placeholder.d.ts +14 -8
- package/types/components/Placeholder.d.ts.map +1 -0
- package/types/components/RichText.d.ts +35 -25
- package/types/components/RichText.d.ts.map +1 -0
- package/types/config/define-config.d.ts +42 -38
- package/types/config/define-config.d.ts.map +1 -0
- package/types/config/index.d.ts +2 -1
- package/types/config/index.d.ts.map +1 -0
- package/types/config-cli/define-cli-config.d.ts +10 -8
- package/types/config-cli/define-cli-config.d.ts.map +1 -0
- package/types/config-cli/index.d.ts +2 -1
- package/types/config-cli/index.d.ts.map +1 -0
- package/types/editing/codegen/import-map.d.ts +15 -3
- package/types/editing/codegen/import-map.d.ts.map +1 -0
- package/types/editing/codegen/index.d.ts +3 -2
- package/types/editing/codegen/index.d.ts.map +1 -0
- package/types/editing/constants.d.ts +8 -7
- package/types/editing/constants.d.ts.map +1 -0
- package/types/editing/editing-config-middleware.d.ts +37 -31
- package/types/editing/editing-config-middleware.d.ts.map +1 -0
- package/types/editing/editing-render-middleware.d.ts +47 -44
- package/types/editing/editing-render-middleware.d.ts.map +1 -0
- package/types/editing/feaas-render-middleware.d.ts +35 -32
- package/types/editing/feaas-render-middleware.d.ts.map +1 -0
- package/types/editing/index.d.ts +7 -6
- package/types/editing/index.d.ts.map +1 -0
- package/types/editing/render-middleware.d.ts +26 -25
- package/types/editing/render-middleware.d.ts.map +1 -0
- package/types/editing/utils.d.ts +110 -106
- package/types/editing/utils.d.ts.map +1 -0
- package/types/index.d.ts +25 -24
- package/types/index.d.ts.map +1 -0
- package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
- package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
- package/types/middleware/index.d.ts +12 -11
- package/types/middleware/index.d.ts.map +1 -0
- package/types/middleware/locale-middleware.d.ts +35 -32
- package/types/middleware/locale-middleware.d.ts.map +1 -0
- package/types/middleware/middleware.d.ts +135 -127
- package/types/middleware/middleware.d.ts.map +1 -0
- package/types/middleware/multisite-middleware.d.ts +54 -37
- package/types/middleware/multisite-middleware.d.ts.map +1 -0
- package/types/middleware/personalize-middleware.d.ts +81 -65
- package/types/middleware/personalize-middleware.d.ts.map +1 -0
- package/types/middleware/redirects-middleware.d.ts +68 -65
- package/types/middleware/redirects-middleware.d.ts.map +1 -0
- package/types/middleware/robots-middleware.d.ts +15 -13
- package/types/middleware/robots-middleware.d.ts.map +1 -0
- package/types/middleware/sitemap-middleware.d.ts +16 -14
- package/types/middleware/sitemap-middleware.d.ts.map +1 -0
- package/types/monitoring/healthcheck-middleware.d.ts +14 -12
- package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
- package/types/monitoring/index.d.ts +2 -1
- package/types/monitoring/index.d.ts.map +1 -0
- package/types/route-handler/editing-config-route-handler.d.ts +30 -24
- package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
- package/types/route-handler/editing-render-route-handler.d.ts +33 -25
- package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
- package/types/route-handler/index.d.ts +5 -4
- package/types/route-handler/index.d.ts.map +1 -0
- package/types/route-handler/robots-route-handler.d.ts +30 -28
- package/types/route-handler/robots-route-handler.d.ts.map +1 -0
- package/types/route-handler/sitemap-route-handler.d.ts +30 -28
- package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
- package/types/search/index.d.ts +2 -0
- package/types/search/index.d.ts.map +1 -0
- package/types/services/component-props-service.d.ts +62 -57
- package/types/services/component-props-service.d.ts.map +1 -0
- package/types/sharedTypes/component-props.d.ts +62 -47
- package/types/sharedTypes/component-props.d.ts.map +1 -0
- package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
- package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
- package/types/site/index.d.ts +2 -1
- package/types/site/index.d.ts.map +1 -0
- package/types/tools/codegen/import-map.d.ts +10 -0
- package/types/tools/codegen/import-map.d.ts.map +1 -0
- package/types/tools/component-props.loader.d.ts +8 -7
- package/types/tools/component-props.loader.d.ts.map +1 -0
- package/types/tools/generate-map.d.ts +26 -24
- package/types/tools/generate-map.d.ts.map +1 -0
- package/types/tools/index.d.ts +4 -2
- package/types/tools/index.d.ts.map +1 -0
- package/types/tools/templating/byoc-component.d.ts +3 -2
- package/types/tools/templating/byoc-component.d.ts.map +1 -0
- package/types/tools/templating/constants.d.ts +5 -4
- package/types/tools/templating/constants.d.ts.map +1 -0
- package/types/tools/templating/default-component.d.ts +3 -2
- package/types/tools/templating/default-component.d.ts.map +1 -0
- package/types/tools/templating/utils.d.ts +44 -0
- package/types/tools/templating/utils.d.ts.map +1 -0
- package/types/utils/index.d.ts +4 -3
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/utils.d.ts +34 -24
- package/types/utils/utils.d.ts.map +1 -0
- package/client.js +0 -1
- package/codegen.js +0 -1
- package/config-cli.js +0 -1
- package/config.js +0 -1
- package/editing.js +0 -1
- package/middleware.js +0 -1
- package/monitoring.js +0 -1
- package/route-handler.js +0 -1
- package/site.js +0 -1
- package/tools.js +0 -1
- package/utils.js +0 -1
|
@@ -1,333 +1,333 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.generateMap = exports.defaultClientMapTemplate = void 0;
|
|
37
|
-
const tools_1 = require("@sitecore-content-sdk/core/tools");
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
const builtInImports = options.builtInImports ||
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateMap = exports.defaultClientMapTemplate = void 0;
|
|
37
|
+
const tools_1 = require("@sitecore-content-sdk/core/tools");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const utils_1 = require("./templating/utils");
|
|
41
|
+
// Common builder for Next.js component map content
|
|
42
|
+
const prepareComponentsForMap = (components, opts) => {
|
|
43
|
+
const groups = new Map();
|
|
44
|
+
const getPrefix = (name) => {
|
|
45
|
+
const index = name.indexOf('.');
|
|
46
|
+
return index === -1 ? name : name.slice(0, index);
|
|
47
|
+
};
|
|
48
|
+
for (const file of components) {
|
|
49
|
+
const dir = path.dirname(file.filePath).replace(/\\/g, '/');
|
|
50
|
+
const prefix = getPrefix(file.componentName);
|
|
51
|
+
const key = `${dir}::${prefix}`;
|
|
52
|
+
let group = groups.get(key);
|
|
53
|
+
if (!group) {
|
|
54
|
+
group = { dir, prefix, neighbors: [] };
|
|
55
|
+
groups.set(key, group);
|
|
56
|
+
}
|
|
57
|
+
if (file.componentName === prefix)
|
|
58
|
+
group.base = file;
|
|
59
|
+
else
|
|
60
|
+
group.neighbors.push(file);
|
|
61
|
+
}
|
|
62
|
+
const entries = [];
|
|
63
|
+
for (const group of groups.values()) {
|
|
64
|
+
const imports = [];
|
|
65
|
+
if (opts.includeVariants) {
|
|
66
|
+
const spreads = [];
|
|
67
|
+
for (const neighbor of group.neighbors) {
|
|
68
|
+
imports.push(`import * as ${neighbor.moduleName} from '${neighbor.importPath}';`);
|
|
69
|
+
spreads.push(`...${neighbor.moduleName}`);
|
|
70
|
+
}
|
|
71
|
+
if (group.base) {
|
|
72
|
+
imports.push(`import * as ${group.base.moduleName} from '${group.base.importPath}';`);
|
|
73
|
+
spreads.push(`...${group.base.moduleName}`);
|
|
74
|
+
}
|
|
75
|
+
const annotateClient = !!group.base && 'componentType' in group.base && group.base.componentType === 'client';
|
|
76
|
+
let valueExpr;
|
|
77
|
+
if (spreads.length) {
|
|
78
|
+
valueExpr = spreads.join(', ');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
valueExpr = group.base ? group.base.moduleName : group.neighbors[0].moduleName;
|
|
82
|
+
}
|
|
83
|
+
entries.push({
|
|
84
|
+
key: group.prefix,
|
|
85
|
+
imports,
|
|
86
|
+
valueExpr,
|
|
87
|
+
annotateClient,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// Variants disabled: single entry per group
|
|
92
|
+
if (group.base) {
|
|
93
|
+
imports.push(`import * as ${group.base.moduleName} from '${group.base.importPath}';`);
|
|
94
|
+
const annotateClient = 'componentType' in group.base && group.base.componentType === 'client';
|
|
95
|
+
entries.push({
|
|
96
|
+
key: group.prefix,
|
|
97
|
+
imports,
|
|
98
|
+
valueExpr: group.base.moduleName,
|
|
99
|
+
annotateClient,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else if (group.neighbors.length) {
|
|
103
|
+
const first = group.neighbors[0];
|
|
104
|
+
imports.push(`import * as ${first.moduleName} from '${first.importPath}';`);
|
|
105
|
+
entries.push({
|
|
106
|
+
key: group.prefix,
|
|
107
|
+
imports,
|
|
108
|
+
valueExpr: first.moduleName,
|
|
109
|
+
annotateClient: false,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return entries;
|
|
115
|
+
};
|
|
116
|
+
const buildNextjsMapContent = (entries, componentImports, options = {}) => {
|
|
117
|
+
const { headerComment = "Below are built-in components that are available in the app, it's recommended to keep them as is", isClientMap = false, } = options;
|
|
118
|
+
const wildcardImports = [];
|
|
119
|
+
const namedImports = [];
|
|
120
|
+
const builtInImports = options.builtInImports ||
|
|
122
121
|
`
|
|
123
122
|
import { BYOCWrapper, NextjsContentSdkComponent, FEaaSWrapper } from '@sitecore-content-sdk/nextjs';
|
|
124
123
|
import { Form } from '@sitecore-content-sdk/nextjs';
|
|
125
|
-
`;
|
|
126
|
-
const builtInMapEntries = options.builtInMapEntries || [
|
|
127
|
-
`['BYOCWrapper', BYOCWrapper]`,
|
|
128
|
-
`['FEaaSWrapper', FEaaSWrapper]`,
|
|
129
|
-
`['Form', Form]`,
|
|
130
|
-
];
|
|
131
|
-
// Add per-entry imports
|
|
132
|
-
entries.forEach((e) => wildcardImports.push(...e.imports));
|
|
133
|
-
// Handle package imports
|
|
134
|
-
componentImports === null || componentImports === void 0 ? void 0 : componentImports.forEach((pkg) => {
|
|
135
|
-
if (pkg.importInfo.namedImports) {
|
|
136
|
-
namedImports.push(`import { ${pkg.importInfo.namedImports.join(', ')} } from '${pkg.importInfo.importFrom}';`);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
wildcardImports.push(`import * as ${pkg.importName} from '${pkg.importInfo.importFrom}';`);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const importLines = [
|
|
143
|
-
headerComment.includes('built-in') ? '// end of built-in components' : null,
|
|
144
|
-
...wildcardImports,
|
|
145
|
-
...namedImports,
|
|
146
|
-
].filter(Boolean);
|
|
147
|
-
const importsSection = importLines.length ? `\n${importLines.join('\n')}` : '';
|
|
148
|
-
// Build entry lines (package named imports are appended below)
|
|
149
|
-
const componentMapEntries = builtInMapEntries;
|
|
150
|
-
for (const e of entries) {
|
|
151
|
-
const value = !isClientMap && e.annotateClient
|
|
152
|
-
? `{ ${e.valueExpr}, componentType: 'client' }`
|
|
153
|
-
: e.valueExpr.includes('...')
|
|
154
|
-
? `{ ${e.valueExpr} }`
|
|
155
|
-
: e.valueExpr;
|
|
156
|
-
componentMapEntries.push(`['${e.key}', ${value}]`);
|
|
157
|
-
}
|
|
158
|
-
// Add package-based entries
|
|
159
|
-
componentImports === null || componentImports === void 0 ? void 0 : componentImports.forEach((pkg) => {
|
|
160
|
-
if (pkg.importInfo.namedImports) {
|
|
161
|
-
pkg.importInfo.namedImports.forEach((name) => {
|
|
162
|
-
componentMapEntries.push(`['${name}', ${name}]`);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
componentMapEntries.push(`['${pkg.importName}', ${pkg.importName}]`);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
124
|
+
`;
|
|
125
|
+
const builtInMapEntries = options.builtInMapEntries || [
|
|
126
|
+
`['BYOCWrapper', BYOCWrapper]`,
|
|
127
|
+
`['FEaaSWrapper', FEaaSWrapper]`,
|
|
128
|
+
`['Form', Form]`,
|
|
129
|
+
];
|
|
130
|
+
// Add per-entry imports
|
|
131
|
+
entries.forEach((e) => wildcardImports.push(...e.imports));
|
|
132
|
+
// Handle package imports
|
|
133
|
+
componentImports === null || componentImports === void 0 ? void 0 : componentImports.forEach((pkg) => {
|
|
134
|
+
if (pkg.importInfo.namedImports) {
|
|
135
|
+
namedImports.push(`import { ${pkg.importInfo.namedImports.join(', ')} } from '${pkg.importInfo.importFrom}';`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
wildcardImports.push(`import * as ${pkg.importName} from '${pkg.importInfo.importFrom}';`);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
const importLines = [
|
|
142
|
+
headerComment.includes('built-in') ? '// end of built-in components' : null,
|
|
143
|
+
...wildcardImports,
|
|
144
|
+
...namedImports,
|
|
145
|
+
].filter(Boolean);
|
|
146
|
+
const importsSection = importLines.length ? `\n${importLines.join('\n')}` : '';
|
|
147
|
+
// Build entry lines (package named imports are appended below)
|
|
148
|
+
const componentMapEntries = builtInMapEntries;
|
|
149
|
+
for (const e of entries) {
|
|
150
|
+
const value = !isClientMap && e.annotateClient
|
|
151
|
+
? `{ ${e.valueExpr}, componentType: 'client' }`
|
|
152
|
+
: e.valueExpr.includes('...')
|
|
153
|
+
? `{ ${e.valueExpr} }`
|
|
154
|
+
: e.valueExpr;
|
|
155
|
+
componentMapEntries.push(`['${e.key}', ${value}]`);
|
|
156
|
+
}
|
|
157
|
+
// Add package-based entries
|
|
158
|
+
componentImports === null || componentImports === void 0 ? void 0 : componentImports.forEach((pkg) => {
|
|
159
|
+
if (pkg.importInfo.namedImports) {
|
|
160
|
+
pkg.importInfo.namedImports.forEach((name) => {
|
|
161
|
+
componentMapEntries.push(`['${name}', ${name}]`);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
componentMapEntries.push(`['${pkg.importName}', ${pkg.importName}]`);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
169
168
|
return `// ${headerComment}
|
|
170
169
|
${builtInImports}${importsSection}
|
|
171
170
|
|
|
172
171
|
export const componentMap = new Map<string, NextjsContentSdkComponent>([
|
|
173
|
-
${componentMapEntries
|
|
174
|
-
.map((component) => {
|
|
175
|
-
return ` ${component},\n`;
|
|
176
|
-
})
|
|
172
|
+
${componentMapEntries
|
|
173
|
+
.map((component) => {
|
|
174
|
+
return ` ${component},\n`;
|
|
175
|
+
})
|
|
177
176
|
.join('')}]);
|
|
178
177
|
|
|
179
178
|
export default componentMap;
|
|
180
|
-
`;
|
|
181
|
-
};
|
|
182
|
-
// default client template
|
|
183
|
-
const defaultClientMapTemplate = (components, componentImports, ctx) => {
|
|
184
|
-
var _a, _b;
|
|
179
|
+
`;
|
|
180
|
+
};
|
|
181
|
+
// default client template
|
|
182
|
+
const defaultClientMapTemplate = (components, componentImports, ctx) => {
|
|
183
|
+
var _a, _b;
|
|
185
184
|
const builtInImports = `
|
|
186
185
|
import { BYOCClientWrapper, NextjsContentSdkComponent, FEaaSClientWrapper } from '@sitecore-content-sdk/nextjs';
|
|
187
186
|
import { Form } from '@sitecore-content-sdk/nextjs';
|
|
188
|
-
`;
|
|
189
|
-
const builtInMapEntries = [
|
|
190
|
-
`['BYOCWrapper', BYOCClientWrapper]`,
|
|
191
|
-
`['FEaaSWrapper', FEaaSClientWrapper]`,
|
|
192
|
-
`['Form', Form]`,
|
|
193
|
-
];
|
|
194
|
-
const entries = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.entries) !== null && _a !== void 0 ? _a : prepareComponentsForMap(components, {
|
|
195
|
-
includeVariants: (_b = ctx === null || ctx === void 0 ? void 0 : ctx.includeVariants) !== null && _b !== void 0 ? _b : true,
|
|
196
|
-
});
|
|
197
|
-
return buildNextjsMapContent(entries, componentImports, {
|
|
198
|
-
headerComment: 'Client-safe component map for App Router',
|
|
199
|
-
isClientMap: true,
|
|
200
|
-
builtInImports,
|
|
201
|
-
builtInMapEntries,
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
exports.defaultClientMapTemplate = defaultClientMapTemplate;
|
|
205
|
-
// Collect components from specified paths, apply exclude and type filter, and prepare map entries.
|
|
206
|
-
const collectComponents = (opts) => {
|
|
207
|
-
const withTypes = (0,
|
|
208
|
-
const filtered = opts.filter === 'client'
|
|
209
|
-
? (0, tools_1.filterComponentsByType)(withTypes, ['client', 'universal'])
|
|
210
|
-
: withTypes;
|
|
211
|
-
for (const file of filtered) {
|
|
212
|
-
console.debug(`Registering Content SDK component ${file.componentName}`);
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
raw: filtered,
|
|
216
|
-
entries: prepareComponentsForMap(filtered, { includeVariants: opts.includeVariants }),
|
|
217
|
-
};
|
|
218
|
-
};
|
|
219
|
-
/**
|
|
220
|
-
* Generate and write componentMap.ts files based on provided params.
|
|
221
|
-
*
|
|
222
|
-
* When clientComponentMap is true, generates:
|
|
223
|
-
* - component-map.ts : Full component map with all components (server, client, universal)
|
|
224
|
-
* - component-map.client.ts : Client-safe map with only client + universal components
|
|
225
|
-
*
|
|
226
|
-
* When clientComponentMap is false, generates:
|
|
227
|
-
* - component-map.ts : Single component map (traditional behavior)
|
|
228
|
-
*
|
|
229
|
-
* When includeVariants is true (in either mode):
|
|
230
|
-
* - Includes component **variants** in the generated map(s) alongside base components
|
|
231
|
-
* - Preserves the same client/server filtering rules (variants obey clientComponentMap filtering)
|
|
232
|
-
* - Variant entries are emitted using the same naming/keys convention as their base components
|
|
233
|
-
*
|
|
234
|
-
* Template Customization:
|
|
235
|
-
* - mapTemplate: Custom template for main component map (works for both single and dual map modes)
|
|
236
|
-
* - clientMapTemplate: Custom template for client component map (only used when clientComponentMap is true)
|
|
237
|
-
* @param {GenerateMapArgs}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
187
|
+
`;
|
|
188
|
+
const builtInMapEntries = [
|
|
189
|
+
`['BYOCWrapper', BYOCClientWrapper]`,
|
|
190
|
+
`['FEaaSWrapper', FEaaSClientWrapper]`,
|
|
191
|
+
`['Form', Form]`,
|
|
192
|
+
];
|
|
193
|
+
const entries = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.entries) !== null && _a !== void 0 ? _a : prepareComponentsForMap(components, {
|
|
194
|
+
includeVariants: (_b = ctx === null || ctx === void 0 ? void 0 : ctx.includeVariants) !== null && _b !== void 0 ? _b : true,
|
|
195
|
+
});
|
|
196
|
+
return buildNextjsMapContent(entries, componentImports, {
|
|
197
|
+
headerComment: 'Client-safe component map for App Router',
|
|
198
|
+
isClientMap: true,
|
|
199
|
+
builtInImports,
|
|
200
|
+
builtInMapEntries,
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
exports.defaultClientMapTemplate = defaultClientMapTemplate;
|
|
204
|
+
// Collect components from specified paths, apply exclude and type filter, and prepare map entries.
|
|
205
|
+
const collectComponents = (opts) => {
|
|
206
|
+
const withTypes = (0, utils_1.getComponentListWithTypes)(opts.paths, opts.exclude, opts.includeVariants);
|
|
207
|
+
const filtered = opts.filter === 'client'
|
|
208
|
+
? (0, tools_1.filterComponentsByType)(withTypes, ['client', 'universal'])
|
|
209
|
+
: withTypes;
|
|
210
|
+
for (const file of filtered) {
|
|
211
|
+
console.debug(`Registering Content SDK component ${file.componentName}`);
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
raw: filtered,
|
|
215
|
+
entries: prepareComponentsForMap(filtered, { includeVariants: opts.includeVariants }),
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Generate and write componentMap.ts files based on provided params.
|
|
220
|
+
*
|
|
221
|
+
* When clientComponentMap is true, generates:
|
|
222
|
+
* - component-map.ts : Full component map with all components (server, client, universal)
|
|
223
|
+
* - component-map.client.ts : Client-safe map with only client + universal components
|
|
224
|
+
*
|
|
225
|
+
* When clientComponentMap is false, generates:
|
|
226
|
+
* - component-map.ts : Single component map (traditional behavior)
|
|
227
|
+
*
|
|
228
|
+
* When includeVariants is true (in either mode):
|
|
229
|
+
* - Includes component **variants** in the generated map(s) alongside base components
|
|
230
|
+
* - Preserves the same client/server filtering rules (variants obey clientComponentMap filtering)
|
|
231
|
+
* - Variant entries are emitted using the same naming/keys convention as their base components
|
|
232
|
+
*
|
|
233
|
+
* Template Customization:
|
|
234
|
+
* - mapTemplate: Custom template for main component map (works for both single and dual map modes)
|
|
235
|
+
* - clientMapTemplate: Custom template for client component map (only used when clientComponentMap is true)
|
|
236
|
+
* @param {GenerateMapArgs} params - The parameters for the generateMap function.
|
|
237
|
+
* @public
|
|
238
|
+
*/
|
|
239
|
+
const generateMap = ({ paths, destination = '.sitecore', exclude, componentImports, mapTemplate, clientMapTemplate, clientComponentMap, includeVariants = true, }) => {
|
|
240
|
+
const isAppRouter = (0, utils_1.detectRouterType)() === 'app';
|
|
241
|
+
const shouldGenerateClientMap = clientComponentMap !== null && clientComponentMap !== void 0 ? clientComponentMap : isAppRouter;
|
|
242
|
+
if (shouldGenerateClientMap) {
|
|
243
|
+
// App Router case, main map
|
|
244
|
+
const getComponents = collectComponents({ paths, exclude, includeVariants, filter: 'all' });
|
|
245
|
+
let mainContent;
|
|
246
|
+
if (mapTemplate) {
|
|
247
|
+
mainContent = mapTemplate(getComponents.raw, componentImports, {
|
|
248
|
+
entries: getComponents.entries,
|
|
249
|
+
includeVariants,
|
|
250
|
+
isClientMap: false,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
// default app router server map
|
|
255
255
|
const builtInImports = `
|
|
256
256
|
import { BYOCServerWrapper, NextjsContentSdkComponent, FEaaSServerWrapper } from '@sitecore-content-sdk/nextjs';
|
|
257
257
|
import { Form } from '@sitecore-content-sdk/nextjs';
|
|
258
|
-
`;
|
|
259
|
-
const builtInMapEntries = [
|
|
260
|
-
`['BYOCWrapper', BYOCServerWrapper]`,
|
|
261
|
-
`['FEaaSWrapper', FEaaSServerWrapper]`,
|
|
262
|
-
`['Form', Form]`,
|
|
263
|
-
];
|
|
264
|
-
mainContent = buildNextjsMapContent(getComponents.entries, componentImports, {
|
|
265
|
-
headerComment: "Below are built-in components that are available in the app, it's recommended to keep them as is",
|
|
266
|
-
isClientMap: false,
|
|
267
|
-
builtInImports,
|
|
268
|
-
builtInMapEntries,
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.ts'), mainContent, 'utf8');
|
|
272
|
-
// App Router, client map
|
|
273
|
-
const clientComponents = collectComponents({
|
|
274
|
-
paths,
|
|
275
|
-
exclude,
|
|
276
|
-
includeVariants,
|
|
277
|
-
filter: 'client',
|
|
278
|
-
});
|
|
279
|
-
const clientTemplate = clientMapTemplate || exports.defaultClientMapTemplate;
|
|
280
|
-
let clientContent;
|
|
281
|
-
if (clientTemplate.length >= 2) {
|
|
282
|
-
clientContent = clientTemplate(clientComponents.raw, componentImports);
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
clientContent = clientTemplate(clientComponents.raw, componentImports, {
|
|
286
|
-
entries: clientComponents.entries,
|
|
287
|
-
includeVariants,
|
|
288
|
-
isClientMap: true,
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.client.ts'), clientContent, 'utf8');
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
// Either in pages/app router or clientComponentMap = false
|
|
295
|
-
const components = collectComponents({
|
|
296
|
-
paths,
|
|
297
|
-
exclude,
|
|
298
|
-
includeVariants,
|
|
299
|
-
filter: 'all',
|
|
300
|
-
}).entries;
|
|
301
|
-
const content = buildNextjsMapContent(components, componentImports, {
|
|
302
|
-
headerComment: "Below are built-in components that are available in the app, it's recommended to keep them as is",
|
|
303
|
-
isClientMap: false,
|
|
304
|
-
});
|
|
305
|
-
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.ts'), content, 'utf8');
|
|
306
|
-
// For App Router compatibility, always generate client map file even when clientComponentMap is false
|
|
307
|
-
// When clientComponentMap is false, only include built-in components (no custom client components)
|
|
308
|
-
if (shouldGenerateClientMap || isAppRouter) {
|
|
309
|
-
const clientMapTemplateToUse = clientMapTemplate || exports.defaultClientMapTemplate;
|
|
310
|
-
const components = collectComponents({ paths: [], includeVariants, filter: 'all' });
|
|
311
|
-
let clientMapContent;
|
|
312
|
-
if (clientMapTemplateToUse.length >= 2) {
|
|
313
|
-
clientMapContent = clientMapTemplateToUse([], componentImports);
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
clientMapContent = clientMapTemplateToUse([], componentImports, {
|
|
317
|
-
entries: components.entries,
|
|
318
|
-
includeVariants,
|
|
319
|
-
isClientMap: true,
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
const clientMapFile = path.join(process.cwd(), destination, 'component-map.client.ts');
|
|
323
|
-
try {
|
|
324
|
-
fs.writeFileSync(clientMapFile, clientMapContent, { encoding: 'utf8' });
|
|
325
|
-
}
|
|
326
|
-
catch (error) {
|
|
327
|
-
console.error(`Client Component Map generation failed. Error writing to file ${destination}:`, error);
|
|
328
|
-
throw error;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
exports.generateMap = generateMap;
|
|
258
|
+
`;
|
|
259
|
+
const builtInMapEntries = [
|
|
260
|
+
`['BYOCWrapper', BYOCServerWrapper]`,
|
|
261
|
+
`['FEaaSWrapper', FEaaSServerWrapper]`,
|
|
262
|
+
`['Form', Form]`,
|
|
263
|
+
];
|
|
264
|
+
mainContent = buildNextjsMapContent(getComponents.entries, componentImports, {
|
|
265
|
+
headerComment: "Below are built-in components that are available in the app, it's recommended to keep them as is",
|
|
266
|
+
isClientMap: false,
|
|
267
|
+
builtInImports,
|
|
268
|
+
builtInMapEntries,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.ts'), mainContent, 'utf8');
|
|
272
|
+
// App Router, client map
|
|
273
|
+
const clientComponents = collectComponents({
|
|
274
|
+
paths,
|
|
275
|
+
exclude,
|
|
276
|
+
includeVariants,
|
|
277
|
+
filter: 'client',
|
|
278
|
+
});
|
|
279
|
+
const clientTemplate = clientMapTemplate || exports.defaultClientMapTemplate;
|
|
280
|
+
let clientContent;
|
|
281
|
+
if (clientTemplate.length >= 2) {
|
|
282
|
+
clientContent = clientTemplate(clientComponents.raw, componentImports);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
clientContent = clientTemplate(clientComponents.raw, componentImports, {
|
|
286
|
+
entries: clientComponents.entries,
|
|
287
|
+
includeVariants,
|
|
288
|
+
isClientMap: true,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.client.ts'), clientContent, 'utf8');
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
// Either in pages/app router or clientComponentMap = false
|
|
295
|
+
const components = collectComponents({
|
|
296
|
+
paths,
|
|
297
|
+
exclude,
|
|
298
|
+
includeVariants,
|
|
299
|
+
filter: 'all',
|
|
300
|
+
}).entries;
|
|
301
|
+
const content = buildNextjsMapContent(components, componentImports, {
|
|
302
|
+
headerComment: "Below are built-in components that are available in the app, it's recommended to keep them as is",
|
|
303
|
+
isClientMap: false,
|
|
304
|
+
});
|
|
305
|
+
fs.writeFileSync(path.join(process.cwd(), destination, 'component-map.ts'), content, 'utf8');
|
|
306
|
+
// For App Router compatibility, always generate client map file even when clientComponentMap is false
|
|
307
|
+
// When clientComponentMap is false, only include built-in components (no custom client components)
|
|
308
|
+
if (shouldGenerateClientMap || isAppRouter) {
|
|
309
|
+
const clientMapTemplateToUse = clientMapTemplate || exports.defaultClientMapTemplate;
|
|
310
|
+
const components = collectComponents({ paths: [], includeVariants, filter: 'all' });
|
|
311
|
+
let clientMapContent;
|
|
312
|
+
if (clientMapTemplateToUse.length >= 2) {
|
|
313
|
+
clientMapContent = clientMapTemplateToUse([], componentImports);
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
clientMapContent = clientMapTemplateToUse([], componentImports, {
|
|
317
|
+
entries: components.entries,
|
|
318
|
+
includeVariants,
|
|
319
|
+
isClientMap: true,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
const clientMapFile = path.join(process.cwd(), destination, 'component-map.client.ts');
|
|
323
|
+
try {
|
|
324
|
+
fs.writeFileSync(clientMapFile, clientMapContent, { encoding: 'utf8' });
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
console.error(`Client Component Map generation failed. Error writing to file ${destination}:`, error);
|
|
328
|
+
throw error;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
exports.generateMap = generateMap;
|