@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.
Files changed (254) hide show
  1. package/README.md +13 -240
  2. package/build/commands/end-render.d.ts +0 -1
  3. package/build/commands/end-render.js +31 -0
  4. package/build/commands/end-render.js.map +7 -0
  5. package/build/commands/prepare-assets-directory.js +9 -0
  6. package/build/commands/prepare-assets-directory.js.map +7 -0
  7. package/build/commands/prepare-domains-render.js +40 -0
  8. package/build/commands/prepare-domains-render.js.map +7 -0
  9. package/build/commands/reset-render.d.ts +0 -1
  10. package/build/commands/reset-render.js +31 -0
  11. package/build/commands/reset-render.js.map +7 -0
  12. package/build/commands/single-domain-upload-search-content.d.ts +1 -0
  13. package/build/commands/start-render.d.ts +0 -1
  14. package/build/commands/start-render.js +66 -0
  15. package/build/commands/start-render.js.map +7 -0
  16. package/build/commands/upload-search-content.d.ts +0 -1
  17. package/build/commands/upload-search-content.js +32 -0
  18. package/build/commands/upload-search-content.js.map +7 -0
  19. package/build/core/GriddoLog.d.ts +16 -0
  20. package/build/{utils/health-checks.d.ts → core/check-env-health.d.ts} +4 -2
  21. package/build/core/db-class.d.ts +11 -0
  22. package/build/core/db.d.ts +4 -0
  23. package/build/core/dist-rollback.d.ts +11 -0
  24. package/build/core/errors.d.ts +26 -0
  25. package/build/core/fs.d.ts +69 -0
  26. package/build/core/life-cycle.d.ts +26 -0
  27. package/build/core/logger.d.ts +18 -0
  28. package/build/core/objects.d.ts +11 -0
  29. package/build/core/print-logos.d.ts +5 -0
  30. package/build/index.d.ts +10 -29
  31. package/build/index.js +404 -73
  32. package/build/react/DynamicScript/index.d.ts +4 -0
  33. package/build/react/GriddoFavicon/index.d.ts +4 -0
  34. package/build/react/GriddoIntegrations/index.d.ts +3 -4
  35. package/build/react/GriddoIntegrations/utils.d.ts +7 -6
  36. package/build/react/GriddoOpenGraph/index.d.ts +10 -0
  37. package/build/react/index.d.ts +3 -2
  38. package/build/react/index.js +1 -3
  39. package/build/{utils → services}/api.d.ts +1 -1
  40. package/build/services/auth.d.ts +2 -5
  41. package/build/services/domains.d.ts +3 -4
  42. package/build/services/manage-sites.d.ts +22 -0
  43. package/build/services/manage-store.d.ts +32 -0
  44. package/build/services/navigation.d.ts +16 -16
  45. package/build/{utils → services}/pages.d.ts +3 -3
  46. package/build/services/reference-fields.d.ts +3 -3
  47. package/build/services/render-artifacts.d.ts +6 -0
  48. package/build/services/render.d.ts +70 -0
  49. package/build/services/robots.d.ts +2 -19
  50. package/build/services/sitemaps.d.ts +5 -0
  51. package/build/services/sites.d.ts +8 -5
  52. package/build/services/store.d.ts +10 -1
  53. package/build/shared/context.d.ts +36 -0
  54. package/build/shared/envs.d.ts +17 -0
  55. package/build/{errors/errors-data.d.ts → shared/errors.d.ts} +5 -3
  56. package/build/shared/npm-modules/brush.d.ts +18 -0
  57. package/build/shared/npm-modules/find-up-simple.d.ts +34 -0
  58. package/build/shared/npm-modules/pkg-dir.d.ts +7 -0
  59. package/build/shared/npm-modules/xml-parser.d.ts +4 -0
  60. package/build/{types → shared/types}/api.d.ts +18 -18
  61. package/build/{types → shared/types}/global.d.ts +15 -16
  62. package/build/{types → shared/types}/navigation.d.ts +5 -5
  63. package/build/{types → shared/types}/pages.d.ts +9 -9
  64. package/build/shared/types/render.d.ts +56 -0
  65. package/build/{types → shared/types}/sites.d.ts +18 -19
  66. package/build/shared/types.d.ts +15 -0
  67. package/build/ssg-adapters/gatsby/actions/clean.d.ts +3 -0
  68. package/build/ssg-adapters/gatsby/actions/close.d.ts +3 -0
  69. package/build/ssg-adapters/gatsby/actions/data.d.ts +2 -0
  70. package/build/ssg-adapters/gatsby/actions/healthCheck.d.ts +2 -0
  71. package/build/ssg-adapters/gatsby/actions/init.d.ts +2 -0
  72. package/build/ssg-adapters/gatsby/actions/logs.d.ts +3 -0
  73. package/build/ssg-adapters/gatsby/actions/meta.d.ts +2 -0
  74. package/build/ssg-adapters/gatsby/actions/prepare.d.ts +2 -0
  75. package/build/ssg-adapters/gatsby/actions/relocation.d.ts +2 -0
  76. package/build/ssg-adapters/gatsby/actions/restore.d.ts +3 -0
  77. package/build/ssg-adapters/gatsby/actions/ssg.d.ts +3 -0
  78. package/build/ssg-adapters/gatsby/actions/sync.d.ts +3 -0
  79. package/build/ssg-adapters/gatsby/index.d.ts +9 -0
  80. package/build/ssg-adapters/gatsby/shared/artifacts.d.ts +4 -0
  81. package/build/ssg-adapters/gatsby/shared/diff-assets.d.ts +15 -0
  82. package/build/ssg-adapters/gatsby/shared/extract-assets.d.ts +7 -0
  83. package/build/ssg-adapters/gatsby/shared/gatsby-build.d.ts +7 -0
  84. package/build/ssg-adapters/gatsby/shared/render-rollback.d.ts +18 -0
  85. package/build/ssg-adapters/gatsby/shared/sync-render.d.ts +26 -0
  86. package/build/ssg-adapters/gatsby/shared/types.d.ts +34 -0
  87. package/cli.mjs +231 -0
  88. package/exporter/build-esbuild.noop +42 -0
  89. package/exporter/build.sh +16 -24
  90. package/exporter/commands/README.md +142 -0
  91. package/exporter/commands/end-render.ts +53 -87
  92. package/exporter/commands/prepare-assets-directory.ts +35 -0
  93. package/exporter/commands/prepare-domains-render.ts +150 -33
  94. package/exporter/commands/reset-render.ts +13 -8
  95. package/exporter/commands/single-domain-upload-search-content.ts +206 -0
  96. package/exporter/commands/start-render.ts +14 -65
  97. package/exporter/commands/upload-search-content.ts +204 -26
  98. package/exporter/core/GriddoLog.ts +45 -0
  99. package/exporter/core/check-env-health.ts +203 -0
  100. package/exporter/core/db-class.ts +54 -0
  101. package/exporter/core/db.ts +33 -0
  102. package/exporter/core/dist-rollback.ts +49 -0
  103. package/exporter/core/errors.ts +93 -0
  104. package/exporter/core/fs.ts +385 -0
  105. package/exporter/{utils → core}/images.ts +1 -6
  106. package/exporter/{utils → core}/instance.ts +9 -13
  107. package/exporter/core/life-cycle.ts +73 -0
  108. package/exporter/core/logger.ts +137 -0
  109. package/exporter/core/objects.ts +37 -0
  110. package/exporter/core/print-logos.ts +21 -0
  111. package/exporter/index.ts +14 -56
  112. package/exporter/react/DynamicScript/index.tsx +33 -0
  113. package/exporter/react/{Favicon → GriddoFavicon}/index.tsx +3 -9
  114. package/exporter/react/GriddoIntegrations/index.tsx +17 -23
  115. package/exporter/react/GriddoIntegrations/utils.ts +24 -12
  116. package/exporter/react/GriddoOpenGraph/index.tsx +39 -0
  117. package/exporter/react/index.tsx +3 -9
  118. package/exporter/services/api.ts +306 -0
  119. package/exporter/services/auth.ts +8 -10
  120. package/exporter/services/domains.ts +23 -8
  121. package/exporter/services/manage-sites.ts +116 -0
  122. package/exporter/services/manage-store.ts +173 -0
  123. package/exporter/services/navigation.ts +12 -18
  124. package/exporter/{utils → services}/pages.ts +27 -92
  125. package/exporter/services/reference-fields.ts +14 -32
  126. package/exporter/services/render-artifacts.ts +44 -0
  127. package/exporter/services/render.ts +229 -0
  128. package/exporter/services/robots.ts +33 -61
  129. package/exporter/services/sitemaps.ts +129 -0
  130. package/exporter/services/sites.ts +40 -28
  131. package/exporter/services/store.ts +354 -321
  132. package/exporter/shared/context.ts +49 -0
  133. package/exporter/{constants → shared}/endpoints.ts +12 -11
  134. package/exporter/shared/envs.ts +58 -0
  135. package/exporter/{errors/errors-data.ts → shared/errors.ts} +24 -14
  136. package/exporter/shared/npm-modules/README.md +36 -0
  137. package/exporter/shared/npm-modules/brush.ts +34 -0
  138. package/exporter/shared/npm-modules/find-up-simple.ts +100 -0
  139. package/exporter/shared/npm-modules/pkg-dir.ts +17 -0
  140. package/exporter/shared/npm-modules/xml-parser.ts +57 -0
  141. package/exporter/{types → shared/types}/api.ts +40 -41
  142. package/exporter/{types → shared/types}/global.ts +17 -21
  143. package/exporter/{types → shared/types}/navigation.ts +3 -3
  144. package/exporter/{types → shared/types}/pages.ts +10 -11
  145. package/exporter/shared/types/render.ts +65 -0
  146. package/exporter/{types → shared/types}/sites.ts +18 -19
  147. package/exporter/shared/types.ts +15 -0
  148. package/exporter/ssg-adapters/gatsby/actions/clean.ts +26 -0
  149. package/exporter/ssg-adapters/gatsby/actions/close.ts +17 -0
  150. package/exporter/ssg-adapters/gatsby/actions/data.ts +22 -0
  151. package/exporter/ssg-adapters/gatsby/actions/healthCheck.ts +10 -0
  152. package/exporter/ssg-adapters/gatsby/actions/init.ts +12 -0
  153. package/exporter/ssg-adapters/gatsby/actions/logs.ts +10 -0
  154. package/exporter/ssg-adapters/gatsby/actions/meta.ts +13 -0
  155. package/exporter/ssg-adapters/gatsby/actions/prepare.ts +9 -0
  156. package/exporter/ssg-adapters/gatsby/actions/relocation.ts +15 -0
  157. package/exporter/ssg-adapters/gatsby/actions/restore.ts +21 -0
  158. package/exporter/ssg-adapters/gatsby/actions/ssg.ts +12 -0
  159. package/exporter/ssg-adapters/gatsby/actions/sync.ts +65 -0
  160. package/exporter/ssg-adapters/gatsby/index.ts +117 -0
  161. package/exporter/ssg-adapters/gatsby/shared/artifacts.ts +17 -0
  162. package/exporter/ssg-adapters/gatsby/shared/diff-assets.ts +128 -0
  163. package/exporter/ssg-adapters/gatsby/shared/extract-assets.ts +75 -0
  164. package/exporter/ssg-adapters/gatsby/shared/gatsby-build.ts +58 -0
  165. package/exporter/ssg-adapters/gatsby/shared/render-rollback.ts +33 -0
  166. package/exporter/ssg-adapters/gatsby/shared/sync-render.ts +298 -0
  167. package/exporter/ssg-adapters/gatsby/shared/types.ts +35 -0
  168. package/gatsby-browser.tsx +41 -58
  169. package/gatsby-config.ts +10 -17
  170. package/gatsby-node.ts +20 -79
  171. package/gatsby-ssr.tsx +2 -1
  172. package/package.json +41 -78
  173. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
  174. package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
  175. package/src/components/Head.tsx +28 -73
  176. package/src/components/template.tsx +6 -29
  177. package/src/gatsby-node-utils.ts +81 -2
  178. package/src/html.tsx +2 -11
  179. package/src/types.ts +3 -3
  180. package/tsconfig.commands.json +36 -0
  181. package/tsconfig.exporter.json +21 -0
  182. package/tsconfig.json +5 -3
  183. package/build/adapters/gatsby/index.d.ts +0 -4
  184. package/build/adapters/gatsby/utils.d.ts +0 -26
  185. package/build/artifacts/index.d.ts +0 -6
  186. package/build/constants/envs.d.ts +0 -37
  187. package/build/constants/index.d.ts +0 -57
  188. package/build/end-render.js +0 -74
  189. package/build/end-render.js.map +0 -7
  190. package/build/errors/index.d.ts +0 -15
  191. package/build/index.js.map +0 -7
  192. package/build/prepare-domains-render.js +0 -73
  193. package/build/prepare-domains-render.js.map +0 -7
  194. package/build/react/Favicon/index.d.ts +0 -5
  195. package/build/registers/api.d.ts +0 -9
  196. package/build/registers/gatsby.d.ts +0 -9
  197. package/build/registers/index.d.ts +0 -3
  198. package/build/reset-render.js +0 -74
  199. package/build/reset-render.js.map +0 -7
  200. package/build/services/register.d.ts +0 -36
  201. package/build/services/settings.d.ts +0 -4
  202. package/build/start-render.js +0 -100
  203. package/build/start-render.js.map +0 -7
  204. package/build/upload-search-content.js +0 -74
  205. package/build/upload-search-content.js.map +0 -7
  206. package/build/utils/alerts.d.ts +0 -3
  207. package/build/utils/cache.d.ts +0 -35
  208. package/build/utils/core-utils.d.ts +0 -107
  209. package/build/utils/create-build-data.d.ts +0 -8
  210. package/build/utils/domains.d.ts +0 -13
  211. package/build/utils/folders.d.ts +0 -53
  212. package/build/utils/loggin.d.ts +0 -51
  213. package/build/utils/render.d.ts +0 -13
  214. package/build/utils/searches.d.ts +0 -15
  215. package/build/utils/sites.d.ts +0 -31
  216. package/build/utils/store.d.ts +0 -81
  217. package/cx.config.d.ts +0 -5
  218. package/cx.config.js +0 -36
  219. package/exporter/adapters/gatsby/index.ts +0 -182
  220. package/exporter/adapters/gatsby/utils.ts +0 -186
  221. package/exporter/artifacts/README.md +0 -34
  222. package/exporter/artifacts/index.ts +0 -33
  223. package/exporter/commands/move-assets.ts +0 -11
  224. package/exporter/constants/envs.ts +0 -94
  225. package/exporter/constants/index.ts +0 -129
  226. package/exporter/errors/index.ts +0 -40
  227. package/exporter/registers/api.ts +0 -14
  228. package/exporter/registers/gatsby.ts +0 -14
  229. package/exporter/registers/index.ts +0 -4
  230. package/exporter/services/register.ts +0 -113
  231. package/exporter/services/settings.ts +0 -17
  232. package/exporter/utils/alerts.ts +0 -29
  233. package/exporter/utils/api.ts +0 -243
  234. package/exporter/utils/cache.ts +0 -142
  235. package/exporter/utils/core-utils.ts +0 -458
  236. package/exporter/utils/create-build-data.ts +0 -17
  237. package/exporter/utils/domains.ts +0 -39
  238. package/exporter/utils/folders.ts +0 -320
  239. package/exporter/utils/health-checks.ts +0 -64
  240. package/exporter/utils/loggin.ts +0 -184
  241. package/exporter/utils/render.ts +0 -71
  242. package/exporter/utils/searches.ts +0 -156
  243. package/exporter/utils/sites.ts +0 -312
  244. package/exporter/utils/store.ts +0 -314
  245. package/src/README.md +0 -7
  246. package/start-render.js +0 -7
  247. /package/build/commands/{move-assets.d.ts → prepare-assets-directory.d.ts} +0 -0
  248. /package/build/{utils → core}/images.d.ts +0 -0
  249. /package/build/{utils → core}/instance.d.ts +0 -0
  250. /package/build/react/{Favicon → GriddoFavicon}/utils.d.ts +0 -0
  251. /package/build/{constants → shared}/endpoints.d.ts +0 -0
  252. /package/build/{types → shared/types}/templates.d.ts +0 -0
  253. /package/exporter/react/{Favicon → GriddoFavicon}/utils.ts +0 -0
  254. /package/exporter/{types → shared/types}/templates.ts +0 -0
@@ -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
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint-disable node/shebang */
3
- /* eslint-disable node/no-missing-require */
4
-
5
- // This is the "bin" for the griddo-cx package used by "infra" to trigger a
6
- // render running `npm run griddo-cx`.
7
- require("./build/start-render.js");
File without changes
File without changes
File without changes
File without changes
File without changes