@griddo/cx 11.7.12-rc.4 → 11.7.12
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 +226 -27
- package/build/adapters/gatsby/index.d.ts +4 -0
- package/build/adapters/gatsby/utils.d.ts +22 -0
- package/build/artifacts/index.d.ts +6 -0
- package/build/commands/end-render.d.ts +2 -0
- package/build/commands/move-assets.d.ts +1 -0
- package/build/commands/prepare-domains-render.d.ts +1 -0
- package/build/commands/reset-render.d.ts +2 -0
- package/build/commands/start-render.d.ts +2 -0
- package/build/commands/upload-search-content.d.ts +2 -0
- package/build/constants/endpoints.d.ts +19 -0
- package/build/constants/envs.d.ts +37 -0
- package/build/constants/index.d.ts +57 -0
- package/build/end-render.js +74 -0
- package/build/end-render.js.map +7 -0
- package/build/errors/errors-data.d.ts +22 -0
- package/build/errors/index.d.ts +15 -0
- package/build/index.d.ts +29 -0
- package/build/index.js +73 -0
- package/build/index.js.map +7 -0
- package/build/prepare-domains-render.js +73 -0
- package/build/prepare-domains-render.js.map +7 -0
- package/build/react/Favicon/index.d.ts +5 -0
- package/build/react/Favicon/utils.d.ts +9 -0
- package/build/react/GriddoIntegrations/index.d.ts +20 -0
- package/build/react/GriddoIntegrations/utils.d.ts +26 -0
- package/{react/index.tsx → build/react/index.d.ts} +0 -1
- package/build/react/index.js +3 -0
- package/build/registers/api.d.ts +9 -0
- package/build/registers/gatsby.d.ts +9 -0
- package/build/registers/index.d.ts +3 -0
- package/build/reset-render.js +74 -0
- package/build/reset-render.js.map +7 -0
- package/build/services/auth.d.ts +10 -0
- package/build/services/domains.d.ts +6 -0
- package/build/services/navigation.d.ts +50 -0
- package/build/services/reference-fields.d.ts +20 -0
- package/build/services/register.d.ts +36 -0
- package/build/services/robots.d.ts +19 -0
- package/build/services/settings.d.ts +4 -0
- package/build/services/sites.d.ts +29 -0
- package/build/services/store.d.ts +6 -0
- package/build/start-render.js +100 -0
- package/build/start-render.js.map +7 -0
- package/build/types/api.d.ts +142 -0
- package/build/types/global.d.ts +84 -0
- package/build/types/navigation.d.ts +28 -0
- package/build/types/pages.d.ts +144 -0
- package/build/types/sites.d.ts +57 -0
- package/build/types/templates.d.ts +8 -0
- package/build/upload-search-content.js +74 -0
- package/build/upload-search-content.js.map +7 -0
- package/build/utils/alerts.d.ts +3 -0
- package/build/utils/api.d.ts +23 -0
- package/build/utils/cache.d.ts +35 -0
- package/build/utils/core-utils.d.ts +107 -0
- package/build/utils/create-build-data.d.ts +8 -0
- package/build/utils/domains.d.ts +13 -0
- package/build/utils/folders.d.ts +53 -0
- package/build/utils/health-checks.d.ts +7 -0
- package/build/utils/images.d.ts +16 -0
- package/build/utils/instance.d.ts +21 -0
- package/build/utils/loggin.d.ts +51 -0
- package/build/utils/pages.d.ts +34 -0
- package/build/utils/render.d.ts +13 -0
- package/build/utils/searches.d.ts +15 -0
- package/build/utils/sites.d.ts +31 -0
- package/build/utils/store.d.ts +81 -0
- package/cx.config.d.ts +5 -0
- package/cx.config.js +36 -0
- package/exporter/adapters/gatsby/index.ts +153 -73
- package/exporter/adapters/gatsby/utils.ts +161 -0
- package/exporter/artifacts/README.md +34 -0
- package/exporter/artifacts/index.ts +33 -0
- package/exporter/build.sh +38 -4
- package/exporter/commands/end-render.ts +70 -72
- package/exporter/commands/move-assets.ts +11 -0
- package/exporter/commands/prepare-domains-render.ts +31 -143
- package/exporter/commands/reset-render.ts +3 -10
- package/exporter/commands/start-render.ts +45 -22
- package/exporter/commands/upload-search-content.ts +21 -194
- package/exporter/constants/endpoints.ts +1 -2
- package/exporter/constants/envs.ts +55 -57
- package/exporter/constants/index.ts +129 -0
- package/exporter/{constants/errors.ts → errors/errors-data.ts} +14 -24
- package/exporter/{utils/errors.ts → errors/index.ts} +9 -10
- package/exporter/index.ts +82 -0
- package/{react → exporter/react}/Favicon/index.tsx +7 -1
- package/{react → exporter/react}/GriddoIntegrations/index.tsx +22 -16
- package/{react → exporter/react}/GriddoIntegrations/utils.ts +9 -21
- package/exporter/react/index.tsx +11 -0
- package/exporter/registers/api.ts +14 -0
- package/exporter/registers/gatsby.ts +14 -0
- package/exporter/registers/index.ts +4 -0
- package/exporter/services/auth.ts +6 -7
- package/exporter/services/domains.ts +16 -0
- package/exporter/services/navigation.ts +10 -4
- package/exporter/services/reference-fields.ts +24 -9
- package/exporter/services/register.ts +113 -0
- package/exporter/services/robots.ts +16 -9
- package/exporter/services/settings.ts +17 -0
- package/exporter/services/sites.ts +24 -36
- package/exporter/services/store.ts +96 -107
- package/exporter/types/api.ts +28 -27
- package/exporter/types/global.ts +11 -8
- package/exporter/types/navigation.ts +1 -1
- package/exporter/types/pages.ts +3 -2
- package/exporter/types/sites.ts +2 -1
- package/exporter/utils/alerts.ts +29 -0
- package/exporter/utils/api.ts +75 -55
- package/exporter/utils/cache.ts +62 -37
- package/exporter/utils/core-utils.ts +272 -133
- package/exporter/utils/create-build-data.ts +17 -0
- package/exporter/utils/domains.ts +7 -10
- package/exporter/utils/folders.ts +98 -163
- package/exporter/utils/health-checks.ts +64 -0
- package/exporter/utils/images.ts +6 -1
- package/exporter/utils/instance.ts +13 -9
- package/exporter/utils/loggin.ts +91 -44
- package/exporter/utils/pages.ts +88 -23
- package/exporter/utils/render.ts +48 -180
- package/exporter/utils/searches.ts +156 -0
- package/exporter/utils/sites.ts +197 -19
- package/exporter/utils/store.ts +180 -87
- package/gatsby-browser.tsx +58 -41
- package/gatsby-config.ts +17 -10
- package/gatsby-node.ts +78 -17
- package/gatsby-ssr.tsx +1 -2
- package/package.json +86 -36
- package/src/README.md +7 -0
- package/src/components/Head.tsx +46 -13
- package/src/components/template.tsx +30 -8
- package/src/gatsby-node-utils.ts +2 -73
- package/src/html.tsx +11 -2
- package/src/types.ts +5 -5
- package/start-render.js +7 -0
- package/tsconfig.json +3 -5
- package/build/adapters/gatsby/actions/clean.js +0 -10
- package/build/adapters/gatsby/actions/clean.js.map +0 -1
- package/build/adapters/gatsby/actions/close.js +0 -12
- package/build/adapters/gatsby/actions/close.js.map +0 -1
- package/build/adapters/gatsby/actions/data.js +0 -18
- package/build/adapters/gatsby/actions/data.js.map +0 -1
- package/build/adapters/gatsby/actions/healthCheck.js +0 -10
- package/build/adapters/gatsby/actions/healthCheck.js.map +0 -1
- package/build/adapters/gatsby/actions/init.js +0 -22
- package/build/adapters/gatsby/actions/init.js.map +0 -1
- package/build/adapters/gatsby/actions/logs.js +0 -12
- package/build/adapters/gatsby/actions/logs.js.map +0 -1
- package/build/adapters/gatsby/actions/meta.js +0 -13
- package/build/adapters/gatsby/actions/meta.js.map +0 -1
- package/build/adapters/gatsby/actions/prepare.js +0 -9
- package/build/adapters/gatsby/actions/prepare.js.map +0 -1
- package/build/adapters/gatsby/actions/relocation.js +0 -15
- package/build/adapters/gatsby/actions/relocation.js.map +0 -1
- package/build/adapters/gatsby/actions/restore.js +0 -26
- package/build/adapters/gatsby/actions/restore.js.map +0 -1
- package/build/adapters/gatsby/actions/ssg.js +0 -9
- package/build/adapters/gatsby/actions/ssg.js.map +0 -1
- package/build/adapters/gatsby/actions/sync.js +0 -51
- package/build/adapters/gatsby/actions/sync.js.map +0 -1
- package/build/adapters/gatsby/index.js +0 -78
- package/build/adapters/gatsby/index.js.map +0 -1
- package/build/adapters/gatsby/shared/artifacts.js +0 -20
- package/build/adapters/gatsby/shared/artifacts.js.map +0 -1
- package/build/adapters/gatsby/shared/context.js +0 -31
- package/build/adapters/gatsby/shared/context.js.map +0 -1
- package/build/adapters/gatsby/shared/diff-assets.js +0 -101
- package/build/adapters/gatsby/shared/diff-assets.js.map +0 -1
- package/build/adapters/gatsby/shared/extract-assets.js +0 -58
- package/build/adapters/gatsby/shared/extract-assets.js.map +0 -1
- package/build/adapters/gatsby/shared/gatsby-build.js +0 -55
- package/build/adapters/gatsby/shared/gatsby-build.js.map +0 -1
- package/build/adapters/gatsby/shared/sync-render.js +0 -210
- package/build/adapters/gatsby/shared/sync-render.js.map +0 -1
- package/build/adapters/gatsby/shared/types.js +0 -3
- package/build/adapters/gatsby/shared/types.js.map +0 -1
- package/build/commands/end-render.js +0 -87
- package/build/commands/end-render.js.map +0 -1
- package/build/commands/prepare-assets-directory.js +0 -30
- package/build/commands/prepare-assets-directory.js.map +0 -1
- package/build/commands/prepare-domains-render.js +0 -133
- package/build/commands/prepare-domains-render.js.map +0 -1
- package/build/commands/reset-render.js +0 -21
- package/build/commands/reset-render.js.map +0 -1
- package/build/commands/start-render.js +0 -44
- package/build/commands/start-render.js.map +0 -1
- package/build/commands/upload-search-content.js +0 -180
- package/build/commands/upload-search-content.js.map +0 -1
- package/build/constants/endpoints.js +0 -43
- package/build/constants/endpoints.js.map +0 -1
- package/build/constants/envs.js +0 -68
- package/build/constants/envs.js.map +0 -1
- package/build/constants/errors.js +0 -81
- package/build/constants/errors.js.map +0 -1
- package/build/services/auth.js +0 -40
- package/build/services/auth.js.map +0 -1
- package/build/services/db-class.js +0 -49
- package/build/services/db-class.js.map +0 -1
- package/build/services/db.js +0 -34
- package/build/services/db.js.map +0 -1
- package/build/services/navigation.js +0 -96
- package/build/services/navigation.js.map +0 -1
- package/build/services/reference-fields.js +0 -131
- package/build/services/reference-fields.js.map +0 -1
- package/build/services/robots.js +0 -60
- package/build/services/robots.js.map +0 -1
- package/build/services/sites.js +0 -110
- package/build/services/sites.js.map +0 -1
- package/build/services/store.js +0 -257
- package/build/services/store.js.map +0 -1
- package/build/types/api.js +0 -3
- package/build/types/api.js.map +0 -1
- package/build/types/global.js +0 -3
- package/build/types/global.js.map +0 -1
- package/build/types/navigation.js +0 -3
- package/build/types/navigation.js.map +0 -1
- package/build/types/pages.js +0 -3
- package/build/types/pages.js.map +0 -1
- package/build/types/render.js +0 -10
- package/build/types/render.js.map +0 -1
- package/build/types/sites.js +0 -3
- package/build/types/sites.js.map +0 -1
- package/build/types/templates.js +0 -3
- package/build/types/templates.js.map +0 -1
- package/build/utils/api.js +0 -165
- package/build/utils/api.js.map +0 -1
- package/build/utils/artifacts.js +0 -38
- package/build/utils/artifacts.js.map +0 -1
- package/build/utils/brush.js +0 -30
- package/build/utils/brush.js.map +0 -1
- package/build/utils/cache.js +0 -106
- package/build/utils/cache.js.map +0 -1
- package/build/utils/check-environment-health.js +0 -73
- package/build/utils/check-environment-health.js.map +0 -1
- package/build/utils/core-utils.js +0 -270
- package/build/utils/core-utils.js.map +0 -1
- package/build/utils/domains.js +0 -37
- package/build/utils/domains.js.map +0 -1
- package/build/utils/errors.js +0 -30
- package/build/utils/errors.js.map +0 -1
- package/build/utils/folders.js +0 -341
- package/build/utils/folders.js.map +0 -1
- package/build/utils/images.js +0 -45
- package/build/utils/images.js.map +0 -1
- package/build/utils/instance.js +0 -66
- package/build/utils/instance.js.map +0 -1
- package/build/utils/loggin.js +0 -119
- package/build/utils/loggin.js.map +0 -1
- package/build/utils/npm-deps/find-up-simple.js +0 -75
- package/build/utils/npm-deps/find-up-simple.js.map +0 -1
- package/build/utils/npm-deps/pkg-dir.js +0 -20
- package/build/utils/npm-deps/pkg-dir.js.map +0 -1
- package/build/utils/npm-deps/xml-parser.js +0 -49
- package/build/utils/npm-deps/xml-parser.js.map +0 -1
- package/build/utils/pages.js +0 -359
- package/build/utils/pages.js.map +0 -1
- package/build/utils/render.js +0 -168
- package/build/utils/render.js.map +0 -1
- package/build/utils/sitemaps.js +0 -110
- package/build/utils/sitemaps.js.map +0 -1
- package/build/utils/sites.js +0 -105
- package/build/utils/sites.js.map +0 -1
- package/build/utils/store.js +0 -193
- package/build/utils/store.js.map +0 -1
- package/cli.mjs +0 -136
- package/exporter/adapters/gatsby/actions/clean.ts +0 -14
- package/exporter/adapters/gatsby/actions/close.ts +0 -17
- package/exporter/adapters/gatsby/actions/data.ts +0 -25
- package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -10
- package/exporter/adapters/gatsby/actions/init.ts +0 -26
- package/exporter/adapters/gatsby/actions/logs.ts +0 -13
- package/exporter/adapters/gatsby/actions/meta.ts +0 -16
- package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
- package/exporter/adapters/gatsby/actions/relocation.ts +0 -15
- package/exporter/adapters/gatsby/actions/restore.ts +0 -36
- package/exporter/adapters/gatsby/actions/ssg.ts +0 -12
- package/exporter/adapters/gatsby/actions/sync.ts +0 -71
- package/exporter/adapters/gatsby/shared/artifacts.ts +0 -16
- package/exporter/adapters/gatsby/shared/context.ts +0 -50
- package/exporter/adapters/gatsby/shared/diff-assets.ts +0 -113
- package/exporter/adapters/gatsby/shared/extract-assets.ts +0 -61
- package/exporter/adapters/gatsby/shared/gatsby-build.ts +0 -58
- package/exporter/adapters/gatsby/shared/sync-render.ts +0 -276
- package/exporter/adapters/gatsby/shared/types.ts +0 -35
- package/exporter/build-esbuild.noop +0 -42
- package/exporter/commands/prepare-assets-directory.ts +0 -30
- package/exporter/services/db-class.ts +0 -54
- package/exporter/services/db.ts +0 -32
- package/exporter/types/render.ts +0 -59
- package/exporter/utils/artifacts.ts +0 -38
- package/exporter/utils/brush.ts +0 -34
- package/exporter/utils/check-environment-health.ts +0 -84
- package/exporter/utils/npm-deps/find-up-simple.ts +0 -100
- package/exporter/utils/npm-deps/pkg-dir.ts +0 -17
- package/exporter/utils/npm-deps/xml-parser.ts +0 -57
- package/exporter/utils/sitemaps.ts +0 -129
- package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +0 -55
- package/plugins/gatsby-plugin-svgr-loader/package.json +0 -8
- package/react/DynamicScript/index.tsx +0 -33
- package/tsconfig.commands.json +0 -36
- package/tsconfig.exporter.json +0 -19
- /package/{react → exporter/react}/Favicon/utils.ts +0 -0
package/cli.mjs
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { execSync } from "node:child_process";
|
|
4
|
-
import { dirname } from "node:path";
|
|
5
|
-
import { fileURLToPath } from "node:url";
|
|
6
|
-
|
|
7
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
|
-
|
|
9
|
-
export const AVAILABLE_COMMANDS = [
|
|
10
|
-
{
|
|
11
|
-
name: "prepare-domains-render",
|
|
12
|
-
description: "Prepare domains for rendering",
|
|
13
|
-
requiresDomain: false,
|
|
14
|
-
script: "prepare-domains-render",
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: "prepare-assets-directory",
|
|
18
|
-
description: "Prepare assets directory (internal local only)",
|
|
19
|
-
requiresDomain: true,
|
|
20
|
-
script: "prepare-assets-directory",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "start-render",
|
|
24
|
-
description: "Start rendering for a domain",
|
|
25
|
-
requiresDomain: true,
|
|
26
|
-
script: "start-render",
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "end-render",
|
|
30
|
-
description: "End rendering for a domain",
|
|
31
|
-
requiresDomain: true,
|
|
32
|
-
script: "end-render",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "upload-search-content",
|
|
36
|
-
description: "Upload search content for a domain",
|
|
37
|
-
requiresDomain: false,
|
|
38
|
-
script: "upload-search-content",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "reset-render",
|
|
42
|
-
description: "Reset render state",
|
|
43
|
-
requiresDomain: false,
|
|
44
|
-
script: "reset-render",
|
|
45
|
-
},
|
|
46
|
-
];
|
|
47
|
-
|
|
48
|
-
function showHelp() {
|
|
49
|
-
console.log("Griddo CX CLI - Available commands:\n");
|
|
50
|
-
|
|
51
|
-
AVAILABLE_COMMANDS.forEach((cmd) => {
|
|
52
|
-
const domainArg = cmd.requiresDomain ? " <domain>" : "";
|
|
53
|
-
console.log(` ${cmd.name}${domainArg} - ${cmd.description}`);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
console.log("\nUsage:");
|
|
57
|
-
console.log(" node exporter/commands/cli.mjs <command> [domain]");
|
|
58
|
-
console.log(" node exporter/commands/cli.mjs --help");
|
|
59
|
-
console.log("\nExamples:");
|
|
60
|
-
console.log(" node exporter/commands/cli.mjs start-render mydomain.com");
|
|
61
|
-
console.log(" node exporter/commands/cli.mjs get-design-system");
|
|
62
|
-
console.log(" node exporter/commands/cli.mjs --help");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function findCommand(commandName) {
|
|
66
|
-
return AVAILABLE_COMMANDS.find((cmd) => cmd.name === commandName);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function validateCommand(commandName, domain) {
|
|
70
|
-
const command = findCommand(commandName);
|
|
71
|
-
|
|
72
|
-
if (!command) {
|
|
73
|
-
console.error(`Error: Unknown command '${commandName}'`);
|
|
74
|
-
console.error("Use 'node exporter/commands/cli.mjs --help' to see available commands");
|
|
75
|
-
process.exit(1);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (command.requiresDomain && !domain) {
|
|
79
|
-
console.error(`Error: Command '${commandName}' requires a domain argument`);
|
|
80
|
-
console.error(`Usage: node exporter/commands/cli.mjs ${commandName} <domain>`);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (!command.requiresDomain && domain) {
|
|
85
|
-
console.warn(
|
|
86
|
-
`Warning: Command '${commandName}' doesn't require a domain, ignoring '${domain}'`,
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return { command, domain: command.requiresDomain ? domain : undefined };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function executeCommand(command, domain) {
|
|
94
|
-
try {
|
|
95
|
-
const scriptPath = `${__dirname}/build/commands/${command.script}`;
|
|
96
|
-
const env = { ...process.env };
|
|
97
|
-
|
|
98
|
-
if (domain) {
|
|
99
|
-
execSync(`node ${scriptPath} ${domain}`, {
|
|
100
|
-
stdio: "inherit",
|
|
101
|
-
env,
|
|
102
|
-
cwd: process.cwd(),
|
|
103
|
-
});
|
|
104
|
-
} else {
|
|
105
|
-
execSync(`node ${scriptPath}`, {
|
|
106
|
-
stdio: "inherit",
|
|
107
|
-
env,
|
|
108
|
-
cwd: process.cwd(),
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
} catch (_error) {
|
|
112
|
-
console.error(`Error executing command ${command.name}`);
|
|
113
|
-
process.exit(1);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function main() {
|
|
118
|
-
const args = process.argv.slice(2);
|
|
119
|
-
|
|
120
|
-
// Show help if no arguments or --help flag
|
|
121
|
-
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
122
|
-
showHelp();
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const commandName = args[0];
|
|
127
|
-
const domain = args[1];
|
|
128
|
-
|
|
129
|
-
// Validate command and arguments
|
|
130
|
-
const { command, domain: validatedDomain } = validateCommand(commandName, domain);
|
|
131
|
-
|
|
132
|
-
// Execute the command
|
|
133
|
-
executeCommand(command, validatedDomain);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
main();
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import { removeDirs } from "../../../utils/folders";
|
|
5
|
-
|
|
6
|
-
export async function cleanAction(context: RenderContext<SSG>) {
|
|
7
|
-
const {
|
|
8
|
-
cxArtifacts,
|
|
9
|
-
ssg: { ssgArtifacts },
|
|
10
|
-
} = context;
|
|
11
|
-
|
|
12
|
-
await removeDirs(cxArtifacts.disposables);
|
|
13
|
-
await removeDirs(ssgArtifacts.disposables);
|
|
14
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import { removeDirs } from "../../../utils/folders";
|
|
5
|
-
import { updateCommitFile } from "../../../utils/render";
|
|
6
|
-
|
|
7
|
-
export async function closeAction(context: RenderContext<SSG>) {
|
|
8
|
-
const {
|
|
9
|
-
cxArtifacts,
|
|
10
|
-
ssg: { ssgArtifacts },
|
|
11
|
-
paths: { __cache },
|
|
12
|
-
} = context;
|
|
13
|
-
|
|
14
|
-
await removeDirs(cxArtifacts.disposables);
|
|
15
|
-
await removeDirs(ssgArtifacts.disposables);
|
|
16
|
-
await updateCommitFile({ basePath: __cache });
|
|
17
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
|
|
3
|
-
import { createStore } from "../../../services/store";
|
|
4
|
-
import { createAPICacheDir } from "../../../utils/cache";
|
|
5
|
-
|
|
6
|
-
export async function dataAction(context: RenderContext) {
|
|
7
|
-
const {
|
|
8
|
-
domain,
|
|
9
|
-
renderMode,
|
|
10
|
-
renderMetadata: { griddoVersion },
|
|
11
|
-
paths: { __root },
|
|
12
|
-
} = context;
|
|
13
|
-
|
|
14
|
-
await createAPICacheDir({ basePath: __root });
|
|
15
|
-
|
|
16
|
-
const { pagesToCreate, pagesToDelete } = await createStore({
|
|
17
|
-
domain,
|
|
18
|
-
renderMode,
|
|
19
|
-
griddoVersion,
|
|
20
|
-
basePath: __root,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
context.pagesToCreate = pagesToCreate;
|
|
24
|
-
context.pagesToDelete = pagesToDelete;
|
|
25
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
|
|
3
|
-
import { assertRenderIsValid, markRenderAsCompleted } from "../../../utils/render";
|
|
4
|
-
|
|
5
|
-
export async function healthCheckAction(context: RenderContext) {
|
|
6
|
-
const { domain } = context;
|
|
7
|
-
|
|
8
|
-
await assertRenderIsValid(domain);
|
|
9
|
-
await markRenderAsCompleted(domain);
|
|
10
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
|
|
3
|
-
import fsp from "node:fs/promises";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
|
|
6
|
-
import { infoLog } from "../../../utils/loggin";
|
|
7
|
-
import { markRenderAsStarted } from "../../../utils/render";
|
|
8
|
-
|
|
9
|
-
export async function initAction(context: RenderContext) {
|
|
10
|
-
const {
|
|
11
|
-
domain,
|
|
12
|
-
paths: { __root, __cache, __exports },
|
|
13
|
-
renderMode,
|
|
14
|
-
} = context;
|
|
15
|
-
|
|
16
|
-
if (renderMode === "FROM_SCRATCH") {
|
|
17
|
-
infoLog("Removing old files...\n");
|
|
18
|
-
|
|
19
|
-
await fsp.rm(__cache, { force: true, recursive: true });
|
|
20
|
-
await fsp.rm(path.join(__exports, "dist"), { force: true, recursive: true });
|
|
21
|
-
await fsp.rm(path.join(__exports, "assets"), { force: true, recursive: true });
|
|
22
|
-
await fsp.rm(path.join(__exports, domain), { force: true, recursive: true }); // only clocal
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
await markRenderAsStarted({ basePath: __root, domain });
|
|
26
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import { GRIDDO_BUILD_LOGS } from "../../../constants/envs";
|
|
5
|
-
import { saveDetailRenderLog } from "../../../utils/core-utils";
|
|
6
|
-
|
|
7
|
-
export async function logsAction(context: RenderContext<SSG>) {
|
|
8
|
-
const { domain } = context;
|
|
9
|
-
|
|
10
|
-
if (GRIDDO_BUILD_LOGS) {
|
|
11
|
-
await saveDetailRenderLog(domain);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
|
|
3
|
-
import { RobotsService } from "../../../services/robots";
|
|
4
|
-
import { generateBuildReport } from "../../../utils/render";
|
|
5
|
-
import { generateSitemaps } from "../../../utils/sitemaps";
|
|
6
|
-
|
|
7
|
-
export async function metaAction(context: RenderContext) {
|
|
8
|
-
const {
|
|
9
|
-
domain,
|
|
10
|
-
paths: { __root },
|
|
11
|
-
} = context;
|
|
12
|
-
|
|
13
|
-
await generateBuildReport(domain);
|
|
14
|
-
await generateSitemaps(domain);
|
|
15
|
-
await RobotsService.writeFiles(domain);
|
|
16
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
|
|
3
|
-
import fsp from "node:fs/promises";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
|
|
6
|
-
export async function relocationAction(context: RenderContext) {
|
|
7
|
-
const {
|
|
8
|
-
paths: { __root, __ssg },
|
|
9
|
-
} = context;
|
|
10
|
-
|
|
11
|
-
const src = path.join(__ssg, "public");
|
|
12
|
-
const dst = path.join(__root, "dist");
|
|
13
|
-
|
|
14
|
-
await fsp.rename(src, dst);
|
|
15
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
|
|
6
|
-
import { RENDER_MODE } from "../../../types/render";
|
|
7
|
-
import { copyDirs, moveDirs, removeDirs, renamePath } from "../../../utils/folders";
|
|
8
|
-
|
|
9
|
-
export async function restoreAction(context: RenderContext<SSG>) {
|
|
10
|
-
const {
|
|
11
|
-
renderMode,
|
|
12
|
-
ssg: { ssgArtifacts },
|
|
13
|
-
cxArtifacts,
|
|
14
|
-
paths: { __components, __root, __cache, __exports, __ssg },
|
|
15
|
-
} = context;
|
|
16
|
-
|
|
17
|
-
await copyDirs(__components, __ssg, ["static"]);
|
|
18
|
-
|
|
19
|
-
if (renderMode === RENDER_MODE.FROM_SCRATCH) {
|
|
20
|
-
// NO RESTAURAMOS NADA!
|
|
21
|
-
// De hecho hay que borrar los cacheables
|
|
22
|
-
await removeDirs(
|
|
23
|
-
cxArtifacts.cacheables.map((artifactName) => path.join(__cache, artifactName)),
|
|
24
|
-
);
|
|
25
|
-
await removeDirs(
|
|
26
|
-
ssgArtifacts.cacheables.map((artifactName) => path.join(__cache, artifactName)),
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (renderMode === RENDER_MODE.INCREMENTAL) {
|
|
31
|
-
await moveDirs(__cache, __ssg, ssgArtifacts.cacheables);
|
|
32
|
-
await moveDirs(__cache, __root, cxArtifacts.cacheables);
|
|
33
|
-
await copyDirs(__exports, __root, cxArtifacts.restaurable);
|
|
34
|
-
await renamePath(path.join(__root, "dist"), path.join(__root, "dist-restored"));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import { gatsbyBuild } from "../shared/gatsby-build";
|
|
5
|
-
|
|
6
|
-
export async function ssgAction(context: RenderContext<SSG>) {
|
|
7
|
-
const {
|
|
8
|
-
ssg: { assetPrefix },
|
|
9
|
-
} = context;
|
|
10
|
-
|
|
11
|
-
await gatsbyBuild(assetPrefix);
|
|
12
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { RenderContext } from "../shared/context";
|
|
2
|
-
import type { SSG } from "../shared/types";
|
|
3
|
-
|
|
4
|
-
import fsp from "node:fs/promises";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
|
|
7
|
-
import { RENDER_MODE } from "../../../types/render";
|
|
8
|
-
import {
|
|
9
|
-
deleteDisposableSiteDirs,
|
|
10
|
-
deleteEmptyDirectories,
|
|
11
|
-
moveDirs,
|
|
12
|
-
removeVirtualPages,
|
|
13
|
-
} from "../../../utils/folders";
|
|
14
|
-
import { extractAssetsFromDist } from "../shared/extract-assets";
|
|
15
|
-
import { SyncRender } from "../shared/sync-render";
|
|
16
|
-
|
|
17
|
-
export async function syncAction(context: RenderContext<SSG>) {
|
|
18
|
-
const {
|
|
19
|
-
renderMode,
|
|
20
|
-
cxArtifacts,
|
|
21
|
-
domain,
|
|
22
|
-
pagesToCreate,
|
|
23
|
-
pagesToDelete,
|
|
24
|
-
paths: { __root, __ssg, __cache, __exports },
|
|
25
|
-
ssg: { ssgArtifacts, assetPrefix },
|
|
26
|
-
} = context;
|
|
27
|
-
|
|
28
|
-
const needsAssetPrefix = !!assetPrefix && assetPrefix !== "";
|
|
29
|
-
const distDir = path.join(__root, "dist");
|
|
30
|
-
const distRestoredDir = path.join(__root, "dist-restored");
|
|
31
|
-
const storeDir = path.join(__root, "store");
|
|
32
|
-
|
|
33
|
-
// ESTO YA NO TIENE SENTIDO??? EL STORE???
|
|
34
|
-
await removeVirtualPages(storeDir);
|
|
35
|
-
// caching...
|
|
36
|
-
await moveDirs(__root, __cache, cxArtifacts.cacheables);
|
|
37
|
-
await moveDirs(__ssg, __cache, ssgArtifacts.cacheables);
|
|
38
|
-
|
|
39
|
-
if (renderMode === RENDER_MODE.FROM_SCRATCH) {
|
|
40
|
-
await deleteDisposableSiteDirs(distDir);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (renderMode === RENDER_MODE.INCREMENTAL) {
|
|
44
|
-
await deleteDisposableSiteDirs(distRestoredDir);
|
|
45
|
-
|
|
46
|
-
const syncRender = new SyncRender({
|
|
47
|
-
src: distDir,
|
|
48
|
-
dst: distRestoredDir,
|
|
49
|
-
pagesToCreate,
|
|
50
|
-
pagesToDelete,
|
|
51
|
-
artifactsToCopyToExports: ["build-report.json"],
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
await syncRender.execute();
|
|
55
|
-
|
|
56
|
-
// elimina el dist recién creado, ya no hace falta porque lo hemos utilizado en syncRender.execute()
|
|
57
|
-
await fsp.rm(distDir, { force: true, recursive: true });
|
|
58
|
-
// renombra el nuevo dist-temporal que es el que aglutina todos los cambios -> dist
|
|
59
|
-
await fsp.rename(distRestoredDir, distDir);
|
|
60
|
-
await deleteEmptyDirectories(distDir);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (needsAssetPrefix) {
|
|
64
|
-
await extractAssetsFromDist(domain);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// archiving...
|
|
68
|
-
await moveDirs(__root, __exports, cxArtifacts.archivables, {
|
|
69
|
-
withBackup: true,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
|
|
3
|
-
import { getRenderPathsFromDB } from "../../../utils/render";
|
|
4
|
-
|
|
5
|
-
export async function getGatsbyArtifacts(domain: string) {
|
|
6
|
-
const { __ssg } = await getRenderPathsFromDB({ domain });
|
|
7
|
-
|
|
8
|
-
return {
|
|
9
|
-
disposables: [
|
|
10
|
-
path.join(__ssg, "public"),
|
|
11
|
-
path.join(__ssg, "static"),
|
|
12
|
-
path.join(__ssg, ".cache"),
|
|
13
|
-
],
|
|
14
|
-
cacheables: [".cache"],
|
|
15
|
-
};
|
|
16
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { Artifacts, PlaceholderPath } from "../../../types/global";
|
|
2
|
-
import type { RenderMode } from "../../../types/render";
|
|
3
|
-
|
|
4
|
-
interface RenderContextProps<T> {
|
|
5
|
-
domain: string;
|
|
6
|
-
renderMode: RenderMode;
|
|
7
|
-
paths: Record<string, string>;
|
|
8
|
-
ssg: T;
|
|
9
|
-
renderMetadata: {
|
|
10
|
-
proDomainPrefix: string;
|
|
11
|
-
griddoVersion: string;
|
|
12
|
-
buildReportFileName: string;
|
|
13
|
-
};
|
|
14
|
-
cxArtifacts: Artifacts;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Encapsulates the state, configuration, and artifacts for a single SSG
|
|
19
|
-
* render process.
|
|
20
|
-
*
|
|
21
|
-
* This class is instantiated at the beginning of a render and passed through
|
|
22
|
-
* each lifecycle step, providing a centralized and consistent context for all
|
|
23
|
-
* operations. It is agnostic to the specific SSG being used.
|
|
24
|
-
*/
|
|
25
|
-
export class RenderContext<T = unknown> {
|
|
26
|
-
readonly domain: string;
|
|
27
|
-
readonly renderMode: RenderMode;
|
|
28
|
-
readonly paths: Record<PlaceholderPath, string>;
|
|
29
|
-
pagesToCreate: number[] = [];
|
|
30
|
-
pagesToDelete: number[] = [];
|
|
31
|
-
ssg: T;
|
|
32
|
-
renderMetadata: { proDomainPrefix: string; griddoVersion: string; buildReportFileName: string };
|
|
33
|
-
cxArtifacts: Artifacts;
|
|
34
|
-
|
|
35
|
-
constructor({
|
|
36
|
-
domain,
|
|
37
|
-
renderMode,
|
|
38
|
-
ssg,
|
|
39
|
-
paths,
|
|
40
|
-
renderMetadata,
|
|
41
|
-
cxArtifacts,
|
|
42
|
-
}: RenderContextProps<T>) {
|
|
43
|
-
this.domain = domain;
|
|
44
|
-
this.renderMode = renderMode;
|
|
45
|
-
this.paths = paths;
|
|
46
|
-
this.renderMetadata = renderMetadata;
|
|
47
|
-
this.cxArtifacts = cxArtifacts;
|
|
48
|
-
this.ssg = ssg;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
import fsp from "node:fs/promises";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
|
|
5
|
-
// Lista de patrones de los ficheros de assets más importantes.
|
|
6
|
-
// Si estos no cambian, el webpackCompilationHash no debería cambiar.
|
|
7
|
-
const _KEY_ASSET_PATTERNS = [/^app-.*\.js$/, /^framework-.*\.js$/, /^webpack-runtime-.*\.js$/];
|
|
8
|
-
|
|
9
|
-
const KEY_ASSET_PATTERNS = [/\.js$/];
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Calcula los hashes SHA256 del contenido de los assets clave en un directorio.
|
|
13
|
-
* @param dir La ruta al directorio (ej. './public')
|
|
14
|
-
* @returns Un Map donde la clave es el nombre del fichero y el valor es su hash.
|
|
15
|
-
*/
|
|
16
|
-
async function getAssetHashes(dir: string): Promise<Map<string, string>> {
|
|
17
|
-
const assetHashes = new Map<string, string>();
|
|
18
|
-
|
|
19
|
-
try {
|
|
20
|
-
const allFiles = await fsp.readdir(dir);
|
|
21
|
-
const keyAssetFiles = allFiles.filter((fileName) =>
|
|
22
|
-
KEY_ASSET_PATTERNS.some((pattern) => pattern.test(fileName)),
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
for (const fileName of keyAssetFiles) {
|
|
26
|
-
const filePath = join(dir, fileName);
|
|
27
|
-
const fileContent = await fsp.readFile(filePath);
|
|
28
|
-
const hash = createHash("sha256").update(fileContent).digest("hex");
|
|
29
|
-
assetHashes.set(fileName, hash);
|
|
30
|
-
}
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error(`Error procesando el directorio ${dir}:`, error);
|
|
33
|
-
// Si un directorio no existe (ej. el de producción la primera vez),
|
|
34
|
-
// lo tratamos como si no tuviera assets.
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return assetHashes;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Compara los assets clave entre dos directorios de build de Gatsby.
|
|
42
|
-
* @param dir1 Ruta al primer directorio (ej. el de producción)
|
|
43
|
-
* @param dir2 Ruta al segundo directorio (ej. el del nuevo build)
|
|
44
|
-
* @returns `true` si hay diferencias, `false` si son idénticos.
|
|
45
|
-
*/
|
|
46
|
-
export async function getAssetsDiffBetweenRenders(dir1: string, dir2: string): Promise<boolean> {
|
|
47
|
-
const [hashes1, hashes2] = await Promise.all([getAssetHashes(dir1), getAssetHashes(dir2)]);
|
|
48
|
-
|
|
49
|
-
// Si el número de assets clave es diferente, hay cambios.
|
|
50
|
-
if (hashes1.size !== hashes2.size) {
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Comparamos los hashes de cada fichero.
|
|
55
|
-
for (const [fileName, hash1] of hashes1.entries()) {
|
|
56
|
-
const hash2 = hashes2.get(fileName);
|
|
57
|
-
|
|
58
|
-
// Si un fichero existe en el primero pero no en el segundo, hay cambios.
|
|
59
|
-
if (!hash2) {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Si el contenido (hash) de un fichero ha cambiado.
|
|
64
|
-
if (hash1 !== hash2) {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Actualiza el webpackCompilationHash en un único fichero HTML.
|
|
74
|
-
* @param filePath Ruta al fichero HTML.
|
|
75
|
-
* @param newHash El nuevo hash a insertar.
|
|
76
|
-
*/
|
|
77
|
-
export async function patchHtmlFile(filePath: string, newHash: string): Promise<void> {
|
|
78
|
-
try {
|
|
79
|
-
const content = await fsp.readFile(filePath, "utf-8");
|
|
80
|
-
|
|
81
|
-
// Esta expresión regular captura tres grupos:
|
|
82
|
-
// 1. La parte ANTES del hash (window.___webpackCompilationHash=")
|
|
83
|
-
// 2. El hash ANTIGUO ([^"]*)
|
|
84
|
-
// 3. La parte DESPUÉS del hash (";</script>)
|
|
85
|
-
const regex = /(window\.___webpackCompilationHash=")([^"]*)(";<\/script>)/;
|
|
86
|
-
|
|
87
|
-
// Solo reemplazamos el segundo grupo (el hash)
|
|
88
|
-
const newContent = content.replace(regex, `$1${newHash}$3`);
|
|
89
|
-
|
|
90
|
-
if (content === newContent) {
|
|
91
|
-
console.warn(`WARN: No se encontró el hash en ${filePath}. El fichero no fue modificado.`);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
await fsp.writeFile(filePath, newContent, "utf-8");
|
|
96
|
-
} catch (error) {
|
|
97
|
-
console.error(`ERROR: Fallo al procesar el fichero ${filePath}:`, error);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// --- Ejemplo de uso ---
|
|
102
|
-
// async function miScriptDeDeploy() {
|
|
103
|
-
// const dirProduccion = '/ruta/a/produccion/public';
|
|
104
|
-
// const dirNuevoBuild = './public';
|
|
105
|
-
|
|
106
|
-
// const hayDiferencias = await getAssetsDiffBetweenRenders(dirProduccion, dirNuevoBuild);
|
|
107
|
-
|
|
108
|
-
// if (hayDiferencias) {
|
|
109
|
-
// // Lógica para el CAMINO A (cambio de código)
|
|
110
|
-
// } else {
|
|
111
|
-
// // Lógica para el CAMINO B (solo contenido)
|
|
112
|
-
// }
|
|
113
|
-
// }
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import fsp from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
|
|
4
|
-
import { pathExists } from "../../../utils/folders";
|
|
5
|
-
import { getRenderPathsFromDB } from "../../../utils/render";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Update the Griddo's `/dist` dir with the contents from `public` dir only
|
|
9
|
-
* with files of type: js, json and css.
|
|
10
|
-
* TODO: Explicar que el static se copia a assets porque el js va en el subdominio de assets.
|
|
11
|
-
*/
|
|
12
|
-
async function extractAssetsFromDist(domain: string) {
|
|
13
|
-
const { __root } = await getRenderPathsFromDB({ domain });
|
|
14
|
-
|
|
15
|
-
// Archivos (no carpetas) válidos de public
|
|
16
|
-
const filesFromDist = (await fsp.readdir(path.join(__root, "dist"))).filter(
|
|
17
|
-
(file) =>
|
|
18
|
-
path.extname(file) === ".js" ||
|
|
19
|
-
path.extname(file) === ".json" ||
|
|
20
|
-
path.extname(file) === ".css",
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
// Creamos assets si es necesario (needsAssetPrefix)
|
|
24
|
-
await fsp.mkdir(path.join(__root, "assets"), { recursive: true });
|
|
25
|
-
// page-data folder
|
|
26
|
-
await fsp.cp(path.join(__root, "dist", "page-data"), path.join(__root, "assets", "page-data"), {
|
|
27
|
-
preserveTimestamps: true,
|
|
28
|
-
recursive: true,
|
|
29
|
-
});
|
|
30
|
-
// static folder si existe
|
|
31
|
-
if (await pathExists(path.join(__root, "static"))) {
|
|
32
|
-
await fsp.cp(path.join(__root, "static"), path.join(__root, "assets"), {
|
|
33
|
-
force: false,
|
|
34
|
-
preserveTimestamps: true,
|
|
35
|
-
recursive: true,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
// dist/static -> assets/static
|
|
39
|
-
await fsp.cp(path.join(__root, "dist", "static"), path.join(__root, "assets", "static"), {
|
|
40
|
-
force: false,
|
|
41
|
-
preserveTimestamps: true,
|
|
42
|
-
recursive: true,
|
|
43
|
-
});
|
|
44
|
-
// otro static...
|
|
45
|
-
if (await pathExists(path.join(__root, "static"))) {
|
|
46
|
-
await fsp.cp(path.join(__root, "static"), path.join(__root, "dist", domain), {
|
|
47
|
-
preserveTimestamps: true,
|
|
48
|
-
recursive: true,
|
|
49
|
-
force: false,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Copia el resto de archivos...
|
|
54
|
-
for (const file of filesFromDist) {
|
|
55
|
-
const fileSrc = path.join(__root, "dist", file);
|
|
56
|
-
const fileDest = path.join(__root, "assets", file);
|
|
57
|
-
await fsp.cp(fileSrc, fileDest, { preserveTimestamps: true, recursive: true });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { extractAssetsFromDist };
|