@griddo/cx 11.9.17-rc.1 → 11.10.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 +13 -240
- package/build/commands/end-render.d.ts +0 -1
- package/build/commands/end-render.js +31 -0
- package/build/commands/end-render.js.map +7 -0
- package/build/commands/prepare-assets-directory.js +9 -0
- package/build/commands/prepare-assets-directory.js.map +7 -0
- package/build/commands/prepare-domains-render.js +40 -0
- package/build/commands/prepare-domains-render.js.map +7 -0
- package/build/commands/reset-render.d.ts +0 -1
- package/build/commands/reset-render.js +31 -0
- package/build/commands/reset-render.js.map +7 -0
- package/build/commands/single-domain-upload-search-content.d.ts +1 -0
- package/build/commands/start-render.d.ts +0 -1
- package/build/commands/start-render.js +66 -0
- package/build/commands/start-render.js.map +7 -0
- package/build/commands/upload-search-content.d.ts +0 -1
- package/build/commands/upload-search-content.js +32 -0
- package/build/commands/upload-search-content.js.map +7 -0
- package/build/core/GriddoLog.d.ts +16 -0
- package/build/{utils/health-checks.d.ts → core/check-env-health.d.ts} +4 -2
- package/build/core/db-class.d.ts +11 -0
- package/build/core/db.d.ts +4 -0
- package/build/core/dist-rollback.d.ts +11 -0
- package/build/core/errors.d.ts +26 -0
- package/build/core/fs.d.ts +69 -0
- package/build/core/life-cycle.d.ts +26 -0
- package/build/core/logger.d.ts +18 -0
- package/build/core/objects.d.ts +11 -0
- package/build/core/print-logos.d.ts +5 -0
- package/build/index.d.ts +10 -29
- package/build/index.js +404 -73
- package/build/react/DynamicScript/index.d.ts +4 -0
- package/build/react/GriddoFavicon/index.d.ts +4 -0
- package/build/react/GriddoIntegrations/index.d.ts +3 -4
- package/build/react/GriddoIntegrations/utils.d.ts +7 -6
- package/build/react/GriddoOpenGraph/index.d.ts +10 -0
- package/build/react/index.d.ts +3 -2
- package/build/react/index.js +1 -3
- package/build/{utils → services}/api.d.ts +1 -1
- package/build/services/auth.d.ts +2 -5
- package/build/services/domains.d.ts +3 -4
- package/build/services/manage-sites.d.ts +22 -0
- package/build/services/manage-store.d.ts +32 -0
- package/build/services/navigation.d.ts +16 -16
- package/build/{utils → services}/pages.d.ts +3 -3
- package/build/services/reference-fields.d.ts +3 -3
- package/build/services/render-artifacts.d.ts +6 -0
- package/build/services/render.d.ts +70 -0
- package/build/services/robots.d.ts +2 -19
- package/build/services/sitemaps.d.ts +5 -0
- package/build/services/sites.d.ts +8 -5
- package/build/services/store.d.ts +10 -1
- package/build/shared/context.d.ts +36 -0
- package/build/shared/envs.d.ts +17 -0
- package/build/{errors/errors-data.d.ts → shared/errors.d.ts} +5 -3
- package/build/shared/npm-modules/brush.d.ts +18 -0
- package/build/shared/npm-modules/find-up-simple.d.ts +34 -0
- package/build/shared/npm-modules/pkg-dir.d.ts +7 -0
- package/build/shared/npm-modules/xml-parser.d.ts +4 -0
- package/build/{types → shared/types}/api.d.ts +18 -18
- package/build/{types → shared/types}/global.d.ts +15 -16
- package/build/{types → shared/types}/navigation.d.ts +5 -5
- package/build/{types → shared/types}/pages.d.ts +9 -9
- package/build/shared/types/render.d.ts +56 -0
- package/build/{types → shared/types}/sites.d.ts +18 -19
- package/build/shared/types.d.ts +15 -0
- package/build/ssg-adapters/gatsby/actions/clean.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/close.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/data.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/healthCheck.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/init.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/logs.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/meta.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/prepare.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/relocation.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/restore.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/ssg.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/sync.d.ts +3 -0
- package/build/ssg-adapters/gatsby/index.d.ts +9 -0
- package/build/ssg-adapters/gatsby/shared/artifacts.d.ts +4 -0
- package/build/ssg-adapters/gatsby/shared/diff-assets.d.ts +15 -0
- package/build/ssg-adapters/gatsby/shared/extract-assets.d.ts +7 -0
- package/build/ssg-adapters/gatsby/shared/gatsby-build.d.ts +7 -0
- package/build/ssg-adapters/gatsby/shared/render-rollback.d.ts +18 -0
- package/build/ssg-adapters/gatsby/shared/sync-render.d.ts +26 -0
- package/build/ssg-adapters/gatsby/shared/types.d.ts +34 -0
- package/cli.mjs +231 -0
- package/exporter/build-esbuild.noop +42 -0
- package/exporter/build.sh +16 -24
- package/exporter/commands/README.md +142 -0
- package/exporter/commands/end-render.ts +53 -87
- package/exporter/commands/prepare-assets-directory.ts +35 -0
- package/exporter/commands/prepare-domains-render.ts +150 -33
- package/exporter/commands/reset-render.ts +13 -8
- package/exporter/commands/single-domain-upload-search-content.ts +206 -0
- package/exporter/commands/start-render.ts +14 -65
- package/exporter/commands/upload-search-content.ts +204 -26
- package/exporter/core/GriddoLog.ts +45 -0
- package/exporter/core/check-env-health.ts +203 -0
- package/exporter/core/db-class.ts +54 -0
- package/exporter/core/db.ts +33 -0
- package/exporter/core/dist-rollback.ts +49 -0
- package/exporter/core/errors.ts +93 -0
- package/exporter/core/fs.ts +385 -0
- package/exporter/{utils → core}/images.ts +1 -6
- package/exporter/{utils → core}/instance.ts +9 -13
- package/exporter/core/life-cycle.ts +73 -0
- package/exporter/core/logger.ts +137 -0
- package/exporter/core/objects.ts +37 -0
- package/exporter/core/print-logos.ts +21 -0
- package/exporter/index.ts +14 -56
- package/exporter/react/DynamicScript/index.tsx +33 -0
- package/exporter/react/{Favicon → GriddoFavicon}/index.tsx +3 -9
- package/exporter/react/GriddoIntegrations/index.tsx +17 -23
- package/exporter/react/GriddoIntegrations/utils.ts +24 -12
- package/exporter/react/GriddoOpenGraph/index.tsx +39 -0
- package/exporter/react/index.tsx +3 -9
- package/exporter/services/api.ts +306 -0
- package/exporter/services/auth.ts +8 -10
- package/exporter/services/domains.ts +23 -8
- package/exporter/services/manage-sites.ts +116 -0
- package/exporter/services/manage-store.ts +173 -0
- package/exporter/services/navigation.ts +12 -18
- package/exporter/{utils → services}/pages.ts +27 -92
- package/exporter/services/reference-fields.ts +14 -32
- package/exporter/services/render-artifacts.ts +44 -0
- package/exporter/services/render.ts +229 -0
- package/exporter/services/robots.ts +33 -61
- package/exporter/services/sitemaps.ts +129 -0
- package/exporter/services/sites.ts +40 -28
- package/exporter/services/store.ts +354 -321
- package/exporter/shared/context.ts +49 -0
- package/exporter/{constants → shared}/endpoints.ts +12 -11
- package/exporter/shared/envs.ts +58 -0
- package/exporter/{errors/errors-data.ts → shared/errors.ts} +24 -14
- package/exporter/shared/npm-modules/README.md +36 -0
- package/exporter/shared/npm-modules/brush.ts +34 -0
- package/exporter/shared/npm-modules/find-up-simple.ts +100 -0
- package/exporter/shared/npm-modules/pkg-dir.ts +17 -0
- package/exporter/shared/npm-modules/xml-parser.ts +57 -0
- package/exporter/{types → shared/types}/api.ts +40 -41
- package/exporter/{types → shared/types}/global.ts +17 -21
- package/exporter/{types → shared/types}/navigation.ts +3 -3
- package/exporter/{types → shared/types}/pages.ts +10 -11
- package/exporter/shared/types/render.ts +65 -0
- package/exporter/{types → shared/types}/sites.ts +18 -19
- package/exporter/shared/types.ts +15 -0
- package/exporter/ssg-adapters/gatsby/actions/clean.ts +26 -0
- package/exporter/ssg-adapters/gatsby/actions/close.ts +17 -0
- package/exporter/ssg-adapters/gatsby/actions/data.ts +22 -0
- package/exporter/ssg-adapters/gatsby/actions/healthCheck.ts +10 -0
- package/exporter/ssg-adapters/gatsby/actions/init.ts +12 -0
- package/exporter/ssg-adapters/gatsby/actions/logs.ts +10 -0
- package/exporter/ssg-adapters/gatsby/actions/meta.ts +13 -0
- package/exporter/ssg-adapters/gatsby/actions/prepare.ts +9 -0
- package/exporter/ssg-adapters/gatsby/actions/relocation.ts +15 -0
- package/exporter/ssg-adapters/gatsby/actions/restore.ts +21 -0
- package/exporter/ssg-adapters/gatsby/actions/ssg.ts +12 -0
- package/exporter/ssg-adapters/gatsby/actions/sync.ts +65 -0
- package/exporter/ssg-adapters/gatsby/index.ts +117 -0
- package/exporter/ssg-adapters/gatsby/shared/artifacts.ts +17 -0
- package/exporter/ssg-adapters/gatsby/shared/diff-assets.ts +128 -0
- package/exporter/ssg-adapters/gatsby/shared/extract-assets.ts +75 -0
- package/exporter/ssg-adapters/gatsby/shared/gatsby-build.ts +58 -0
- package/exporter/ssg-adapters/gatsby/shared/render-rollback.ts +33 -0
- package/exporter/ssg-adapters/gatsby/shared/sync-render.ts +298 -0
- package/exporter/ssg-adapters/gatsby/shared/types.ts +35 -0
- package/gatsby-browser.tsx +41 -58
- package/gatsby-config.ts +10 -17
- package/gatsby-node.ts +20 -79
- package/gatsby-ssr.tsx +2 -1
- package/package.json +41 -78
- package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
- package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
- package/src/components/Head.tsx +28 -73
- package/src/components/template.tsx +6 -29
- package/src/gatsby-node-utils.ts +81 -2
- package/src/html.tsx +2 -11
- package/src/types.ts +3 -3
- package/tsconfig.commands.json +36 -0
- package/tsconfig.exporter.json +21 -0
- package/tsconfig.json +5 -3
- package/build/adapters/gatsby/index.d.ts +0 -4
- package/build/adapters/gatsby/utils.d.ts +0 -26
- package/build/artifacts/index.d.ts +0 -6
- package/build/constants/envs.d.ts +0 -37
- 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/errors/index.d.ts +0 -15
- 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/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/register.d.ts +0 -36
- package/build/services/settings.d.ts +0 -4
- 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/cache.d.ts +0 -35
- package/build/utils/core-utils.d.ts +0 -107
- package/build/utils/create-build-data.d.ts +0 -8
- package/build/utils/domains.d.ts +0 -13
- package/build/utils/folders.d.ts +0 -53
- package/build/utils/loggin.d.ts +0 -51
- package/build/utils/render.d.ts +0 -13
- package/build/utils/searches.d.ts +0 -15
- package/build/utils/sites.d.ts +0 -31
- package/build/utils/store.d.ts +0 -81
- package/cx.config.d.ts +0 -5
- package/cx.config.js +0 -36
- package/exporter/adapters/gatsby/index.ts +0 -182
- package/exporter/adapters/gatsby/utils.ts +0 -186
- package/exporter/artifacts/README.md +0 -34
- package/exporter/artifacts/index.ts +0 -33
- package/exporter/commands/move-assets.ts +0 -11
- package/exporter/constants/envs.ts +0 -94
- package/exporter/constants/index.ts +0 -129
- package/exporter/errors/index.ts +0 -40
- package/exporter/registers/api.ts +0 -14
- package/exporter/registers/gatsby.ts +0 -14
- package/exporter/registers/index.ts +0 -4
- package/exporter/services/register.ts +0 -113
- package/exporter/services/settings.ts +0 -17
- package/exporter/utils/alerts.ts +0 -29
- package/exporter/utils/api.ts +0 -243
- package/exporter/utils/cache.ts +0 -142
- package/exporter/utils/core-utils.ts +0 -458
- package/exporter/utils/create-build-data.ts +0 -17
- package/exporter/utils/domains.ts +0 -39
- package/exporter/utils/folders.ts +0 -320
- package/exporter/utils/health-checks.ts +0 -64
- package/exporter/utils/loggin.ts +0 -184
- package/exporter/utils/render.ts +0 -71
- package/exporter/utils/searches.ts +0 -156
- package/exporter/utils/sites.ts +0 -312
- package/exporter/utils/store.ts +0 -314
- package/src/README.md +0 -7
- package/start-render.js +0 -7
- /package/build/commands/{move-assets.d.ts → prepare-assets-directory.d.ts} +0 -0
- /package/build/{utils → core}/images.d.ts +0 -0
- /package/build/{utils → core}/instance.d.ts +0 -0
- /package/build/react/{Favicon → GriddoFavicon}/utils.d.ts +0 -0
- /package/build/{constants → shared}/endpoints.d.ts +0 -0
- /package/build/{types → shared/types}/templates.d.ts +0 -0
- /package/exporter/react/{Favicon → GriddoFavicon}/utils.ts +0 -0
- /package/exporter/{types → shared/types}/templates.ts +0 -0
package/exporter/utils/store.ts
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import type { BuildMetaData } from "../types/api";
|
|
2
|
-
import type { RenderInfo } from "../types/global";
|
|
3
|
-
import type { GriddoPageObject } from "../types/pages";
|
|
4
|
-
import type { Site } from "../types/sites";
|
|
5
|
-
|
|
6
|
-
import fs from "node:fs";
|
|
7
|
-
import path from "node:path";
|
|
8
|
-
|
|
9
|
-
import fsx from "fs-extra";
|
|
10
|
-
|
|
11
|
-
import { throwError } from "../errors";
|
|
12
|
-
import { getConfig, removeProperties, walk, walkStore } from "./core-utils";
|
|
13
|
-
import { verboseLog } from "./loggin";
|
|
14
|
-
import { ReadFromStoreError, WriteToStoreError } from "../errors/errors-data";
|
|
15
|
-
|
|
16
|
-
const config = getConfig();
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Read all path pages stored in the `store` Griddo directory and returns the
|
|
20
|
-
* absolute file path.
|
|
21
|
-
*
|
|
22
|
-
* @param domain - The domain to get the pages from.
|
|
23
|
-
*/
|
|
24
|
-
function getBuildPagesFromCachedStore<PageType extends GriddoPageObject>(
|
|
25
|
-
domain: string,
|
|
26
|
-
) {
|
|
27
|
-
const { __cache } = config.paths(domain);
|
|
28
|
-
return getBuildPagesFromStore<PageType>({
|
|
29
|
-
basePath: path.join(__cache, "store"),
|
|
30
|
-
withSizeProp: false,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Read all pages stored in the `store` Griddo directory and returns one by one
|
|
36
|
-
* with a generator.
|
|
37
|
-
*
|
|
38
|
-
* @param basePath - Base directory to get pages from.
|
|
39
|
-
* @param options.withSizeProp - Add size prop to the page object.
|
|
40
|
-
* @todo throw error if the basePath is not an store folder
|
|
41
|
-
*/
|
|
42
|
-
function* getBuildPagesFromStore<PageType extends GriddoPageObject>(args?: {
|
|
43
|
-
basePath?: string;
|
|
44
|
-
withSizeProp?: boolean;
|
|
45
|
-
}) {
|
|
46
|
-
const { basePath, withSizeProp } = args || {};
|
|
47
|
-
const { __cx } = config.paths();
|
|
48
|
-
const pagesDirPath = basePath || path.join(__cx, "store");
|
|
49
|
-
|
|
50
|
-
const jsonFilePaths = walkStore(pagesDirPath).filter(
|
|
51
|
-
(file) => path.extname(file) === ".json",
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
for (const filePath of jsonFilePaths) {
|
|
55
|
-
try {
|
|
56
|
-
const page = fsx.readJsonSync(filePath, {
|
|
57
|
-
encoding: "utf-8",
|
|
58
|
-
}) as PageType;
|
|
59
|
-
|
|
60
|
-
if (withSizeProp) {
|
|
61
|
-
const fileStats = fs.statSync(filePath);
|
|
62
|
-
page.size = fileStats.size / 1024;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// SECURITY: Only returns valid page objects
|
|
66
|
-
if (page.path) {
|
|
67
|
-
yield page;
|
|
68
|
-
}
|
|
69
|
-
} catch (error) {
|
|
70
|
-
throwError(ReadFromStoreError, error);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Read all pages stored in `store` Griddo directory and return the absolute
|
|
77
|
-
* path.
|
|
78
|
-
*/
|
|
79
|
-
function getBuildPagesPath() {
|
|
80
|
-
const config = getConfig();
|
|
81
|
-
const { __cx } = config.paths();
|
|
82
|
-
|
|
83
|
-
const PAGES_DIR = path.join(__cx, "store");
|
|
84
|
-
const PAGE_FILES = walk(PAGES_DIR).filter(
|
|
85
|
-
(file) => path.extname(file) === ".json",
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
return PAGE_FILES;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Get the build metadata from the Store.
|
|
93
|
-
*/
|
|
94
|
-
async function getBuildMetadata(): Promise<BuildMetaData> {
|
|
95
|
-
const { __cx } = config.paths();
|
|
96
|
-
const { sitesToPublish, createdPages, buildProcessData } = fsx.readJSONSync(
|
|
97
|
-
path.join(__cx, "render-metadata.json"),
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
return {
|
|
101
|
-
buildProcessData,
|
|
102
|
-
createdPages,
|
|
103
|
-
sitesToPublish,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Write render info into a file.
|
|
109
|
-
* @param renderInfo - Data that will be saved related to the render process.
|
|
110
|
-
*/
|
|
111
|
-
function saveRenderInfoInStore(renderInfo: RenderInfo) {
|
|
112
|
-
const { __cx } = config.paths();
|
|
113
|
-
|
|
114
|
-
fs.writeFileSync(
|
|
115
|
-
path.join(__cx, "render-metadata.json"),
|
|
116
|
-
JSON.stringify(renderInfo),
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Return an array of ids only from `.json` files (no dirs) in the `basePath` dir based in the file name and filtered by the pages ids in a concrete site.
|
|
122
|
-
* @param basePath - Absolute path of the dir from which files will be read.
|
|
123
|
-
* @returns A Array<number> of pages ids in `basePath` dir filtered by pages ids in a concrete site.
|
|
124
|
-
*/
|
|
125
|
-
// function getPagesInStoreDirBySitePages(
|
|
126
|
-
// basePath: string,
|
|
127
|
-
// pages: Array<number>,
|
|
128
|
-
// ): Array<number> {
|
|
129
|
-
// const allPagesInStore = getPageInStoreDir(basePath);
|
|
130
|
-
// const pagesBySite = allPagesInStore.filter((page) => pages.includes(page));
|
|
131
|
-
|
|
132
|
-
// return pagesBySite;
|
|
133
|
-
// }
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Return an array of ids only from `.json` files (no dirs) in the `basePath` dir based in the file name.
|
|
137
|
-
* @param basePath - Absolute path of the dir from which files will be read.
|
|
138
|
-
* @returns A Array<number> of pages ids in `basePath` dir.
|
|
139
|
-
*/
|
|
140
|
-
function getPageInStoreDir(basePath: string): Array<number> {
|
|
141
|
-
const filesInStore = fs.readdirSync(basePath);
|
|
142
|
-
|
|
143
|
-
return (
|
|
144
|
-
filesInStore
|
|
145
|
-
.filter((file) => {
|
|
146
|
-
const fullPathFile = `${basePath}/${file}`;
|
|
147
|
-
const stat = fs.statSync(fullPathFile);
|
|
148
|
-
// Si es un directorio, no lo incluimos.
|
|
149
|
-
if (stat?.isDirectory()) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
// Si es un archivo pero no tiene la extensión `.json`, no lo incluimos
|
|
153
|
-
if (path.extname(file) !== ".json") {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
// Si es un archivo con el nombre NO pasable a número (NaN), no lo incluimos.
|
|
157
|
-
const baseFilename = path.basename(file, path.extname(file));
|
|
158
|
-
if (Number.isNaN(Number.parseInt(baseFilename))) {
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// no es dir, es json y con nombre pasable a número, ok :)
|
|
163
|
-
return true;
|
|
164
|
-
})
|
|
165
|
-
// Tenemos solo jsons donde el nombre es un "número": "21345.json"
|
|
166
|
-
.map((page) => {
|
|
167
|
-
const filename = path.basename(page, path.extname(page));
|
|
168
|
-
return Number.parseInt(filename);
|
|
169
|
-
})
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Save the pages into the file system.
|
|
175
|
-
* @param pages - An array of Griddo page objects to be saved.
|
|
176
|
-
*/
|
|
177
|
-
function saveSitePagesInStore(
|
|
178
|
-
siteDirName: string,
|
|
179
|
-
pages: Array<GriddoPageObject>,
|
|
180
|
-
) {
|
|
181
|
-
const { __cx } = config.paths();
|
|
182
|
-
|
|
183
|
-
try {
|
|
184
|
-
for (const page of pages) {
|
|
185
|
-
removeProperties(page, ["editorID", "parentEditorID"]);
|
|
186
|
-
const filename = `${page.context.page.id}.json`;
|
|
187
|
-
const filePath = path.join(__cx, "store", siteDirName, filename);
|
|
188
|
-
fsx.writeJSONSync(filePath, page);
|
|
189
|
-
}
|
|
190
|
-
} catch (error) {
|
|
191
|
-
throwError(WriteToStoreError, error);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Removes JSON files from the specified site directory based on the provided arrays of page numbers.
|
|
197
|
-
* For each number in the arrays, a corresponding file with the format `<number>.json` is removed if it exists.
|
|
198
|
-
*
|
|
199
|
-
* WARNING: This function may end up handling large arrays, so don't be tempted
|
|
200
|
-
* to refactor it to use something cool like the spread operator and make a
|
|
201
|
-
* single array, etc..
|
|
202
|
-
*
|
|
203
|
-
* @param siteDirName - The name of the site directory containing the pages.
|
|
204
|
-
* @param pageIdsArray - A two-dimensional array where each inner array contains numbers representing page files to be removed.
|
|
205
|
-
*/
|
|
206
|
-
function removeSitePagesFromStore(
|
|
207
|
-
siteDirName: string,
|
|
208
|
-
pageIdsArray: Array<Array<number>>,
|
|
209
|
-
) {
|
|
210
|
-
const { __cx } = config.paths();
|
|
211
|
-
|
|
212
|
-
const processPageIdsArray = (pageIds: Array<number>) => {
|
|
213
|
-
for (const filename of pageIds) {
|
|
214
|
-
const filePath = path.join(
|
|
215
|
-
__cx,
|
|
216
|
-
"store",
|
|
217
|
-
siteDirName,
|
|
218
|
-
`${filename}.json`,
|
|
219
|
-
);
|
|
220
|
-
try {
|
|
221
|
-
if (fs.existsSync(filePath)) {
|
|
222
|
-
fs.unlinkSync(filePath);
|
|
223
|
-
verboseLog(`Removed file: ${filePath}`);
|
|
224
|
-
}
|
|
225
|
-
} catch (error) {
|
|
226
|
-
console.log(error);
|
|
227
|
-
throw new Error(`Error removing file ${filename}`);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
for (const pageIds of pageIdsArray) {
|
|
233
|
-
processPageIdsArray(pageIds);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* Removes sites that exist in the store that should no longer be there because
|
|
239
|
-
* the domain has been changed. This is necessary because those sites will not
|
|
240
|
-
* be marked as `sitesToUnpublish` so they must be removed manually.
|
|
241
|
-
*/
|
|
242
|
-
function removeOrphanSites(sitesToPublish: Array<Site>, domain: string) {
|
|
243
|
-
const { __cx } = getConfig().paths(domain);
|
|
244
|
-
const currentSitesInStore = fs.readdirSync(path.join(__cx, "store"));
|
|
245
|
-
const sitesFromAPI = sitesToPublish.map(({ id }) => `${id}`);
|
|
246
|
-
const sitesToDelete = currentSitesInStore.filter(
|
|
247
|
-
(site) => !sitesFromAPI.includes(site),
|
|
248
|
-
);
|
|
249
|
-
|
|
250
|
-
for (const site of sitesToDelete) {
|
|
251
|
-
fs.rmSync(path.join(__cx, "store", site), { recursive: true, force: true });
|
|
252
|
-
verboseLog(`Removed orphan site id: ${site}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Returns the list of `activePages` pages that do not currently exist in a
|
|
258
|
-
* site's store (probably due to a failed render).
|
|
259
|
-
*/
|
|
260
|
-
function getMissingPublishedPagesInStore(
|
|
261
|
-
siteName: string,
|
|
262
|
-
activePages: Array<number>,
|
|
263
|
-
) {
|
|
264
|
-
const { __cx } = config.paths();
|
|
265
|
-
const pagesInStore = getPageInStoreDir(path.join(__cx, "store", siteName));
|
|
266
|
-
const missingActivePages: Array<number> = [];
|
|
267
|
-
for (const activePage of activePages) {
|
|
268
|
-
if (!pagesInStore.includes(activePage)) {
|
|
269
|
-
missingActivePages.push(activePage);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return missingActivePages;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Get pages that are not active anymore but are in the store.
|
|
277
|
-
*/
|
|
278
|
-
function getZombiePagesInStore(siteDir: string, activePages: Array<number>) {
|
|
279
|
-
const { __cx } = getConfig().paths();
|
|
280
|
-
const storeDir = path.join(__cx, "store", siteDir);
|
|
281
|
-
const sitePages = fs.readdirSync(storeDir);
|
|
282
|
-
|
|
283
|
-
let zombiePages: Array<number> = [];
|
|
284
|
-
for (const pageFileName of sitePages) {
|
|
285
|
-
const pageFileNameWithoutExtension = pageFileName.split(".")[0];
|
|
286
|
-
const pageInStore = Number.parseInt(pageFileNameWithoutExtension);
|
|
287
|
-
|
|
288
|
-
// What the hell is `pageIdInStore > 0` ??
|
|
289
|
-
// Las páginas de listados estáticos y multipage tiene ids "basura", que
|
|
290
|
-
// en este caso son ids negativos y siempre so borran al final del render.
|
|
291
|
-
// En este caso hay que ignorarlas porque NUNCA van a estar en el
|
|
292
|
-
// `activePages`, estaríamos borrándolas siempre antes de la fase de
|
|
293
|
-
// SSG.
|
|
294
|
-
if (!activePages.includes(pageInStore) && pageInStore > 0) {
|
|
295
|
-
zombiePages.push(pageInStore);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
return zombiePages;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
export {
|
|
303
|
-
getBuildMetadata,
|
|
304
|
-
getBuildPagesFromCachedStore,
|
|
305
|
-
getBuildPagesFromStore,
|
|
306
|
-
getBuildPagesPath,
|
|
307
|
-
getMissingPublishedPagesInStore,
|
|
308
|
-
getPageInStoreDir,
|
|
309
|
-
getZombiePagesInStore,
|
|
310
|
-
removeOrphanSites,
|
|
311
|
-
removeSitePagesFromStore,
|
|
312
|
-
saveSitePagesInStore,
|
|
313
|
-
saveRenderInfoInStore,
|
|
314
|
-
};
|
package/src/README.md
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Griddo CX + Gatsby
|
|
2
|
-
|
|
3
|
-
The `/src` dir and almost every file in the root dir is now 100% Gatsby related code along with the historical `/public`, `/dist`, `/apiCache`, `/store`, etc.. render dirs.
|
|
4
|
-
|
|
5
|
-
Griddo CX code (the business logic) is now in `/exporter` dir.
|
|
6
|
-
|
|
7
|
-
In the future, Griddo CX and Gatsby will split int their own packages dirs inside the mono-repo.
|
package/start-render.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|