@griddo/cx 11.9.11-rc.9 → 11.9.12-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 +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 +38 -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 +406 -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 +19 -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 +54 -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 +151 -0
- package/exporter/commands/end-render.ts +65 -86
- package/exporter/commands/prepare-assets-directory.ts +35 -0
- package/exporter/commands/prepare-domains-render.ts +132 -35
- 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 +26 -64
- package/exporter/commands/upload-search-content.ts +204 -26
- package/exporter/core/GriddoLog.ts +45 -0
- package/exporter/core/check-env-health.ts +204 -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 +141 -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 +62 -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 +63 -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 +114 -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 -80
- 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 +76 -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 -22
- 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 -162
- package/exporter/adapters/gatsby/utils.ts +0 -161
- 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
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { spawnSync } from "node:child_process";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
|
|
4
|
-
import fsx from "fs-extra";
|
|
5
|
-
|
|
6
|
-
import { envs } from "../../constants";
|
|
7
|
-
import { throwError } from "../../errors";
|
|
8
|
-
import { ErrorInSSGBuildProcess } from "../../errors/errors-data";
|
|
9
|
-
import { getConfig } from "../../utils/core-utils";
|
|
10
|
-
import { verboseLog } from "../../utils/loggin";
|
|
11
|
-
|
|
12
|
-
const config = getConfig();
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Return the assetPrefix with the domain concatenated `assetPrefix/domain` only
|
|
16
|
-
* if the domain is "pro-" **and** there is a env `GRIDDO_ASSET_PREFIX` with any
|
|
17
|
-
* value different from `null`, `undefined` or `empty string`
|
|
18
|
-
*
|
|
19
|
-
* else...
|
|
20
|
-
* - If assetPrefix or domain is falsy, returns ""
|
|
21
|
-
* - If the domain is not "pro-", returns ""
|
|
22
|
-
*/
|
|
23
|
-
function getGatsbyAssetPrefixWithDomain(domain: string) {
|
|
24
|
-
const { proDomain } = getConfig();
|
|
25
|
-
|
|
26
|
-
if (!envs.GRIDDO_ASSET_PREFIX || !domain) {
|
|
27
|
-
return "";
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (!domain.startsWith(proDomain)) {
|
|
31
|
-
return "";
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const assetPrefixWithDomain = `${envs.GRIDDO_ASSET_PREFIX}/${domain}`;
|
|
35
|
-
|
|
36
|
-
verboseLog(
|
|
37
|
-
`Reading process.env.GRIDDO_ASSET_PREFIX, ${envs.GRIDDO_ASSET_PREFIX}`,
|
|
38
|
-
);
|
|
39
|
-
verboseLog(
|
|
40
|
-
`Setting the asset prefix with the domain concatenated, ${assetPrefixWithDomain}`,
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
return assetPrefixWithDomain;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Spawn a new node process `yarn gatsby-build`
|
|
48
|
-
* @note This proccess (`yarn gatsby-build`) can not access to the custom Griddo
|
|
49
|
-
* `process.env` so it needs variables passed to it via the `env` prop.
|
|
50
|
-
*/
|
|
51
|
-
function runGatsbyBuildCommand(assetPrefixWithDomain: string) {
|
|
52
|
-
verboseLog(`read assetPrefixWithDomain, ${assetPrefixWithDomain}`);
|
|
53
|
-
verboseLog(
|
|
54
|
-
`using this NODE_OPTIONS in gatsby command: ${process.env.NODE_OPTIONS}`,
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
const { __ssg } = config.paths();
|
|
58
|
-
|
|
59
|
-
// Remove `--openssl-legacy-provider` from NODE_OPTIONS because this value
|
|
60
|
-
// break Gataby render.
|
|
61
|
-
const nodeOptionsWithoutLegacyOpenSSL = process.env.NODE_OPTIONS
|
|
62
|
-
? process.env.NODE_OPTIONS.replace(
|
|
63
|
-
/--openssl-legacy-provider\s*/g,
|
|
64
|
-
"",
|
|
65
|
-
).trim()
|
|
66
|
-
: "";
|
|
67
|
-
|
|
68
|
-
const command = spawnSync(
|
|
69
|
-
"yarn",
|
|
70
|
-
["gatsby-build", envs.GRIDDO_SSG_VERBOSE_LOGS ? "--verbose" : ""],
|
|
71
|
-
{
|
|
72
|
-
cwd: __ssg,
|
|
73
|
-
stdio: ["ignore", "inherit", "ignore"],
|
|
74
|
-
encoding: "utf8",
|
|
75
|
-
shell: true,
|
|
76
|
-
env: Object.assign(process.env, {
|
|
77
|
-
GRIDDO_EXPORTER: "true",
|
|
78
|
-
SPAWN_ASSET_PREFIX_WITH_DOMAIN: assetPrefixWithDomain,
|
|
79
|
-
NODE_OPTIONS: nodeOptionsWithoutLegacyOpenSSL,
|
|
80
|
-
}),
|
|
81
|
-
},
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
if (command.status !== 0) {
|
|
85
|
-
throwError(ErrorInSSGBuildProcess(command));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Update the Griddo's `/dist` dir with the contents from `public` dir only
|
|
91
|
-
* with files of type: js, json and css.
|
|
92
|
-
*/
|
|
93
|
-
async function createDistFromGatsbyPublic(
|
|
94
|
-
domain: string,
|
|
95
|
-
needsAssetPrefix: boolean,
|
|
96
|
-
) {
|
|
97
|
-
const { __cx, __ssg } = config.paths(domain);
|
|
98
|
-
|
|
99
|
-
const cxDistDir = path.join(__cx, "dist");
|
|
100
|
-
const cxAssetsDir = path.join(__cx, "assets");
|
|
101
|
-
const cxDistDirWithDomain = path.join(__cx, "dist", domain);
|
|
102
|
-
const publicDir = path.join(__ssg, "public");
|
|
103
|
-
|
|
104
|
-
const validFilesFromPublic = fsx
|
|
105
|
-
.readdirSync(publicDir)
|
|
106
|
-
.filter(
|
|
107
|
-
(file) =>
|
|
108
|
-
path.extname(file) === ".js" ||
|
|
109
|
-
path.extname(file) === ".json" ||
|
|
110
|
-
path.extname(file) === ".css",
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
const pageDataSrc = `${publicDir}/page-data`;
|
|
114
|
-
const pageDataDest = `${cxAssetsDir}/page-data`;
|
|
115
|
-
|
|
116
|
-
const projectStaticSrc = path.join(__ssg, "static");
|
|
117
|
-
const projectStaticDest = cxAssetsDir;
|
|
118
|
-
|
|
119
|
-
const gatsbyStaticSrc = `${cxDistDir}/static`;
|
|
120
|
-
const gatsbyStaticDest = `${cxAssetsDir}/static`;
|
|
121
|
-
|
|
122
|
-
try {
|
|
123
|
-
fsx.mkdirSync(cxAssetsDir, { recursive: true });
|
|
124
|
-
fsx.copySync(publicDir, cxDistDir, { preserveTimestamps: true });
|
|
125
|
-
|
|
126
|
-
if (needsAssetPrefix) {
|
|
127
|
-
fsx.copySync(pageDataSrc, pageDataDest, { preserveTimestamps: true });
|
|
128
|
-
if (fsx.existsSync(projectStaticSrc)) {
|
|
129
|
-
fsx.copySync(projectStaticSrc, projectStaticDest, {
|
|
130
|
-
overwrite: false,
|
|
131
|
-
preserveTimestamps: true,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
fsx.copySync(gatsbyStaticSrc, gatsbyStaticDest, {
|
|
135
|
-
overwrite: false,
|
|
136
|
-
preserveTimestamps: true,
|
|
137
|
-
});
|
|
138
|
-
if (fsx.existsSync(projectStaticSrc)) {
|
|
139
|
-
fsx.copySync(projectStaticSrc, cxDistDirWithDomain, {
|
|
140
|
-
overwrite: false,
|
|
141
|
-
preserveTimestamps: true,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Copia el resto de archivos...
|
|
146
|
-
validFilesFromPublic.map((file) => {
|
|
147
|
-
const fileSrc = `${publicDir}/${file}`;
|
|
148
|
-
const fileDest = `${cxAssetsDir}/${file}`;
|
|
149
|
-
fsx.copySync(fileSrc, fileDest, { preserveTimestamps: true });
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
} catch (err) {
|
|
153
|
-
console.error(err);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
export {
|
|
158
|
-
createDistFromGatsbyPublic,
|
|
159
|
-
getGatsbyAssetPrefixWithDomain,
|
|
160
|
-
runGatsbyBuildCommand,
|
|
161
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# CX Artifacs
|
|
2
|
-
|
|
3
|
-
## How to add an artifact.
|
|
4
|
-
|
|
5
|
-
An artifact is a **full path** to a file or directory if it has a fixed
|
|
6
|
-
location or only a **name** when it is going to be moved (archived/restored)
|
|
7
|
-
between directories in the rendering process and therefore doesn't have a
|
|
8
|
-
single location.
|
|
9
|
-
|
|
10
|
-
Only the exporter knows where the artifacts are archived and restored, so the
|
|
11
|
-
artifacts don't need to know anything other than their own location or name.
|
|
12
|
-
|
|
13
|
-
Si estás creando un adaptador, sus artefactos deberán ir en un archivo separado (igual que `artifacts/cx.ts`) y exportar una función por defecto que devuelva un `Artifacts`. Todo deberá estar exportado desde `artifacts/index.ts`.
|
|
14
|
-
|
|
15
|
-
**Artifacts have four categories:**
|
|
16
|
-
|
|
17
|
-
- **initials**: Are directories that need to be created for their
|
|
18
|
-
future use.
|
|
19
|
-
|
|
20
|
-
- **archivables**: Are stored in `__exports` which is the one uploaded to the
|
|
21
|
-
server as the final render and restored in `__cx` and `__ssg` to be reused in the
|
|
22
|
-
render. Therefore, they don't have a single location and should be added only
|
|
23
|
-
with the artifact name (directory/file)
|
|
24
|
-
|
|
25
|
-
- **cacheables**: Are stored in `__cache` and restored in `__cx` and `__ssg` to be
|
|
26
|
-
reused in each domain render. Therefore, they don't have a single location.
|
|
27
|
-
|
|
28
|
-
- **disposables**: Are generated alwais in `__cx` and `__ssg` or fixed locations.
|
|
29
|
-
These artifacts are discarded (deleted) in each domain render. They are
|
|
30
|
-
temporary directories and/or files.
|
|
31
|
-
|
|
32
|
-
## Example
|
|
33
|
-
|
|
34
|
-
Check `cx.ts` inside `./artifacts` directory to see how to add an artifact.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Artifacts } from "../types/global";
|
|
2
|
-
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
|
|
5
|
-
import { getConfig } from "../utils/core-utils";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Returns the artifacts of CX.
|
|
9
|
-
*/
|
|
10
|
-
function getCxArtifacts(domain: string): Artifacts {
|
|
11
|
-
const config = getConfig();
|
|
12
|
-
const { __cx, __exports, __cache } = config.paths(domain);
|
|
13
|
-
|
|
14
|
-
return {
|
|
15
|
-
initials: [
|
|
16
|
-
__exports, // `/exports/<domain>`
|
|
17
|
-
__cache, // `__cx/.cx-cache/<domain>`
|
|
18
|
-
path.join(__cx, "store"),
|
|
19
|
-
path.join(__cx, "apiCache"),
|
|
20
|
-
],
|
|
21
|
-
disposables: [
|
|
22
|
-
path.join(__cx, "store"),
|
|
23
|
-
path.join(__cx, "apiCache"),
|
|
24
|
-
path.join(__cx, "render-metadata.json"),
|
|
25
|
-
path.join(__cx, "dist"),
|
|
26
|
-
path.join(__cx, "debug"),
|
|
27
|
-
],
|
|
28
|
-
cacheables: ["apiCache", "store"],
|
|
29
|
-
archivables: ["dist", "assets", "debug"],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export default getCxArtifacts;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
|
|
4
|
-
const domainName = "pro-griddo";
|
|
5
|
-
const domainPath = path.resolve(
|
|
6
|
-
__dirname,
|
|
7
|
-
`../../../exports/sites/${domainName}`,
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
execSync(`mkdir -p ${domainPath}/assets/${domainName}`);
|
|
11
|
-
execSync(`cp -R ${domainPath}/assets/* ${domainPath}/assets/${domainName}`);
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Here are all the environment variables that the CX code uses.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import dotenv from "dotenv";
|
|
6
|
-
|
|
7
|
-
import { isTruthy } from "../utils/core-utils";
|
|
8
|
-
|
|
9
|
-
dotenv.config();
|
|
10
|
-
|
|
11
|
-
//
|
|
12
|
-
// Credentials
|
|
13
|
-
//
|
|
14
|
-
/* prettier-ignore */ const GRIDDO_API_URL = process.env.GRIDDO_API_URL || process.env.API_URL;
|
|
15
|
-
/* prettier-ignore */ const GRIDDO_PUBLIC_API_URL = process.env.GRIDDO_PUBLIC_API_URL || process.env.PUBLIC_API_URL;
|
|
16
|
-
/* prettier-ignore */ const GRIDDO_BOT_USER = process.env.botEmail || process.env.GRIDDO_BOT_USER;
|
|
17
|
-
/* prettier-ignore */ const GRIDDO_BOT_PASSWORD = process.env.botPassword|| process.env.GRIDDO_BOT_PASSWORD;
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
// Rendering
|
|
21
|
-
//
|
|
22
|
-
/* prettier-ignore */ const GRIDDO_API_CONCURRENCY_COUNT = Number.parseInt( process.env.GRIDDO_API_CONCURRENCY_COUNT || "10");
|
|
23
|
-
/* prettier-ignore */ const GRIDDO_RENDER_ALL_SITES = isTruthy(process.env.GRIDDO_RENDER_ALL_SITES || process.env.updateAllSites);
|
|
24
|
-
/* prettier-ignore */ const GRIDDO_RENDER_SITE = Number.parseInt(process.env.GRIDDO_RENDER_SITE || "")
|
|
25
|
-
/* prettier-ignore */ const GRIDDO_RENDER_PAGES = (process.env.GRIDDO_RENDER_PAGES || "").split(",").map((item) => Number.parseInt(item)).filter(Boolean);
|
|
26
|
-
/* prettier-ignore */ const GRIDDO_SKIP_BUILD_CHECKS = isTruthy(process.env.GRIDDO_SKIP_BUILD_CHECKS)
|
|
27
|
-
/* prettier-ignore */ const GRIDDO_DEBUG_LOGS = isTruthy(process.env.GRIDDO_DEBUG_LOGS);
|
|
28
|
-
/* prettier-ignore */ const GRIDDO_BUILD_LOGS = isTruthy(process.env.GRIDDO_BUILD_LOGS);
|
|
29
|
-
/* prettier-ignore */ const GRIDDO_RENDER_BREAKPOINTS_FEATURE = isTruthy(process.env.GRIDDO_RENDER_BREAKPOINTS_FEATURE);
|
|
30
|
-
/* prettier-ignore */ const GRIDDO_SSG_VERBOSE_LOGS = isTruthy(process.env.GRIDDO_SSG_VERBOSE_LOGS)
|
|
31
|
-
/* prettier-ignore */ const GRIDDO_SEARCH_FEATURE = isTruthy(process.env.GRIDDO_SEARCH_FEATURE);
|
|
32
|
-
/* prettier-ignore */ const GRIDDO_ASSET_PREFIX = process.env.GRIDDO_ASSET_PREFIX || process.env.ASSET_PREFIX;
|
|
33
|
-
/* prettier-ignore */ const GRIDDO_REACT_APP_INSTANCE = process.env.GRIDDO_REACT_APP_INSTANCE || process.env.REACT_APP_INSTANCE;
|
|
34
|
-
/* prettier-ignore */ const GRIDDO_AI_EMBEDDINGS = isTruthy(process.env.GRIDDO_AI_EMBEDDINGS);
|
|
35
|
-
/* prettier-ignore */ const GRIDDO_VERBOSE_LOGS = isTruthy(process.env.GRIDDO_VERBOSE_LOGS);
|
|
36
|
-
/* prettier-ignore */ const GRIDDO_ALERT_FEATURE = isTruthy(process.env.GRIDDO_ALERT_FEATURE);
|
|
37
|
-
/* prettier-ignore */ const GRIDDO_API_MAX_RESPONSE_SIZE = Number.parseInt(process.env.GRIDDO_API_MAX_RESPONSE_SIZE || "81920") // 80KB
|
|
38
|
-
/* prettier-ignore */ const GRIDDO_SSG_MAX_PAGE_SIZE = Number.parseInt(process.env.GRIDDO_SSG_MAX_PAGE_SIZE || "524288") // 512KB
|
|
39
|
-
|
|
40
|
-
//
|
|
41
|
-
// LifeCycle
|
|
42
|
-
//
|
|
43
|
-
/* prettier-ignore */ const GRIDDO_INIT_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_INIT_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
44
|
-
/* prettier-ignore */ const GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
45
|
-
/* prettier-ignore */ const GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
46
|
-
/* prettier-ignore */ const GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
47
|
-
/* prettier-ignore */ const GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
48
|
-
/* prettier-ignore */ const GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
49
|
-
/* prettier-ignore */ const GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS || "2");
|
|
50
|
-
/* prettier-ignore */ const GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
51
|
-
/* prettier-ignore */ const GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS || "4");
|
|
52
|
-
/* prettier-ignore */ const GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS || "1");
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
// Testing
|
|
56
|
-
//
|
|
57
|
-
/* prettier-ignore */ const GRIDDO_FIXTURES_DOMAIN_NAMES = process.env.GRIDDO_CX_FIXTURES_DOMAIN_NAMES;
|
|
58
|
-
/* prettier-ignore */ const GRIDDO_FIXTURES_SITE_NAMES = process.env.GRIDDO_CX_FIXTURES_SITE_NAMES;
|
|
59
|
-
|
|
60
|
-
export {
|
|
61
|
-
GRIDDO_AI_EMBEDDINGS,
|
|
62
|
-
GRIDDO_ALERT_FEATURE,
|
|
63
|
-
GRIDDO_API_CONCURRENCY_COUNT,
|
|
64
|
-
GRIDDO_API_MAX_RESPONSE_SIZE,
|
|
65
|
-
GRIDDO_API_URL,
|
|
66
|
-
GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
|
|
67
|
-
GRIDDO_ASSET_PREFIX,
|
|
68
|
-
GRIDDO_BOT_PASSWORD,
|
|
69
|
-
GRIDDO_BOT_USER,
|
|
70
|
-
GRIDDO_BUILD_LOGS,
|
|
71
|
-
GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
|
|
72
|
-
GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
|
|
73
|
-
GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
|
|
74
|
-
GRIDDO_DEBUG_LOGS,
|
|
75
|
-
GRIDDO_FIXTURES_DOMAIN_NAMES,
|
|
76
|
-
GRIDDO_FIXTURES_SITE_NAMES,
|
|
77
|
-
GRIDDO_INIT_LIFECYCLE_MAX_ATTEMPTS,
|
|
78
|
-
GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
|
|
79
|
-
GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
|
|
80
|
-
GRIDDO_PUBLIC_API_URL,
|
|
81
|
-
GRIDDO_REACT_APP_INSTANCE,
|
|
82
|
-
GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
|
|
83
|
-
GRIDDO_RENDER_ALL_SITES,
|
|
84
|
-
GRIDDO_RENDER_BREAKPOINTS_FEATURE,
|
|
85
|
-
GRIDDO_RENDER_PAGES,
|
|
86
|
-
GRIDDO_RENDER_SITE,
|
|
87
|
-
GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
|
|
88
|
-
GRIDDO_SEARCH_FEATURE,
|
|
89
|
-
GRIDDO_SKIP_BUILD_CHECKS,
|
|
90
|
-
GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
|
|
91
|
-
GRIDDO_SSG_MAX_PAGE_SIZE,
|
|
92
|
-
GRIDDO_SSG_VERBOSE_LOGS,
|
|
93
|
-
GRIDDO_VERBOSE_LOGS,
|
|
94
|
-
};
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import type { LifeCyclesNames } from "../types/global";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
AI_EMBEDDINGS,
|
|
5
|
-
ALERT,
|
|
6
|
-
BUILD_END,
|
|
7
|
-
BUILD_START,
|
|
8
|
-
DOMAINS,
|
|
9
|
-
GET_ALL,
|
|
10
|
-
GET_PAGE,
|
|
11
|
-
GET_PAGES,
|
|
12
|
-
GET_REFERENCE_FIELD_DATA,
|
|
13
|
-
GET_SITEMAP,
|
|
14
|
-
INFO,
|
|
15
|
-
LANGUAGES,
|
|
16
|
-
LOGIN,
|
|
17
|
-
RESET_RENDER,
|
|
18
|
-
ROBOTS,
|
|
19
|
-
SEARCH,
|
|
20
|
-
SETTINGS,
|
|
21
|
-
SOCIALS,
|
|
22
|
-
} from "./endpoints";
|
|
23
|
-
import {
|
|
24
|
-
GRIDDO_AI_EMBEDDINGS,
|
|
25
|
-
GRIDDO_ALERT_FEATURE,
|
|
26
|
-
GRIDDO_API_CONCURRENCY_COUNT,
|
|
27
|
-
GRIDDO_API_MAX_RESPONSE_SIZE,
|
|
28
|
-
GRIDDO_API_URL,
|
|
29
|
-
GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
|
|
30
|
-
GRIDDO_ASSET_PREFIX,
|
|
31
|
-
GRIDDO_BOT_PASSWORD,
|
|
32
|
-
GRIDDO_BOT_USER,
|
|
33
|
-
GRIDDO_BUILD_LOGS,
|
|
34
|
-
GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
|
|
35
|
-
GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
|
|
36
|
-
GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
|
|
37
|
-
GRIDDO_DEBUG_LOGS,
|
|
38
|
-
GRIDDO_FIXTURES_DOMAIN_NAMES,
|
|
39
|
-
GRIDDO_FIXTURES_SITE_NAMES,
|
|
40
|
-
GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
|
|
41
|
-
GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
|
|
42
|
-
GRIDDO_PUBLIC_API_URL,
|
|
43
|
-
GRIDDO_REACT_APP_INSTANCE,
|
|
44
|
-
GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
|
|
45
|
-
GRIDDO_RENDER_ALL_SITES,
|
|
46
|
-
GRIDDO_RENDER_BREAKPOINTS_FEATURE,
|
|
47
|
-
GRIDDO_RENDER_PAGES,
|
|
48
|
-
GRIDDO_RENDER_SITE,
|
|
49
|
-
GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
|
|
50
|
-
GRIDDO_SEARCH_FEATURE,
|
|
51
|
-
GRIDDO_SKIP_BUILD_CHECKS,
|
|
52
|
-
GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
|
|
53
|
-
GRIDDO_SSG_MAX_PAGE_SIZE,
|
|
54
|
-
GRIDDO_SSG_VERBOSE_LOGS,
|
|
55
|
-
GRIDDO_VERBOSE_LOGS,
|
|
56
|
-
} from "./envs";
|
|
57
|
-
|
|
58
|
-
const endpoints = {
|
|
59
|
-
ALERT,
|
|
60
|
-
AI_EMBEDDINGS,
|
|
61
|
-
BUILD_END,
|
|
62
|
-
BUILD_START,
|
|
63
|
-
DOMAINS,
|
|
64
|
-
GET_ALL,
|
|
65
|
-
GET_PAGE,
|
|
66
|
-
GET_PAGES,
|
|
67
|
-
GET_REFERENCE_FIELD_DATA,
|
|
68
|
-
GET_SITEMAP,
|
|
69
|
-
INFO,
|
|
70
|
-
LANGUAGES,
|
|
71
|
-
LOGIN,
|
|
72
|
-
RESET_RENDER,
|
|
73
|
-
ROBOTS,
|
|
74
|
-
SEARCH,
|
|
75
|
-
SETTINGS,
|
|
76
|
-
SOCIALS,
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const envs = {
|
|
80
|
-
GRIDDO_AI_EMBEDDINGS,
|
|
81
|
-
GRIDDO_ALERT_FEATURE,
|
|
82
|
-
GRIDDO_API_CONCURRENCY_COUNT,
|
|
83
|
-
GRIDDO_API_MAX_RESPONSE_SIZE,
|
|
84
|
-
GRIDDO_API_URL,
|
|
85
|
-
GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
|
|
86
|
-
GRIDDO_ASSET_PREFIX,
|
|
87
|
-
GRIDDO_BOT_PASSWORD,
|
|
88
|
-
GRIDDO_BOT_USER,
|
|
89
|
-
GRIDDO_BUILD_LOGS,
|
|
90
|
-
GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
|
|
91
|
-
GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
|
|
92
|
-
GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
|
|
93
|
-
GRIDDO_DEBUG_LOGS,
|
|
94
|
-
GRIDDO_FIXTURES_DOMAIN_NAMES,
|
|
95
|
-
GRIDDO_FIXTURES_SITE_NAMES,
|
|
96
|
-
GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
|
|
97
|
-
GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
|
|
98
|
-
GRIDDO_PUBLIC_API_URL,
|
|
99
|
-
GRIDDO_REACT_APP_INSTANCE,
|
|
100
|
-
GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
|
|
101
|
-
GRIDDO_RENDER_ALL_SITES,
|
|
102
|
-
GRIDDO_RENDER_BREAKPOINTS_FEATURE,
|
|
103
|
-
GRIDDO_RENDER_PAGES,
|
|
104
|
-
GRIDDO_RENDER_SITE,
|
|
105
|
-
GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
|
|
106
|
-
GRIDDO_SEARCH_FEATURE,
|
|
107
|
-
GRIDDO_SKIP_BUILD_CHECKS,
|
|
108
|
-
GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
|
|
109
|
-
GRIDDO_SSG_MAX_PAGE_SIZE,
|
|
110
|
-
GRIDDO_SSG_VERBOSE_LOGS,
|
|
111
|
-
GRIDDO_VERBOSE_LOGS,
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
const lifeCycleNames: Record<LifeCyclesNames, LifeCyclesNames> = {
|
|
115
|
-
__DEBUG__: "__DEBUG__",
|
|
116
|
-
Archive: "Archive",
|
|
117
|
-
Clean: "Clean",
|
|
118
|
-
Close: "Close",
|
|
119
|
-
Data: "Data",
|
|
120
|
-
HealthCheck: "HealthCheck",
|
|
121
|
-
Init: "Init",
|
|
122
|
-
Meta: "Meta",
|
|
123
|
-
Prepare: "Prepare",
|
|
124
|
-
Relocation: "Relocation",
|
|
125
|
-
Restore: "Restore",
|
|
126
|
-
SSG: "SSG",
|
|
127
|
-
} as const;
|
|
128
|
-
|
|
129
|
-
export { endpoints, envs, lifeCycleNames };
|
package/exporter/errors/index.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { ErrorsType } from "./errors-data";
|
|
2
|
-
|
|
3
|
-
import kleur from "kleur";
|
|
4
|
-
|
|
5
|
-
export type ErrorData = {
|
|
6
|
-
error: ErrorsType;
|
|
7
|
-
message: string;
|
|
8
|
-
expected?: string;
|
|
9
|
-
hint?: string;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export class RenderError extends Error {
|
|
13
|
-
constructor() {
|
|
14
|
-
super();
|
|
15
|
-
this.name = "InternalCXError";
|
|
16
|
-
this.stack = "";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Throws an error with the provided error message, expected value, and hint.
|
|
22
|
-
*/
|
|
23
|
-
function throwError(options: ErrorData, stack?: unknown) {
|
|
24
|
-
const { error, message, expected, hint } = options;
|
|
25
|
-
|
|
26
|
-
const errorColor = kleur.red("[ " + error + " ]");
|
|
27
|
-
const extraText = [expected, hint].filter(Boolean).join("\n");
|
|
28
|
-
|
|
29
|
-
console.log(`
|
|
30
|
-
${errorColor}
|
|
31
|
-
${message}
|
|
32
|
-
${extraText}
|
|
33
|
-
|
|
34
|
-
${kleur.red("stack")}
|
|
35
|
-
${JSON.stringify(stack, null, 2)}`);
|
|
36
|
-
|
|
37
|
-
throw new RenderError();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export { throwError };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { MemoryRegister, Register } from "../services/register";
|
|
2
|
-
|
|
3
|
-
const entries = {
|
|
4
|
-
API_RESPONSE_TOO_BIG: {
|
|
5
|
-
title: "API response size is too large",
|
|
6
|
-
description:
|
|
7
|
-
"API response size is too large and may affect rendering performance",
|
|
8
|
-
entries: [],
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const register = new Register(new MemoryRegister(entries));
|
|
13
|
-
|
|
14
|
-
export default register;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { MemoryRegister, Register } from "../services/register";
|
|
2
|
-
|
|
3
|
-
const entries = {
|
|
4
|
-
GATSBY_PAGE_SIZE_TOO_BIG: {
|
|
5
|
-
title: "Gatsby JSON page size is too large",
|
|
6
|
-
description:
|
|
7
|
-
"The JSON of some Gatsby pages (page-data folder) are too large and may affect rendering performance",
|
|
8
|
-
entries: [],
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const register = new Register(new MemoryRegister(entries));
|
|
13
|
-
|
|
14
|
-
export default register;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import fsx from "fs-extra";
|
|
2
|
-
|
|
3
|
-
type Entry = Record<string, unknown>;
|
|
4
|
-
|
|
5
|
-
type EntryData = {
|
|
6
|
-
title: string;
|
|
7
|
-
description: string;
|
|
8
|
-
entries: Array<Entry>;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
type Entries = Record<string, EntryData>;
|
|
12
|
-
|
|
13
|
-
interface RegisterBase<T extends Entries> {
|
|
14
|
-
insert(name: keyof T, entry: Entry): void;
|
|
15
|
-
get(name: keyof T): EntryData;
|
|
16
|
-
getAll(): T;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
class MemoryRegister<T extends Entries> implements RegisterBase<T> {
|
|
20
|
-
entries: T;
|
|
21
|
-
|
|
22
|
-
constructor(entries: T) {
|
|
23
|
-
this.entries = entries;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
insert(name: keyof T, entry: Entry) {
|
|
27
|
-
this.entries[name].entries.push(entry);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get(name: keyof T) {
|
|
31
|
-
return this.entries[name];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
getAll() {
|
|
35
|
-
return this.entries;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
class FileRegister<T extends Entries> implements RegisterBase<T> {
|
|
40
|
-
private readonly filePath: string;
|
|
41
|
-
entries: T;
|
|
42
|
-
|
|
43
|
-
constructor(filePath: string, entries: T) {
|
|
44
|
-
this.entries = entries;
|
|
45
|
-
this.filePath = filePath;
|
|
46
|
-
try {
|
|
47
|
-
fsx.writeJSONSync(this.filePath, this.entries);
|
|
48
|
-
} catch (e) {
|
|
49
|
-
console.error(`Error writing ${this.filePath}`, e);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
private getCurrentEntries(): T {
|
|
54
|
-
return fsx.readJSONSync(this.filePath, "utf8") as T;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
insert(name: keyof T, entry: Entry) {
|
|
58
|
-
try {
|
|
59
|
-
const currentEntries = this.getCurrentEntries();
|
|
60
|
-
currentEntries[name].entries.push(entry);
|
|
61
|
-
fsx.writeJSONSync(this.filePath, currentEntries);
|
|
62
|
-
} catch (e) {
|
|
63
|
-
console.error(e);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
get(name: keyof T) {
|
|
68
|
-
try {
|
|
69
|
-
return fsx.readJSONSync(this.filePath, "utf8")[name] as EntryData;
|
|
70
|
-
} catch (e) {
|
|
71
|
-
console.error(e);
|
|
72
|
-
throw new Error(`Error reading ${this.filePath}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
getAll() {
|
|
77
|
-
try {
|
|
78
|
-
return fsx.readJSONSync(this.filePath, "utf8") as T;
|
|
79
|
-
} catch (e) {
|
|
80
|
-
console.error(e);
|
|
81
|
-
throw new Error(`Error reading ${this.filePath}`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
class Register<T extends Entries> {
|
|
87
|
-
private strategy: RegisterBase<T>;
|
|
88
|
-
|
|
89
|
-
constructor(strategy: RegisterBase<T>) {
|
|
90
|
-
this.strategy = strategy;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
insert<K extends keyof T>(name: K, entry: Entry) {
|
|
94
|
-
this.strategy.insert(name, entry);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
get<K extends keyof T>(name: K) {
|
|
98
|
-
return this.strategy.get(name);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
getAll() {
|
|
102
|
-
return this.strategy.getAll();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export {
|
|
107
|
-
FileRegister,
|
|
108
|
-
MemoryRegister,
|
|
109
|
-
Register,
|
|
110
|
-
type Entries,
|
|
111
|
-
type Entry,
|
|
112
|
-
type EntryData,
|
|
113
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Settings } from "../types/global";
|
|
2
|
-
|
|
3
|
-
import { endpoints } from "../constants";
|
|
4
|
-
import { get, post } from "../utils/api";
|
|
5
|
-
|
|
6
|
-
async function getAllSettings() {
|
|
7
|
-
return get<Settings>({ endpoint: endpoints.SETTINGS });
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
async function resetRender() {
|
|
11
|
-
await post({
|
|
12
|
-
endpoint: endpoints.RESET_RENDER,
|
|
13
|
-
useApiCacheDir: false,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { getAllSettings, resetRender };
|