@griddo/cx 11.7.4 → 11.7.6-rc.0
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 +25 -228
- package/build/adapters/gatsby/actions/clean.js +10 -0
- package/build/adapters/gatsby/actions/clean.js.map +1 -0
- package/build/adapters/gatsby/actions/close.js +12 -0
- package/build/adapters/gatsby/actions/close.js.map +1 -0
- package/build/adapters/gatsby/actions/data.js +18 -0
- package/build/adapters/gatsby/actions/data.js.map +1 -0
- package/build/adapters/gatsby/actions/healthCheck.js +10 -0
- package/build/adapters/gatsby/actions/healthCheck.js.map +1 -0
- package/build/adapters/gatsby/actions/init.js +9 -0
- package/build/adapters/gatsby/actions/init.js.map +1 -0
- package/build/adapters/gatsby/actions/meta.js +14 -0
- package/build/adapters/gatsby/actions/meta.js.map +1 -0
- package/build/adapters/gatsby/actions/prepare.js +9 -0
- package/build/adapters/gatsby/actions/prepare.js.map +1 -0
- package/build/adapters/gatsby/actions/relocation.js +15 -0
- package/build/adapters/gatsby/actions/relocation.js.map +1 -0
- package/build/adapters/gatsby/actions/restore.js +26 -0
- package/build/adapters/gatsby/actions/restore.js.map +1 -0
- package/build/adapters/gatsby/actions/ssg.js +9 -0
- package/build/adapters/gatsby/actions/ssg.js.map +1 -0
- package/build/adapters/gatsby/actions/sync.js +50 -0
- package/build/adapters/gatsby/actions/sync.js.map +1 -0
- package/build/adapters/gatsby/index.js +74 -0
- package/build/adapters/gatsby/index.js.map +1 -0
- package/build/adapters/gatsby/shared/context.js +25 -0
- package/build/adapters/gatsby/shared/context.js.map +1 -0
- package/build/adapters/gatsby/shared/extract-assets.js +58 -0
- package/build/adapters/gatsby/shared/extract-assets.js.map +1 -0
- package/build/adapters/gatsby/shared/gatsby-build.js +49 -0
- package/build/adapters/gatsby/shared/gatsby-build.js.map +1 -0
- package/build/adapters/gatsby/shared/sync-render.js +208 -0
- package/build/adapters/gatsby/shared/sync-render.js.map +1 -0
- package/build/adapters/gatsby/shared/types.js +3 -0
- package/build/adapters/gatsby/shared/types.js.map +1 -0
- package/build/commands/end-render.js +63 -0
- package/build/commands/end-render.js.map +1 -0
- package/build/commands/prepare-assets-directory.js +32 -0
- package/build/commands/prepare-assets-directory.js.map +1 -0
- package/build/commands/prepare-domains-render.js +138 -0
- package/build/commands/prepare-domains-render.js.map +1 -0
- package/build/commands/reset-render.js +22 -0
- package/build/commands/reset-render.js.map +1 -0
- package/build/commands/start-render.js +35 -0
- package/build/commands/start-render.js.map +1 -0
- package/build/commands/upload-search-content.js +189 -0
- package/build/commands/upload-search-content.js.map +1 -0
- package/build/constants/endpoints.js +42 -0
- package/build/constants/endpoints.js.map +1 -0
- package/build/constants/envs.js +73 -0
- package/build/constants/envs.js.map +1 -0
- package/build/constants/errors.js +89 -0
- package/build/constants/errors.js.map +1 -0
- package/build/exporter/adapters/gatsby/actions/clean.d.ts +3 -0
- package/build/exporter/adapters/gatsby/actions/close.d.ts +3 -0
- package/build/exporter/adapters/gatsby/actions/data.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/init.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/meta.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/prepare.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/relocation.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/restore.d.ts +3 -0
- package/build/exporter/adapters/gatsby/actions/ssg.d.ts +3 -0
- package/build/exporter/adapters/gatsby/actions/sync.d.ts +3 -0
- package/build/exporter/adapters/gatsby/index.d.ts +9 -0
- package/build/exporter/adapters/gatsby/shared/context.d.ts +38 -0
- package/build/exporter/adapters/gatsby/shared/extract-assets.d.ts +7 -0
- package/build/exporter/adapters/gatsby/shared/gatsby-build.d.ts +7 -0
- package/build/exporter/adapters/gatsby/shared/sync-render.d.ts +36 -0
- package/build/exporter/adapters/gatsby/shared/types.d.ts +34 -0
- package/build/exporter/commands/start-render.d.ts +2 -0
- package/build/exporter/commands/upload-search-content.d.ts +2 -0
- package/build/{constants → exporter/constants}/envs.d.ts +1 -7
- package/build/{errors/errors-data.d.ts → exporter/constants/errors.d.ts} +5 -3
- package/build/{services → exporter/services}/auth.d.ts +1 -1
- package/build/exporter/services/db.d.ts +4 -0
- package/build/{services → exporter/services}/robots.d.ts +0 -6
- package/build/{services → exporter/services}/sites.d.ts +5 -2
- package/build/exporter/services/store.d.ts +15 -0
- package/build/{types → exporter/types}/api.d.ts +3 -4
- package/build/{types → exporter/types}/global.d.ts +6 -6
- package/build/{types → exporter/types}/navigation.d.ts +1 -1
- package/build/exporter/types/render.d.ts +50 -0
- package/build/{types → exporter/types}/sites.d.ts +1 -2
- package/build/exporter/utils/artifacts.d.ts +6 -0
- package/build/exporter/utils/brush.d.ts +18 -0
- package/build/{utils → exporter/utils}/cache.d.ts +7 -12
- package/build/{utils/health-checks.d.ts → exporter/utils/check-health.d.ts} +2 -2
- package/build/exporter/utils/core-utils.d.ts +77 -0
- package/build/{utils → exporter/utils}/domains.d.ts +1 -1
- package/build/{errors/index.d.ts → exporter/utils/errors.d.ts} +3 -3
- package/build/exporter/utils/folders.d.ts +66 -0
- package/build/{utils → exporter/utils}/loggin.d.ts +2 -16
- package/build/{utils → exporter/utils}/pages.d.ts +2 -2
- package/build/exporter/utils/render.d.ts +49 -0
- package/build/{utils → exporter/utils}/sites.d.ts +3 -3
- package/build/{utils → exporter/utils}/store.d.ts +10 -38
- package/build/services/auth.js +39 -0
- package/build/services/auth.js.map +1 -0
- package/build/services/db.js +34 -0
- package/build/services/db.js.map +1 -0
- package/build/services/navigation.js +93 -0
- package/build/services/navigation.js.map +1 -0
- package/build/services/reference-fields.js +131 -0
- package/build/services/reference-fields.js.map +1 -0
- package/build/services/robots.js +58 -0
- package/build/services/robots.js.map +1 -0
- package/build/services/sites.js +109 -0
- package/build/services/sites.js.map +1 -0
- package/build/services/store.js +282 -0
- package/build/services/store.js.map +1 -0
- package/build/types/api.js +3 -0
- package/build/types/api.js.map +1 -0
- package/build/types/global.js +3 -0
- package/build/types/global.js.map +1 -0
- package/build/types/navigation.js +3 -0
- package/build/types/navigation.js.map +1 -0
- package/build/types/pages.js +3 -0
- package/build/types/pages.js.map +1 -0
- package/build/types/render.js +10 -0
- package/build/types/render.js.map +1 -0
- package/build/types/sites.js +3 -0
- package/build/types/sites.js.map +1 -0
- package/build/types/templates.js +3 -0
- package/build/types/templates.js.map +1 -0
- package/build/utils/api.js +161 -0
- package/build/utils/api.js.map +1 -0
- package/build/utils/artifacts.js +34 -0
- package/build/utils/artifacts.js.map +1 -0
- package/build/utils/brush.js +30 -0
- package/build/utils/brush.js.map +1 -0
- package/build/utils/cache.js +106 -0
- package/build/utils/cache.js.map +1 -0
- package/build/utils/check-health.js +68 -0
- package/build/utils/check-health.js.map +1 -0
- package/build/utils/core-utils.js +251 -0
- package/build/utils/core-utils.js.map +1 -0
- package/build/utils/domains.js +37 -0
- package/build/utils/domains.js.map +1 -0
- package/build/utils/errors.js +30 -0
- package/build/utils/errors.js.map +1 -0
- package/build/utils/folders.js +339 -0
- package/build/utils/folders.js.map +1 -0
- package/build/utils/images.js +45 -0
- package/build/utils/images.js.map +1 -0
- package/build/utils/instance.js +66 -0
- package/build/utils/instance.js.map +1 -0
- package/build/utils/loggin.js +102 -0
- package/build/utils/loggin.js.map +1 -0
- package/build/utils/pages.js +359 -0
- package/build/utils/pages.js.map +1 -0
- package/build/utils/render.js +144 -0
- package/build/utils/render.js.map +1 -0
- package/build/utils/sites.js +239 -0
- package/build/utils/sites.js.map +1 -0
- package/build/utils/store.js +193 -0
- package/build/utils/store.js.map +1 -0
- package/exporter/adapters/gatsby/actions/clean.ts +14 -0
- package/exporter/adapters/gatsby/actions/close.ts +17 -0
- package/exporter/adapters/gatsby/actions/data.ts +25 -0
- package/exporter/adapters/gatsby/actions/healthCheck.ts +10 -0
- package/exporter/adapters/gatsby/actions/init.ts +12 -0
- package/exporter/adapters/gatsby/actions/meta.ts +18 -0
- package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
- package/exporter/adapters/gatsby/actions/relocation.ts +15 -0
- package/exporter/adapters/gatsby/actions/restore.ts +36 -0
- package/exporter/adapters/gatsby/actions/ssg.ts +12 -0
- package/exporter/adapters/gatsby/actions/sync.ts +70 -0
- package/exporter/adapters/gatsby/index.ts +60 -146
- package/exporter/adapters/gatsby/shared/context.ts +50 -0
- package/exporter/adapters/gatsby/shared/extract-assets.ts +61 -0
- package/exporter/adapters/gatsby/shared/gatsby-build.ts +54 -0
- package/exporter/adapters/gatsby/shared/sync-render.ts +294 -0
- package/exporter/adapters/gatsby/shared/types.ts +35 -0
- package/exporter/build-esbuild.noop +42 -0
- package/exporter/build.sh +5 -38
- package/exporter/commands/end-render.ts +56 -81
- package/exporter/commands/prepare-assets-directory.ts +33 -0
- package/exporter/commands/prepare-domains-render.ts +149 -31
- package/exporter/commands/reset-render.ts +12 -3
- package/exporter/commands/start-render.ts +18 -47
- package/exporter/commands/upload-search-content.ts +206 -21
- package/exporter/constants/envs.ts +59 -51
- package/exporter/{errors/errors-data.ts → constants/errors.ts} +24 -15
- package/exporter/services/auth.ts +7 -6
- package/exporter/services/db.ts +32 -0
- package/exporter/services/navigation.ts +4 -10
- package/exporter/services/reference-fields.ts +8 -23
- package/exporter/services/robots.ts +8 -15
- package/exporter/services/sites.ts +35 -24
- package/exporter/services/store.ts +118 -76
- package/exporter/types/api.ts +24 -27
- package/exporter/types/global.ts +8 -10
- package/exporter/types/navigation.ts +1 -1
- package/exporter/types/pages.ts +2 -3
- package/exporter/types/render.ts +59 -0
- package/exporter/types/sites.ts +1 -2
- package/exporter/utils/api.ts +46 -82
- package/exporter/{artifacts/index.ts → utils/artifacts.ts} +9 -8
- package/exporter/utils/brush.ts +34 -0
- package/exporter/utils/cache.ts +34 -59
- package/exporter/utils/check-health.ts +79 -0
- package/exporter/utils/core-utils.ts +86 -247
- package/exporter/utils/domains.ts +10 -7
- package/exporter/{errors/index.ts → utils/errors.ts} +10 -9
- package/exporter/utils/folders.ts +161 -92
- package/exporter/utils/images.ts +1 -6
- package/exporter/utils/instance.ts +9 -12
- package/exporter/utils/loggin.ts +24 -89
- package/exporter/utils/pages.ts +23 -88
- package/exporter/utils/render.ts +147 -48
- package/exporter/utils/sites.ts +67 -77
- package/exporter/utils/store.ts +85 -178
- package/gatsby-browser.tsx +41 -58
- package/gatsby-config.ts +6 -12
- package/gatsby-node.ts +30 -89
- package/gatsby-ssr.tsx +2 -1
- package/package.json +32 -73
- package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
- package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
- package/{exporter/react → react}/Favicon/index.tsx +1 -7
- package/{exporter/react → react}/GriddoIntegrations/index.tsx +6 -14
- package/{exporter/react → react}/GriddoIntegrations/utils.ts +4 -9
- package/{build/react/index.d.ts → react/index.tsx} +1 -0
- package/src/components/Head.tsx +13 -46
- package/src/components/template.tsx +8 -30
- package/src/gatsby-node-utils.ts +91 -2
- package/src/html.tsx +2 -11
- package/src/types.ts +5 -5
- package/start-render.js +1 -3
- package/tsconfig.json +3 -2
- package/build/adapters/gatsby/index.d.ts +0 -4
- package/build/adapters/gatsby/utils.d.ts +0 -22
- package/build/artifacts/index.d.ts +0 -6
- package/build/commands/move-assets.d.ts +0 -1
- package/build/commands/prepare-domains-render.d.ts +0 -1
- package/build/constants/index.d.ts +0 -57
- package/build/end-render.js +0 -74
- package/build/end-render.js.map +0 -7
- package/build/index.d.ts +0 -29
- package/build/index.js +0 -73
- package/build/index.js.map +0 -7
- package/build/prepare-domains-render.js +0 -73
- package/build/prepare-domains-render.js.map +0 -7
- package/build/react/Favicon/index.d.ts +0 -5
- package/build/react/Favicon/utils.d.ts +0 -9
- package/build/react/GriddoIntegrations/index.d.ts +0 -20
- package/build/react/GriddoIntegrations/utils.d.ts +0 -26
- package/build/react/index.js +0 -3
- package/build/registers/api.d.ts +0 -9
- package/build/registers/gatsby.d.ts +0 -9
- package/build/registers/index.d.ts +0 -3
- package/build/reset-render.js +0 -74
- package/build/reset-render.js.map +0 -7
- package/build/services/domains.d.ts +0 -6
- package/build/services/register.d.ts +0 -36
- package/build/services/settings.d.ts +0 -4
- package/build/services/store.d.ts +0 -6
- package/build/start-render.js +0 -100
- package/build/start-render.js.map +0 -7
- package/build/upload-search-content.js +0 -74
- package/build/upload-search-content.js.map +0 -7
- package/build/utils/alerts.d.ts +0 -3
- package/build/utils/core-utils.d.ts +0 -107
- package/build/utils/create-build-data.d.ts +0 -8
- package/build/utils/folders.d.ts +0 -53
- package/build/utils/render.d.ts +0 -13
- package/build/utils/searches.d.ts +0 -15
- package/cx.config.d.ts +0 -5
- package/cx.config.js +0 -36
- package/exporter/adapters/gatsby/utils.ts +0 -161
- package/exporter/artifacts/README.md +0 -34
- package/exporter/commands/move-assets.ts +0 -11
- package/exporter/constants/index.ts +0 -129
- package/exporter/index.ts +0 -82
- package/exporter/react/index.tsx +0 -11
- package/exporter/registers/api.ts +0 -14
- package/exporter/registers/gatsby.ts +0 -14
- package/exporter/registers/index.ts +0 -4
- package/exporter/services/domains.ts +0 -16
- package/exporter/services/register.ts +0 -113
- package/exporter/services/settings.ts +0 -17
- package/exporter/utils/alerts.ts +0 -29
- package/exporter/utils/create-build-data.ts +0 -17
- package/exporter/utils/health-checks.ts +0 -64
- package/exporter/utils/searches.ts +0 -179
- package/src/README.md +0 -7
- package/build/{commands → exporter/commands}/end-render.d.ts +0 -0
- package/build/{commands/reset-render.d.ts → exporter/commands/prepare-assets-directory.d.ts} +0 -0
- package/build/{commands/start-render.d.ts → exporter/commands/prepare-domains-render.d.ts} +0 -0
- package/build/{commands/upload-search-content.d.ts → exporter/commands/reset-render.d.ts} +0 -0
- package/build/{constants → exporter/constants}/endpoints.d.ts +0 -0
- package/build/{services → exporter/services}/navigation.d.ts +0 -0
- package/build/{services → exporter/services}/reference-fields.d.ts +0 -0
- package/build/{types → exporter/types}/pages.d.ts +1 -1
- /package/build/{types → exporter/types}/templates.d.ts +0 -0
- /package/build/{utils → exporter/utils}/api.d.ts +0 -0
- /package/build/{utils → exporter/utils}/images.d.ts +0 -0
- /package/build/{utils → exporter/utils}/instance.d.ts +0 -0
- /package/{exporter/react → react}/Favicon/utils.ts +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { MakeDirectoryOptions } from "node:fs";
|
|
2
|
+
|
|
3
|
+
import fsp from "node:fs/promises";
|
|
2
4
|
import path from "node:path";
|
|
3
5
|
|
|
4
|
-
import
|
|
6
|
+
import { findUp, findUpSync } from "find-up-simple";
|
|
5
7
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
+
import { ArtifactError } from "../constants/errors";
|
|
9
|
+
import { walkStore } from "./core-utils";
|
|
10
|
+
import { throwError } from "./errors";
|
|
8
11
|
import { verboseLog } from "./loggin";
|
|
9
|
-
import { ArtifactError } from "../errors/errors-data";
|
|
10
|
-
|
|
11
|
-
const config = getConfig();
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Remove an empty directory from the basePath recursively.
|
|
@@ -16,37 +16,34 @@ const config = getConfig();
|
|
|
16
16
|
*
|
|
17
17
|
* @param baseDir - The base directory.
|
|
18
18
|
*/
|
|
19
|
-
function deleteDisposableSiteDirs() {
|
|
20
|
-
|
|
21
|
-
const baseDir = path.join(__cx, "dist");
|
|
22
|
-
|
|
23
|
-
if (!fs.existsSync(baseDir)) {
|
|
19
|
+
async function deleteDisposableSiteDirs(baseDir: string) {
|
|
20
|
+
if (!(await pathExists(baseDir))) {
|
|
24
21
|
return;
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
const sitesDirs =
|
|
28
|
-
.
|
|
29
|
-
|
|
24
|
+
const sitesDirs = (await fsp.readdir(baseDir, { withFileTypes: true })).filter((file) =>
|
|
25
|
+
file.isDirectory(),
|
|
26
|
+
);
|
|
30
27
|
|
|
31
28
|
for (const siteDir of sitesDirs) {
|
|
32
29
|
const sitePath = path.join(baseDir, siteDir.name);
|
|
33
|
-
if (siteIsEmpty(sitePath)) {
|
|
34
|
-
|
|
30
|
+
if (await siteIsEmpty(sitePath)) {
|
|
31
|
+
await fsp.rm(sitePath, { recursive: true });
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
35
|
|
|
39
36
|
/**
|
|
40
|
-
* Creates multiple directories.
|
|
37
|
+
* Creates multiple artifact directories.
|
|
41
38
|
*
|
|
42
39
|
* @param dirs - An array of directory paths.
|
|
43
40
|
* @param options - Same option as `fs.mkdirSync()`
|
|
44
41
|
*/
|
|
45
|
-
function
|
|
42
|
+
async function createDirs(dirs: Array<string>, options?: MakeDirectoryOptions) {
|
|
46
43
|
for (const dir of dirs) {
|
|
47
44
|
try {
|
|
48
|
-
if (!
|
|
49
|
-
|
|
45
|
+
if (!(await pathExists(dir))) {
|
|
46
|
+
await fsp.mkdir(dir, { recursive: true, ...options });
|
|
50
47
|
verboseLog(`create directory: ${dir}`);
|
|
51
48
|
}
|
|
52
49
|
} catch (error) {
|
|
@@ -55,10 +52,10 @@ function createArtifacts(dirs: Array<string>, options?: MakeDirectoryOptions) {
|
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
|
|
58
|
-
function
|
|
55
|
+
async function renamePath(src: string, dst: string) {
|
|
59
56
|
try {
|
|
60
|
-
if (
|
|
61
|
-
|
|
57
|
+
if (await pathExists(src)) {
|
|
58
|
+
await fsp.rename(src, dst);
|
|
62
59
|
verboseLog(`rename ${src} to ${dst}`);
|
|
63
60
|
}
|
|
64
61
|
} catch (error) {
|
|
@@ -74,7 +71,7 @@ function renameArtifact(src: string, dst: string) {
|
|
|
74
71
|
* @param dirs - Directories to copy.
|
|
75
72
|
* @param options.withBackup - Create a previous backup before copy.
|
|
76
73
|
*/
|
|
77
|
-
function
|
|
74
|
+
async function copyDirs(
|
|
78
75
|
src: string,
|
|
79
76
|
dst: string,
|
|
80
77
|
dirs: Array<string>,
|
|
@@ -88,41 +85,39 @@ function copyArtifacts(
|
|
|
88
85
|
const dstCompose = path.join(dst, dir);
|
|
89
86
|
|
|
90
87
|
// The dir we want to copy, doesn't exist.
|
|
91
|
-
if (!
|
|
92
|
-
console.log(
|
|
93
|
-
`(Maybe first render) Source directory does not exist: ${srcCompose}`,
|
|
94
|
-
);
|
|
88
|
+
if (!(await pathExists(srcCompose))) {
|
|
89
|
+
console.log(`(Maybe first render) Source directory does not exist: ${srcCompose}`);
|
|
95
90
|
continue;
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
// Create the backup
|
|
99
94
|
if (withBackup) {
|
|
100
|
-
createBackup(dstCompose);
|
|
95
|
+
await createBackup(dstCompose);
|
|
101
96
|
verboseLog(`create backup: ${dstCompose}`);
|
|
102
97
|
}
|
|
103
98
|
|
|
104
99
|
// Copy directory
|
|
105
100
|
try {
|
|
106
101
|
// First clean destination
|
|
107
|
-
if (
|
|
108
|
-
|
|
102
|
+
if (await pathExists(dstCompose)) {
|
|
103
|
+
await fsp.rm(dstCompose, { recursive: true, force: true });
|
|
109
104
|
verboseLog(`clean destination: ${dstCompose}`);
|
|
110
105
|
}
|
|
111
106
|
|
|
112
107
|
// Then copy src to dst
|
|
113
|
-
|
|
108
|
+
await fsp.cp(srcCompose, dstCompose, {
|
|
114
109
|
recursive: true,
|
|
115
110
|
preserveTimestamps: true,
|
|
116
111
|
});
|
|
117
112
|
verboseLog(`copy: ${srcCompose} to ${dstCompose}`);
|
|
118
113
|
|
|
119
114
|
if (withBackup) {
|
|
120
|
-
deleteBackup(dstCompose);
|
|
115
|
+
await deleteBackup(dstCompose);
|
|
121
116
|
verboseLog(`delete backup: ${dstCompose}`);
|
|
122
117
|
}
|
|
123
118
|
} catch (error) {
|
|
124
119
|
if (withBackup) {
|
|
125
|
-
restoreBackup(dstCompose);
|
|
120
|
+
await restoreBackup(dstCompose);
|
|
126
121
|
console.log("Backup has been restored.");
|
|
127
122
|
}
|
|
128
123
|
|
|
@@ -139,7 +134,7 @@ function copyArtifacts(
|
|
|
139
134
|
* @param dirs - Directories to move.
|
|
140
135
|
* @param options - Options.
|
|
141
136
|
*/
|
|
142
|
-
function
|
|
137
|
+
async function moveDirs(
|
|
143
138
|
src: string,
|
|
144
139
|
dst: string,
|
|
145
140
|
dirs: Array<string>,
|
|
@@ -151,29 +146,29 @@ function moveArtifacts(
|
|
|
151
146
|
const srcCompose = path.join(src, dir);
|
|
152
147
|
const dstCompose = path.join(dst, dir);
|
|
153
148
|
|
|
154
|
-
if (!
|
|
149
|
+
if (!(await pathExists(srcCompose))) {
|
|
155
150
|
continue;
|
|
156
151
|
}
|
|
157
152
|
|
|
158
153
|
if (withBackup) {
|
|
159
|
-
createBackup(dstCompose);
|
|
154
|
+
await createBackup(dstCompose);
|
|
160
155
|
}
|
|
161
156
|
|
|
162
157
|
try {
|
|
163
158
|
// Clean destination
|
|
164
|
-
if (override &&
|
|
165
|
-
|
|
159
|
+
if (override && (await pathExists(dstCompose))) {
|
|
160
|
+
await fsp.rm(dstCompose, { recursive: true, force: true });
|
|
166
161
|
}
|
|
167
162
|
|
|
168
|
-
|
|
163
|
+
await fsp.rename(srcCompose, dstCompose);
|
|
169
164
|
verboseLog(`moved: ${srcCompose} to ${dstCompose}`);
|
|
170
165
|
|
|
171
166
|
if (withBackup) {
|
|
172
|
-
deleteBackup(dstCompose);
|
|
167
|
+
await deleteBackup(dstCompose);
|
|
173
168
|
}
|
|
174
169
|
} catch (error) {
|
|
175
170
|
if (withBackup) {
|
|
176
|
-
restoreBackup(dstCompose);
|
|
171
|
+
await restoreBackup(dstCompose);
|
|
177
172
|
console.log("Backup has been restored.");
|
|
178
173
|
}
|
|
179
174
|
|
|
@@ -185,30 +180,23 @@ function moveArtifacts(
|
|
|
185
180
|
/**
|
|
186
181
|
* Removes multiple artifact directories.
|
|
187
182
|
*
|
|
188
|
-
* @param
|
|
183
|
+
* @param dirs - An array of directory paths.
|
|
189
184
|
*/
|
|
190
|
-
function
|
|
191
|
-
for (const dir of
|
|
192
|
-
if (!dir) {
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
|
|
185
|
+
async function removeDirs(dirs: Array<string>) {
|
|
186
|
+
for (const dir of dirs) {
|
|
196
187
|
try {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
200
|
-
verboseLog(`artifact (${kind}) removed: ${dir}`);
|
|
201
|
-
}
|
|
188
|
+
await fsp.rm(dir, { recursive: true, force: true });
|
|
189
|
+
verboseLog(`artifact removed: ${dir}`);
|
|
202
190
|
} catch (error) {
|
|
203
191
|
throwError(ArtifactError, error);
|
|
204
192
|
}
|
|
205
193
|
}
|
|
206
194
|
}
|
|
207
195
|
|
|
208
|
-
function restoreBackup(src: string, suffix = "-BACKUP") {
|
|
196
|
+
async function restoreBackup(src: string, suffix = "-BACKUP") {
|
|
209
197
|
const dst = src + suffix;
|
|
210
198
|
try {
|
|
211
|
-
|
|
199
|
+
await fsp.rename(dst, src);
|
|
212
200
|
console.log(`Backup ${dst} has been restored`);
|
|
213
201
|
} catch (error) {
|
|
214
202
|
console.log(error);
|
|
@@ -216,15 +204,15 @@ function restoreBackup(src: string, suffix = "-BACKUP") {
|
|
|
216
204
|
}
|
|
217
205
|
}
|
|
218
206
|
|
|
219
|
-
function deleteBackup(src: string, suffix = "-BACKUP") {
|
|
207
|
+
async function deleteBackup(src: string, suffix = "-BACKUP") {
|
|
220
208
|
const dst = src + suffix;
|
|
221
209
|
|
|
222
|
-
if (!
|
|
210
|
+
if (!(await pathExists(dst))) {
|
|
223
211
|
return;
|
|
224
212
|
}
|
|
225
213
|
|
|
226
214
|
try {
|
|
227
|
-
|
|
215
|
+
await fsp.rm(dst, { recursive: true, force: true });
|
|
228
216
|
console.log(`Backup ${dst} has been deleted`);
|
|
229
217
|
} catch (error) {
|
|
230
218
|
console.log(error);
|
|
@@ -232,20 +220,20 @@ function deleteBackup(src: string, suffix = "-BACKUP") {
|
|
|
232
220
|
}
|
|
233
221
|
}
|
|
234
222
|
|
|
235
|
-
function createBackup(src: string, suffix = "-BACKUP") {
|
|
223
|
+
async function createBackup(src: string, suffix = "-BACKUP") {
|
|
236
224
|
const dst = src + suffix;
|
|
237
225
|
|
|
238
|
-
if (!
|
|
226
|
+
if (!(await pathExists(src))) {
|
|
239
227
|
return;
|
|
240
228
|
}
|
|
241
229
|
|
|
242
|
-
if (
|
|
230
|
+
if (await pathExists(dst)) {
|
|
243
231
|
console.log(`Destination ${dst} already exists`);
|
|
244
232
|
return;
|
|
245
233
|
}
|
|
246
234
|
|
|
247
235
|
try {
|
|
248
|
-
|
|
236
|
+
await fsp.rename(src, dst);
|
|
249
237
|
console.log(`Backup of ${src} has been created in ${dst}`);
|
|
250
238
|
} catch (error) {
|
|
251
239
|
console.log(`Error while coping ${src} to ${dst} backup`);
|
|
@@ -254,25 +242,23 @@ function createBackup(src: string, suffix = "-BACKUP") {
|
|
|
254
242
|
}
|
|
255
243
|
|
|
256
244
|
/**
|
|
257
|
-
* Elimina todas las páginas del store (de todos los sites) cuyo nombre empiece
|
|
258
|
-
* Estas páginas son "virtuales" y no tienen ids desde API por
|
|
259
|
-
*
|
|
245
|
+
* Elimina todas las páginas del store (de todos los sites) cuyo nombre empiece
|
|
246
|
+
* con un guión "-". Estas páginas son "virtuales" y no tienen ids desde API por
|
|
247
|
+
* lo que mantenerlas en el store es un problema cuando se hacen modificaciones
|
|
248
|
+
* en la página "madre". La solución por ahora es borrarlas del store y
|
|
249
|
+
* rehacerlas en todos los renders.
|
|
260
250
|
*/
|
|
261
|
-
async function
|
|
262
|
-
const { __cx } = config.paths();
|
|
263
|
-
const storePath = path.join(__cx, "store");
|
|
264
|
-
|
|
251
|
+
async function removeVirtualPages(dirPath: string) {
|
|
265
252
|
try {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
for (const filePath of allJsonPageFilesPath) {
|
|
253
|
+
// Procesamos archivos uno por uno para evitar cargar todos en memoria
|
|
254
|
+
for await (const filePath of walkStore(dirPath)) {
|
|
269
255
|
if (path.basename(filePath).startsWith("-")) {
|
|
270
|
-
|
|
256
|
+
await fsp.unlink(filePath);
|
|
271
257
|
}
|
|
272
258
|
}
|
|
273
259
|
} catch (error) {
|
|
274
260
|
console.info(
|
|
275
|
-
|
|
261
|
+
`${dirPath} folder does not exist. Skipping multipage or static list template cleaning.`,
|
|
276
262
|
error,
|
|
277
263
|
);
|
|
278
264
|
}
|
|
@@ -281,15 +267,13 @@ async function removeVirtualPagesFromStore() {
|
|
|
281
267
|
/**
|
|
282
268
|
* Return true if the site folder is empty or only has xml files. (Recursively)
|
|
283
269
|
*/
|
|
284
|
-
function siteIsEmpty(sitePath: string) {
|
|
285
|
-
const siteFiles =
|
|
286
|
-
.
|
|
270
|
+
async function siteIsEmpty(sitePath: string) {
|
|
271
|
+
const siteFiles = (
|
|
272
|
+
await fsp.readdir(sitePath, {
|
|
287
273
|
withFileTypes: true,
|
|
288
274
|
recursive: true,
|
|
289
275
|
})
|
|
290
|
-
|
|
291
|
-
(file) => file.isFile() && !path.basename(file.name).startsWith("."),
|
|
292
|
-
);
|
|
276
|
+
).filter((file) => file.isFile() && !path.basename(file.name).startsWith("."));
|
|
293
277
|
|
|
294
278
|
const xmlFiles = siteFiles.filter((file) => file.name.endsWith(".xml"));
|
|
295
279
|
|
|
@@ -298,23 +282,108 @@ function siteIsEmpty(sitePath: string) {
|
|
|
298
282
|
}
|
|
299
283
|
}
|
|
300
284
|
|
|
301
|
-
function prependFileSync(filePath: string, content: string) {
|
|
285
|
+
async function prependFileSync(filePath: string, content: string) {
|
|
302
286
|
let currentContent = "";
|
|
303
287
|
|
|
304
|
-
if (
|
|
305
|
-
currentContent =
|
|
288
|
+
if (await pathExists(filePath)) {
|
|
289
|
+
currentContent = await fsp.readFile(filePath, "utf8");
|
|
306
290
|
}
|
|
307
291
|
|
|
308
|
-
|
|
292
|
+
await fsp.writeFile(filePath, content + currentContent, "utf8");
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Delete empty directories from the given directory in a recursive way.
|
|
297
|
+
*/
|
|
298
|
+
async function deleteEmptyDirectories(dirPath: string) {
|
|
299
|
+
try {
|
|
300
|
+
const stats = await fsp.stat(dirPath);
|
|
301
|
+
|
|
302
|
+
// Si no es un directorio, no hacemos nada
|
|
303
|
+
if (!stats.isDirectory()) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
let filesInDirectory: string[];
|
|
308
|
+
try {
|
|
309
|
+
filesInDirectory = await fsp.readdir(dirPath);
|
|
310
|
+
} catch (err: any) {
|
|
311
|
+
// Si el directorio no existe o no se puede leer (ej. permisos), lo saltamos.
|
|
312
|
+
if (err.code === "ENOENT") {
|
|
313
|
+
console.warn(`El directorio "${dirPath}" no existe. Se omite.`);
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
console.error(`Error al leer el directorio "${dirPath}":`, err);
|
|
317
|
+
throw err; // Re-lanza el error para que sea manejado por el llamador
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Recorrer los contenidos del directorio
|
|
321
|
+
for (const file of filesInDirectory) {
|
|
322
|
+
const fullPath = path.join(dirPath, file);
|
|
323
|
+
await deleteEmptyDirectories(fullPath); // Llamada recursiva síncrona
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// Después de procesar todos los subdirectorios, verifica si el directorio actual está vacío
|
|
327
|
+
const remainingFiles = await fsp.readdir(dirPath);
|
|
328
|
+
|
|
329
|
+
if (remainingFiles.length === 0) {
|
|
330
|
+
try {
|
|
331
|
+
await fsp.rmdir(dirPath);
|
|
332
|
+
console.log(`Remove empty directory: ${dirPath}`);
|
|
333
|
+
} catch (err: any) {
|
|
334
|
+
// Puede que haya habido un problema de concurrencia o permisos
|
|
335
|
+
if (err.code === "ENOENT") {
|
|
336
|
+
console.warn(
|
|
337
|
+
`El directorio "${dirPath}" ya no existe. Posiblemente fue borrado por otra operación.`,
|
|
338
|
+
);
|
|
339
|
+
} else {
|
|
340
|
+
console.error(`Error al borrar el directorio "${dirPath}":`, err);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
} catch (err: any) {
|
|
345
|
+
if (err.code === "ENOENT") {
|
|
346
|
+
// El directorio ya no existe, no es un error para nosotros en este contexto
|
|
347
|
+
console.warn(`El directorio "${dirPath}" no existe o ya ha sido procesado.`);
|
|
348
|
+
} else {
|
|
349
|
+
console.error(`Error general al procesar "${dirPath}":`, err);
|
|
350
|
+
throw err;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
async function pathExists(dir: string) {
|
|
356
|
+
try {
|
|
357
|
+
await fsp.access(dir);
|
|
358
|
+
return true;
|
|
359
|
+
} catch {
|
|
360
|
+
return false;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
async function pkgDir(options?: { readonly cwd?: string }) {
|
|
365
|
+
const { cwd } = options || {};
|
|
366
|
+
const filePath = await findUp("package.json", { cwd });
|
|
367
|
+
return filePath && path.dirname(filePath);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
function pkgDirSync(options?: { readonly cwd?: string }) {
|
|
371
|
+
const { cwd } = options || {};
|
|
372
|
+
const filePath = findUpSync("package.json", { cwd });
|
|
373
|
+
return filePath && path.dirname(filePath);
|
|
309
374
|
}
|
|
310
375
|
|
|
311
376
|
export {
|
|
312
|
-
|
|
313
|
-
|
|
377
|
+
copyDirs,
|
|
378
|
+
createDirs,
|
|
314
379
|
deleteDisposableSiteDirs,
|
|
315
|
-
|
|
380
|
+
deleteEmptyDirectories,
|
|
381
|
+
moveDirs,
|
|
382
|
+
pathExists,
|
|
383
|
+
pkgDir,
|
|
384
|
+
pkgDirSync,
|
|
316
385
|
prependFileSync,
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
386
|
+
removeDirs,
|
|
387
|
+
removeVirtualPages,
|
|
388
|
+
renamePath,
|
|
320
389
|
};
|
package/exporter/utils/images.ts
CHANGED
|
@@ -13,12 +13,7 @@ import type { Fields } from "@griddo/core";
|
|
|
13
13
|
* formatImage("https://images.griddo.io/tree", 300, 200, "jpg")
|
|
14
14
|
* // https://images.griddo.io/tree/w/300/h/200/f/jpg
|
|
15
15
|
*/
|
|
16
|
-
function formatImage(
|
|
17
|
-
image: Fields.Image | string,
|
|
18
|
-
width: number,
|
|
19
|
-
height: number,
|
|
20
|
-
format = "jpg",
|
|
21
|
-
) {
|
|
16
|
+
function formatImage(image: Fields.Image | string, width: number, height: number, format = "jpg") {
|
|
22
17
|
const url = typeof image === "string" ? image : image?.url;
|
|
23
18
|
|
|
24
19
|
if (!url) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import pkgDir from "pkg-dir";
|
|
3
|
+
import { findUpSync } from "find-up-simple";
|
|
5
4
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { NoJSConfigFileFound } from "../constants/errors";
|
|
6
|
+
import { throwError } from "./errors";
|
|
7
|
+
import { pkgDirSync } from "./folders";
|
|
8
8
|
|
|
9
9
|
// Consts
|
|
10
10
|
const isComponentLibrary = __dirname.includes("node_modules");
|
|
@@ -17,22 +17,18 @@ const componentLibraryPathAlias = getComponentsLibAliases();
|
|
|
17
17
|
*/
|
|
18
18
|
function resolveComponentsPath(customPath = "") {
|
|
19
19
|
return isComponentLibrary
|
|
20
|
-
? path.resolve(
|
|
21
|
-
: path.resolve(
|
|
22
|
-
pkgDir.sync(__dirname) as string,
|
|
23
|
-
"../griddo-components",
|
|
24
|
-
customPath,
|
|
25
|
-
);
|
|
20
|
+
? path.resolve(pkgDirSync({ cwd: __dirname }) as string, "../../../", customPath)
|
|
21
|
+
: path.resolve(pkgDirSync({ cwd: __dirname }) as string, "../griddo-components", customPath);
|
|
26
22
|
}
|
|
27
23
|
|
|
28
24
|
/**
|
|
29
25
|
* Return the instance or monorepo components {t|j}sconfig.json file.
|
|
30
26
|
*/
|
|
31
27
|
function getComponentsJSConfig() {
|
|
32
|
-
const jsConfigPath =
|
|
28
|
+
const jsConfigPath = findUpSync("jsconfig.json", {
|
|
33
29
|
cwd: resolveComponentsPath(),
|
|
34
30
|
});
|
|
35
|
-
const tsConfigPath =
|
|
31
|
+
const tsConfigPath = findUpSync("tsconfig.json", {
|
|
36
32
|
cwd: resolveComponentsPath(),
|
|
37
33
|
});
|
|
38
34
|
|
|
@@ -57,6 +53,7 @@ function getComponentsLibAliases() {
|
|
|
57
53
|
const absolutePath = resolveComponentsPath(relativePathToDir);
|
|
58
54
|
|
|
59
55
|
return {
|
|
56
|
+
// biome-ignore lint/performance/noAccumulatingSpread: to be fixed
|
|
60
57
|
...currentAlias,
|
|
61
58
|
[aliasKey]: absolutePath,
|
|
62
59
|
};
|