@griddo/cx 10.6.4 → 10.6.5

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 (72) hide show
  1. package/README.md +0 -2
  2. package/build/adapters/gatsby/index.d.ts +1 -1
  3. package/build/build-complete.js +69 -30
  4. package/build/constants/endpoints.d.ts +18 -0
  5. package/build/constants/envs.d.ts +33 -0
  6. package/build/constants/index.d.ts +53 -0
  7. package/build/index.d.ts +4 -3
  8. package/build/index.js +90 -49
  9. package/build/reset-render.js +69 -30
  10. package/build/run-start-render.js +90 -49
  11. package/build/services/settings.d.ts +3 -22
  12. package/build/services/sites.d.ts +34 -36
  13. package/build/start-render.js +90 -49
  14. package/build/types/global.d.ts +1 -1
  15. package/build/upload-search-content.js +70 -31
  16. package/build/utils/core-utils.d.ts +9 -60
  17. package/build/utils/domains.d.ts +5 -1
  18. package/build/utils/loggin.d.ts +49 -0
  19. package/build/utils/render.d.ts +11 -0
  20. package/cx.config.js +3 -4
  21. package/exporter/adapters/gatsby/index.ts +95 -257
  22. package/exporter/adapters/gatsby/utils.ts +11 -10
  23. package/exporter/browser/index.ts +4 -4
  24. package/exporter/constants/endpoints.ts +42 -0
  25. package/exporter/constants/envs.ts +86 -0
  26. package/exporter/constants/index.ts +120 -0
  27. package/exporter/errors/index.ts +2 -2
  28. package/exporter/index.ts +11 -10
  29. package/exporter/react/GriddoIntegrations/index.tsx +3 -3
  30. package/exporter/{build-complete.ts → scripts/build-complete.ts} +4 -4
  31. package/exporter/{reset-render.ts → scripts/reset-render.ts} +3 -3
  32. package/exporter/scripts/start-render.ts +26 -0
  33. package/exporter/{upload-search-content.ts → scripts/upload-search-content.ts} +3 -3
  34. package/exporter/services/auth.ts +7 -5
  35. package/exporter/services/distributors.ts +12 -18
  36. package/exporter/services/domains.ts +2 -12
  37. package/exporter/services/navigation.ts +10 -8
  38. package/exporter/services/robots.ts +2 -6
  39. package/exporter/services/settings.ts +7 -44
  40. package/exporter/services/sites.ts +115 -159
  41. package/exporter/services/store.ts +24 -29
  42. package/exporter/types/api.ts +1 -1
  43. package/exporter/types/global.ts +1 -0
  44. package/exporter/utils/api.ts +11 -10
  45. package/exporter/utils/core-utils.ts +49 -180
  46. package/exporter/utils/domains.ts +21 -3
  47. package/exporter/utils/folders.ts +3 -3
  48. package/exporter/utils/health-checks.ts +4 -4
  49. package/exporter/utils/instance.ts +3 -3
  50. package/exporter/utils/integrations.ts +12 -12
  51. package/exporter/utils/loggin.ts +159 -0
  52. package/exporter/utils/pages.ts +15 -15
  53. package/exporter/utils/render.ts +49 -0
  54. package/exporter/utils/searches.ts +5 -5
  55. package/exporter/utils/sites.ts +42 -48
  56. package/exporter/utils/store.ts +9 -9
  57. package/gatsby-browser.tsx +46 -48
  58. package/gatsby-config.ts +5 -5
  59. package/gatsby-node.ts +7 -7
  60. package/package.json +21 -26
  61. package/src/components/Head.tsx +1 -1
  62. package/src/gatsby-node-utils.ts +1 -1
  63. package/src/utils.ts +1 -1
  64. package/exporter/start-render.ts +0 -18
  65. /package/build/{build-complete.d.ts → scripts/build-complete.d.ts} +0 -0
  66. /package/build/{move-assets.d.ts → scripts/move-assets.d.ts} +0 -0
  67. /package/build/{reset-render.d.ts → scripts/reset-render.d.ts} +0 -0
  68. /package/build/{run-start-render.d.ts → scripts/run-start-render.d.ts} +0 -0
  69. /package/build/{start-render.d.ts → scripts/start-render.d.ts} +0 -0
  70. /package/build/{upload-search-content.d.ts → scripts/upload-search-content.d.ts} +0 -0
  71. /package/exporter/{move-assets.ts → scripts/move-assets.ts} +0 -0
  72. /package/exporter/{run-start-render.ts → scripts/run-start-render.ts} +0 -0
@@ -78,8 +78,8 @@ function getPageMetaData(params: Core.Page): Core.Page["pageMetaData"] {
78
78
  canonicalURL && canonicalURL.trim() && canonicalURL !== fullUrl
79
79
  ? canonicalURL.trim()
80
80
  : isIndexed
81
- ? fullUrl
82
- : undefined,
81
+ ? fullUrl
82
+ : undefined,
83
83
  locale,
84
84
  url,
85
85
  index: isIndexed ? "index" : "noindex",
@@ -105,7 +105,7 @@ function getPageMetaData(params: Core.Page): Core.Page["pageMetaData"] {
105
105
  */
106
106
  async function createGriddoPageObject(
107
107
  page: GriddoSinglePage | GriddoListPage | GriddoMultiPage,
108
- additionalInfo: PageAdditionalInfo
108
+ additionalInfo: PageAdditionalInfo,
109
109
  ): Promise<GriddoPageObject> {
110
110
  // Extract some props from page
111
111
  const {
@@ -207,7 +207,7 @@ async function createGriddoPageObject(
207
207
  */
208
208
  async function createGriddoSinglePage(
209
209
  page: GriddoSinglePage,
210
- additionalInfo: PageAdditionalInfo
210
+ additionalInfo: PageAdditionalInfo,
211
211
  ) {
212
212
  return await createGriddoPageObject(page, additionalInfo);
213
213
  }
@@ -224,7 +224,7 @@ async function createGriddoListPages(
224
224
  template,
225
225
  totalQueriedItems,
226
226
  }: GriddoListPage,
227
- additionalInfo: PageAdditionalInfo
227
+ additionalInfo: PageAdditionalInfo,
228
228
  ) {
229
229
  const allPages = pages.map(async (dataInPage, idx) => {
230
230
  const isFirstPage = idx === 0;
@@ -287,12 +287,12 @@ async function createGriddoListPages(
287
287
  */
288
288
  function createGriddoMultiPages(
289
289
  page: GriddoMultiPage,
290
- additionalInfo: PageAdditionalInfo
290
+ additionalInfo: PageAdditionalInfo,
291
291
  ) {
292
292
  const { multiPageElements: multiPageElementsBulk, ...cleanPage } = page;
293
293
  // TODO: Use structuredClone() when node 18 is available.
294
294
  const multiPageElements: MultiPageElements = JSON.parse(
295
- JSON.stringify(multiPageElementsBulk)
295
+ JSON.stringify(multiPageElementsBulk),
296
296
  );
297
297
 
298
298
  // Si no hay un elemento sin slug, como mínimo hay que dibujar una página
@@ -365,7 +365,7 @@ function createGriddoMultiPages(
365
365
  * @param page The page to get the multipage parts.
366
366
  */
367
367
  function getMultiPageElements(
368
- page: TemplateWithDistributor
368
+ page: TemplateWithDistributor,
369
369
  ): Promise<MultiPageElements> | null {
370
370
  const multiPageElements = new Promise((resolve) => {
371
371
  // Recursive
@@ -373,7 +373,7 @@ function getMultiPageElements(
373
373
  // No puede ser Core.Page['template'] porque a medida que va bajando en
374
374
  // el árbol ya no es la estructura de un template.
375
375
  template: Record<string, unknown>,
376
- level = 0
376
+ level = 0,
377
377
  ) => {
378
378
  // If it doesn't have a "template strcuture"
379
379
  if (!template || typeof template !== "object") return;
@@ -388,7 +388,7 @@ function getMultiPageElements(
388
388
  const isValidComponent =
389
389
  currentComponent || typeof currentComponent === "object";
390
390
  const hasGriddoMultiPageProp = JSON.stringify(
391
- currentComponent
391
+ currentComponent,
392
392
  ).includes('"hasGriddoMultiPage":true');
393
393
 
394
394
  if (!isValidComponent) continue;
@@ -434,7 +434,7 @@ function getMultiPageElements(
434
434
  function getPage(
435
435
  itemsPerPage: number,
436
436
  items: Array<Fields.QueriedDataItem>,
437
- page: number
437
+ page: number,
438
438
  ) {
439
439
  return items?.slice(itemsPerPage * (page - 1), itemsPerPage * page);
440
440
  }
@@ -451,13 +451,13 @@ function getPage(
451
451
  */
452
452
  function getPageCluster(
453
453
  itemsPerPage: number,
454
- items: Array<Fields.QueriedDataItem>
454
+ items: Array<Fields.QueriedDataItem>,
455
455
  ) {
456
456
  const totalPagesCount = Math.ceil(items.length / itemsPerPage) || 1;
457
457
  const pageNumbers = Array.from({ length: totalPagesCount }, (_, i) => i + 1);
458
458
 
459
459
  return pageNumbers?.map((pageNumber) =>
460
- getPage(itemsPerPage, items, pageNumber)
460
+ getPage(itemsPerPage, items, pageNumber),
461
461
  );
462
462
  }
463
463
 
@@ -501,7 +501,7 @@ function removeDuplicateTrailing(url: string) {
501
501
  function addPageNumberToUrl(
502
502
  url: string,
503
503
  pageNumber: number,
504
- options?: { addEndingSlash: boolean }
504
+ options?: { addEndingSlash: boolean },
505
505
  ) {
506
506
  const trailingSlash = url.endsWith("/") ? "" : "/";
507
507
  const endingSlash = options?.addEndingSlash ? "/" : "";
@@ -511,7 +511,7 @@ function addPageNumberToUrl(
511
511
  }
512
512
 
513
513
  return removeDuplicateTrailing(
514
- `${url}${trailingSlash}${pageNumber}${endingSlash}`
514
+ `${url}${trailingSlash}${pageNumber}${endingSlash}`,
515
515
  );
516
516
  }
517
517
 
@@ -0,0 +1,49 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+
4
+ import { getConfig } from "./core-utils";
5
+ import { throwError } from "../errors";
6
+ import { RenderUUIDError } from "../errors/errors-data";
7
+
8
+ const config = getConfig();
9
+
10
+ /**
11
+ * Creates a sentinel file with the current date and time.
12
+ * This file is used to track later if node_modules/@griddo/cx was cleaned by a
13
+ * npm install from a deploy.
14
+ */
15
+ function createSentinelDomainRenderFile() {
16
+ const { __cx } = config.paths();
17
+ const renderSentinelFile = path.join(__cx, ".render-sentinel");
18
+ fs.writeFileSync(renderSentinelFile, new Date().toISOString());
19
+ }
20
+
21
+ function deleteSentinelFile() {
22
+ const { __cx } = config.paths();
23
+ const renderSentinelFile = path.join(__cx, ".render-sentinel");
24
+ fs.unlinkSync(renderSentinelFile);
25
+ }
26
+
27
+ function isValidRenderProcessOrThrow() {
28
+ const { __cx } = config.paths();
29
+ const renderSentinelFile = path.join(__cx, ".render-sentinel");
30
+ if (!fs.existsSync(renderSentinelFile)) {
31
+ throwError(RenderUUIDError);
32
+ }
33
+ }
34
+
35
+ function initRender() {
36
+ createSentinelDomainRenderFile();
37
+ }
38
+
39
+ function finishRender() {
40
+ return undefined;
41
+ }
42
+
43
+ export {
44
+ finishRender,
45
+ initRender,
46
+ isValidRenderProcessOrThrow,
47
+ createSentinelDomainRenderFile,
48
+ deleteSentinelFile,
49
+ };
@@ -10,9 +10,7 @@ import path from "node:path";
10
10
  import { post } from "./api";
11
11
  import { getConfig } from "./core-utils";
12
12
  import { getBuildPagesFromCachedStore } from "./store";
13
-
14
- // Envs
15
- const API_URL = process.env.API_URL as string;
13
+ import { endpoints } from "../constants";
16
14
 
17
15
  /**
18
16
  * Save in the BBDD the content of a page parsed without HTML tags.
@@ -33,7 +31,7 @@ async function postSearchInfo(props: PostSearchInfoProps) {
33
31
  } = props;
34
32
 
35
33
  const response = await post<PostSearchInfoResponse>({
36
- endpoint: `${API_URL}/search`,
34
+ endpoint: endpoints.SEARCH,
37
35
  body: {
38
36
  title,
39
37
  description,
@@ -161,7 +159,9 @@ async function uploadRenderedSearchContentToAPI(
161
159
 
162
160
  async function startAIEmbeddings() {
163
161
  try {
164
- await post<AIEmbeddingsResponse>({ endpoint: `${API_URL}/ai/embeddings` });
162
+ await post<AIEmbeddingsResponse>({
163
+ endpoint: endpoints.AI_EMBEDDINGS,
164
+ });
165
165
  } catch (error) {
166
166
  console.warn(
167
167
  "There was an error with the ai embeddings",
@@ -5,28 +5,20 @@ import path from "node:path";
5
5
  import fs from "fs-extra";
6
6
  import { parse } from "js2xmlparser";
7
7
 
8
- import { getConfig, logInfo } from "./core-utils";
8
+ import { getConfig } from "./core-utils";
9
+ import { infoLog } from "./loggin";
9
10
  import { getBuildMetadata } from "./store";
11
+ import { envs } from "../constants";
10
12
  import { AuthService } from "../services/auth";
11
- import { SitesService } from "../services/sites";
12
-
13
- // Envs
14
- const API_URL = process.env.API_URL;
15
- const GRIDDO_RENDER_ALL_SITES =
16
- !!process.env.GRIDDO_RENDER_ALL_SITES || !!process.env.updateAllSites;
17
- const GRIDDO_RENDER_SITE =
18
- (process.env.GRIDDO_RENDER_SITE &&
19
- parseInt(process.env.GRIDDO_RENDER_SITE)) ||
20
- (process.env.testSite && parseInt(process.env.testSite));
21
-
22
- const GRIDDO_RENDER_PAGES = (
23
- process.env.GRIDDO_RENDER_PAGES ||
24
- process.env.testPage ||
25
- ""
26
- )
27
- .split(",")
28
- .map((item) => parseInt(item))
29
- .filter(Boolean);
13
+ import {
14
+ endSiteRender,
15
+ getAllSites,
16
+ getSiteInfo,
17
+ getSiteLanguages,
18
+ getSitemap,
19
+ getSiteSocials,
20
+ startSiteRender,
21
+ } from "../services/sites";
30
22
 
31
23
  const config = getConfig();
32
24
 
@@ -34,35 +26,37 @@ const config = getConfig();
34
26
  * Check the instance sites and returns site prepared to be published and unpublished.
35
27
  */
36
28
  async function checkSites(domain: string) {
37
- console.info(`API URL ${API_URL as string}`);
29
+ console.info(`API URL ${envs.GRIDDO_API_URL as string}`);
38
30
 
39
31
  // Login to API
40
32
  await AuthService.login();
41
33
 
42
34
  // Get all sites. An array of Site
43
- const allSites = await SitesService.getAll();
35
+ const allSites = await getAllSites();
36
+
44
37
  // Filter the array of sites to get only the ones to build/render
45
- const validSites = GRIDDO_RENDER_ALL_SITES
38
+ const validSites = envs.GRIDDO_RENDER_ALL_SITES
46
39
  ? allSites.filter(
47
- (site) => !GRIDDO_RENDER_SITE || site.id === GRIDDO_RENDER_SITE
48
- )
40
+ (site) =>
41
+ !envs.GRIDDO_RENDER_SITE || site.id === envs.GRIDDO_RENDER_SITE,
42
+ )
49
43
  : allSites.filter((site) =>
50
- GRIDDO_RENDER_SITE
51
- ? site.id === GRIDDO_RENDER_SITE
52
- : !!site.shouldBeUpdated
53
- );
44
+ envs.GRIDDO_RENDER_SITE
45
+ ? site.id === envs.GRIDDO_RENDER_SITE
46
+ : !!site.shouldBeUpdated,
47
+ );
54
48
 
55
49
  // If there are valid sites...
56
50
  if (validSites.length) {
57
51
  for (const site of validSites) {
58
- const { items } = await SitesService.getLanguages(site.id);
52
+ const { items } = await getSiteLanguages(site.id);
59
53
 
60
54
  // Añadimos la prop domains con el dominio "cocinado" con los idiomas y teniendo en cuenta solo el dominio actual
61
55
  site.domains = items
62
56
  .filter(
63
57
  (item) =>
64
58
  item.domain &&
65
- (item.domain.slug === domain || item.domain.slug === `/${domain}`)
59
+ (item.domain.slug === domain || item.domain.slug === `/${domain}`),
66
60
  )
67
61
  .map((item) => ({ [item.id]: `${item.domain.slug}${item.path}` }));
68
62
  }
@@ -70,14 +64,14 @@ async function checkSites(domain: string) {
70
64
 
71
65
  // Save sites object to publish
72
66
  const sitesToPublish = validSites.filter((site) =>
73
- GRIDDO_RENDER_SITE
74
- ? site.id === GRIDDO_RENDER_SITE
75
- : !!site.isPublished && site.domains.length > 0
67
+ envs.GRIDDO_RENDER_SITE
68
+ ? site.id === envs.GRIDDO_RENDER_SITE
69
+ : !!site.isPublished && site.domains.length > 0,
76
70
  );
77
71
 
78
72
  // Save sites object to unpublish
79
73
  const sitesToUnpublish = validSites.filter(
80
- (site) => !site.isPublished && site.shouldBeUpdated
74
+ (site) => !site.isPublished && site.shouldBeUpdated,
81
75
  );
82
76
 
83
77
  return {
@@ -95,7 +89,7 @@ async function checkSites(domain: string) {
95
89
  */
96
90
  async function unpublishSites(sites: Array<Site>) {
97
91
  for (const site of sites) {
98
- const buildInfo = await SitesService.startSiteRender(site.id);
92
+ const buildInfo = await startSiteRender(site.id);
99
93
  const { siteHash } = buildInfo;
100
94
  const body = {
101
95
  siteHash,
@@ -103,7 +97,7 @@ async function unpublishSites(sites: Array<Site>) {
103
97
  unpublishHashes: [],
104
98
  };
105
99
 
106
- await SitesService.endSiteRender(site.id, body);
100
+ await endSiteRender(site.id, body);
107
101
  }
108
102
  }
109
103
 
@@ -116,17 +110,17 @@ async function unpublishSites(sites: Array<Site>) {
116
110
  * @see SiteData
117
111
  */
118
112
  async function getSiteData(siteID: number) {
119
- const buildData = await SitesService.startSiteRender(siteID);
120
- const siteInfo = await SitesService.getInfo(siteID);
121
- const siteLangs = await SitesService.getLanguages(siteID);
122
- const socials = await SitesService.getSocials(siteID);
113
+ const buildData = await startSiteRender(siteID);
114
+ const siteInfo = await getSiteInfo(siteID);
115
+ const siteLangs = await getSiteLanguages(siteID);
116
+ const socials = await getSiteSocials(siteID);
123
117
  const siteLangsInfo = siteLangs.items;
124
118
  const defaultLang = siteLangsInfo.find((lang) => lang.isDefault);
125
119
 
126
120
  const { siteHash, unpublishHashes, publishIds } = buildData;
127
121
  const { headers, footers } = siteInfo;
128
- const validPagesIds = GRIDDO_RENDER_PAGES.length
129
- ? GRIDDO_RENDER_PAGES.filter((item) => publishIds.includes(item))
122
+ const validPagesIds = envs.GRIDDO_RENDER_PAGES.length
123
+ ? envs.GRIDDO_RENDER_PAGES.filter((item) => publishIds.includes(item))
130
124
  : publishIds;
131
125
 
132
126
  const siteData: SiteData = {
@@ -167,10 +161,10 @@ async function generateBuildReport() {
167
161
 
168
162
  fs.writeFileSync(
169
163
  path.join(__cx, "dist", "__build-report__.json"),
170
- JSON.stringify(report)
164
+ JSON.stringify(report),
171
165
  );
172
166
 
173
- logInfo(`Build report saved for ${buildSitesInfo.length} site(s)`);
167
+ infoLog(`Build report saved for ${buildSitesInfo.length} site(s)`);
174
168
  }
175
169
 
176
170
  /**
@@ -189,7 +183,7 @@ async function generateSitemaps() {
189
183
  for (const lang of languages) {
190
184
  if (AuthService.headers) AuthService.headers["lang"] = lang.id.toString();
191
185
 
192
- const response = await SitesService.getSitemap(siteID);
186
+ const response = await getSitemap(siteID);
193
187
 
194
188
  if (!response) continue;
195
189
 
@@ -201,7 +195,7 @@ async function generateSitemaps() {
201
195
  if (!home) continue;
202
196
 
203
197
  const langDomain = site.domains.find(
204
- (domain) => Object.keys(domain)[0] == lang.id.toString()
198
+ (domain) => Object.keys(domain)[0] == lang.id.toString(),
205
199
  );
206
200
 
207
201
  if (!langDomain) continue;
@@ -232,7 +226,7 @@ async function generateSitemaps() {
232
226
  saveFile(exactPath, siteMap);
233
227
 
234
228
  sitemaps.push(
235
- `${home.endsWith("/") ? home.slice(0, -1) : home}${sitemapName}`
229
+ `${home.endsWith("/") ? home.slice(0, -1) : home}${sitemapName}`,
236
230
  );
237
231
  }
238
232
 
@@ -19,7 +19,7 @@ const config = getConfig();
19
19
  * @param domain - The domain to get the pages from.
20
20
  */
21
21
  function getBuildPagesFromCachedStore<PageType extends GriddoPageObject>(
22
- domain: string
22
+ domain: string,
23
23
  ) {
24
24
  const { __caches } = config.paths(domain);
25
25
  return getBuildPagesFromStore<PageType>({
@@ -44,7 +44,7 @@ function* getBuildPagesFromStore<PageType extends GriddoPageObject>(args?: {
44
44
  const { __cx } = config.paths();
45
45
  const pagesDirPath = basePath || path.join(__cx, "store");
46
46
  const jsonFilePaths = walk(pagesDirPath).filter(
47
- (file) => path.extname(file) === ".json"
47
+ (file) => path.extname(file) === ".json",
48
48
  );
49
49
 
50
50
  for (const filePath of jsonFilePaths) {
@@ -77,7 +77,7 @@ function getBuildPagesPath() {
77
77
 
78
78
  const PAGES_DIR = path.join(__cx, "store");
79
79
  const PAGE_FILES = walk(PAGES_DIR).filter(
80
- (file) => path.extname(file) === ".json"
80
+ (file) => path.extname(file) === ".json",
81
81
  );
82
82
 
83
83
  return PAGE_FILES;
@@ -90,7 +90,7 @@ function getBuildPagesPath() {
90
90
  async function getBuildMetadata(): Promise<BuildMetaData> {
91
91
  const { __cx } = config.paths();
92
92
  const { sitesToPublish, createdPages, buildProcessData } = fsx.readJSONSync(
93
- path.join(__cx, "store", "metadata", "render-info.json")
93
+ path.join(__cx, "store", "metadata", "render-info.json"),
94
94
  );
95
95
 
96
96
  return {
@@ -125,7 +125,7 @@ function saveRenderInfoInStore(basePath: string, renderInfo: RenderInfo) {
125
125
 
126
126
  fs.writeFileSync(
127
127
  path.join(__cx, "store", "metadata", "render-info.json"),
128
- JSON.stringify(renderInfo)
128
+ JSON.stringify(renderInfo),
129
129
  );
130
130
  }
131
131
 
@@ -136,7 +136,7 @@ function saveRenderInfoInStore(basePath: string, renderInfo: RenderInfo) {
136
136
  */
137
137
  function getPagesInStoreDirBySitePages(
138
138
  basePath: string,
139
- pages: Array<number>
139
+ pages: Array<number>,
140
140
  ): Array<number> {
141
141
  const allPagesInStore = getPageInStoreDir(basePath);
142
142
  const pagesBySite = allPagesInStore.filter((page) => pages.includes(page));
@@ -234,7 +234,7 @@ async function getPagesToCreateOrDelete(
234
234
  pages: Array<number>;
235
235
  validPagesIds: Array<number>;
236
236
  changedPages: Array<number>;
237
- }
237
+ },
238
238
  ) {
239
239
  const { changedPages, pages, validPagesIds, sitesToPublish } = sitePages;
240
240
  // Array<ids> de las páginas que están físicamente en el store en el
@@ -244,7 +244,7 @@ async function getPagesToCreateOrDelete(
244
244
  // Array<ids> que están el `validPagesIds` pero no están por algún
245
245
  // motivo en el store. Se incluyen porque deben ser creadas.
246
246
  const pagesMissingInStore = validPagesIds.filter(
247
- (page) => !pagesInStore.includes(page)
247
+ (page) => !pagesInStore.includes(page),
248
248
  );
249
249
 
250
250
  // Array<ids> para enviar al store, que son las que han cambiado y
@@ -261,7 +261,7 @@ async function getPagesToCreateOrDelete(
261
261
  // 1 - Elimina del array final las páginas borradas.
262
262
  // 2 - Elimina las posibles páginas (ids) duplicadas. (new Set)
263
263
  const pagesToWriteToStore = Array.from(new Set(pagesToStore)).filter(
264
- (page) => !pagesToDeleteFromStore.includes(page)
264
+ (page) => !pagesToDeleteFromStore.includes(page),
265
265
  );
266
266
 
267
267
  // 1 - Leer el store
@@ -23,7 +23,7 @@ export const onInitialClientRender = () => {
23
23
  };
24
24
 
25
25
  export const onPostPrefetchPathname: GatsbyBrowser["onPostPrefetchPathname"] = (
26
- props
26
+ props,
27
27
  ) => {
28
28
  if (browser.onPostPrefetchPathname) {
29
29
  browser.onPostPrefetchPathname(props);
@@ -37,7 +37,7 @@ export const onPreRouteUpdate: GatsbyBrowser["onPreRouteUpdate"] = (props) => {
37
37
  };
38
38
 
39
39
  export const onPrefetchPathname: GatsbyBrowser["onPrefetchPathname"] = (
40
- props
40
+ props,
41
41
  ) => {
42
42
  if (browser.onPrefetchPathname) {
43
43
  browser.onPrefetchPathname(props);
@@ -45,7 +45,7 @@ export const onPrefetchPathname: GatsbyBrowser["onPrefetchPathname"] = (
45
45
  };
46
46
 
47
47
  export const onRouteUpdateDelayed: GatsbyBrowser["onRouteUpdateDelayed"] = (
48
- props
48
+ props,
49
49
  ) => {
50
50
  if (browser.onServiceWorkerActive) {
51
51
  browser.onRouteUpdateDelayed(props);
@@ -53,59 +53,57 @@ export const onRouteUpdateDelayed: GatsbyBrowser["onRouteUpdateDelayed"] = (
53
53
  };
54
54
 
55
55
  export const onServiceWorkerActive: GatsbyBrowser["onServiceWorkerActive"] = (
56
- props
56
+ props,
57
57
  ) => {
58
58
  if (browser.onServiceWorkerActive) {
59
59
  browser.onServiceWorkerActive(props);
60
60
  }
61
61
  };
62
62
 
63
- export const onServiceWorkerInstalled: GatsbyBrowser["onServiceWorkerInstalled"] = (
64
- props
65
- ) => {
66
- if (browser.onServiceWorkerInstalled) {
67
- browser.onServiceWorkerInstalled(props);
68
- }
69
- };
70
-
71
- export const onServiceWorkerRedundant: GatsbyBrowser["onServiceWorkerRedundant"] = (
72
- props
73
- ) => {
74
- if (browser.onServiceWorkerRedundant) {
75
- browser.onServiceWorkerRedundant(props);
76
- }
77
- };
78
-
79
- export const onServiceWorkerUpdateFound: GatsbyBrowser["onServiceWorkerUpdateFound"] = (
80
- props
81
- ) => {
82
- if (browser.onServiceWorkerUpdateFound) {
83
- browser.onServiceWorkerUpdateFound(props);
84
- }
85
- };
86
-
87
- export const onServiceWorkerUpdateReady: GatsbyBrowser["onServiceWorkerUpdateReady"] = (
88
- props
89
- ) => {
90
- if (browser.onServiceWorkerUpdateReady) {
91
- browser.onServiceWorkerUpdateReady(props);
92
- }
93
- };
94
-
95
- export const registerServiceWorker: GatsbyBrowser["registerServiceWorker"] = () => {
96
- if (browser.registerServiceWorker) {
97
- return browser.registerServiceWorker();
98
- }
99
- };
100
-
101
- export const replaceHydrateFunction: GatsbyBrowser["replaceHydrateFunction"] = () => {
102
- if (browser.replaceHydrateFunction) {
103
- return browser.replaceHydrateFunction();
104
- }
105
- };
63
+ export const onServiceWorkerInstalled: GatsbyBrowser["onServiceWorkerInstalled"] =
64
+ (props) => {
65
+ if (browser.onServiceWorkerInstalled) {
66
+ browser.onServiceWorkerInstalled(props);
67
+ }
68
+ };
69
+
70
+ export const onServiceWorkerRedundant: GatsbyBrowser["onServiceWorkerRedundant"] =
71
+ (props) => {
72
+ if (browser.onServiceWorkerRedundant) {
73
+ browser.onServiceWorkerRedundant(props);
74
+ }
75
+ };
76
+
77
+ export const onServiceWorkerUpdateFound: GatsbyBrowser["onServiceWorkerUpdateFound"] =
78
+ (props) => {
79
+ if (browser.onServiceWorkerUpdateFound) {
80
+ browser.onServiceWorkerUpdateFound(props);
81
+ }
82
+ };
83
+
84
+ export const onServiceWorkerUpdateReady: GatsbyBrowser["onServiceWorkerUpdateReady"] =
85
+ (props) => {
86
+ if (browser.onServiceWorkerUpdateReady) {
87
+ browser.onServiceWorkerUpdateReady(props);
88
+ }
89
+ };
90
+
91
+ export const registerServiceWorker: GatsbyBrowser["registerServiceWorker"] =
92
+ () => {
93
+ if (browser.registerServiceWorker) {
94
+ return browser.registerServiceWorker();
95
+ }
96
+ };
97
+
98
+ export const replaceHydrateFunction: GatsbyBrowser["replaceHydrateFunction"] =
99
+ () => {
100
+ if (browser.replaceHydrateFunction) {
101
+ return browser.replaceHydrateFunction();
102
+ }
103
+ };
106
104
 
107
105
  export const shouldUpdateScroll: GatsbyBrowser["shouldUpdateScroll"] = (
108
- props
106
+ props,
109
107
  ) => {
110
108
  if (browser.shouldUpdateScroll) {
111
109
  return browser.shouldUpdateScroll(props);
package/gatsby-config.ts CHANGED
@@ -2,7 +2,7 @@ import type { GatsbyConfig } from "gatsby";
2
2
 
3
3
  import dotenv from "dotenv";
4
4
 
5
- import { resolveComponentsPath, verbose } from "./build";
5
+ import { resolveComponentsPath, verboseLog } from "./build";
6
6
 
7
7
  dotenv.config();
8
8
 
@@ -12,13 +12,13 @@ dotenv.config();
12
12
  const griddoAssetPrefixWithDomain =
13
13
  process.env.SPAWN_ASSET_PREFIX_WITH_DOMAIN || undefined;
14
14
 
15
- verbose(`set config.assetPrefix=${griddoAssetPrefixWithDomain}`);
15
+ verboseLog(`set config.assetPrefix=${griddoAssetPrefixWithDomain}`);
16
16
 
17
17
  // Gatsby configuration file from client
18
18
  // eslint-disable-next-line @typescript-eslint/no-var-requires
19
- const { plugins, ...gatsbyConfig } = require(resolveComponentsPath(
20
- "builder.config.js"
21
- ));
19
+ const { plugins, ...gatsbyConfig } = require(
20
+ resolveComponentsPath("builder.config.js"),
21
+ );
22
22
 
23
23
  const config: GatsbyConfig = {
24
24
  // Client config
package/gatsby-node.ts CHANGED
@@ -6,9 +6,9 @@ import path from "node:path";
6
6
  import {
7
7
  getBuildPagesFromStore,
8
8
  getConfig,
9
- logInfo,
10
- logPageSize,
11
- verbose,
9
+ infoLog,
10
+ pageSizeLog,
11
+ verboseLog,
12
12
  } from "./build";
13
13
 
14
14
  const griddoBuildLogs = JSON.parse(process.env.GRIDDO_BUILD_LOGS || "false");
@@ -23,8 +23,8 @@ const pages = getBuildPagesFromStore<GatsbyPageObject>({
23
23
  });
24
24
 
25
25
  const createPages: GatsbyNode["createPages"] = async ({ actions }) => {
26
- verbose(`read assetPrefixWithDomain=${assetPrefixWithDomain}`);
27
- verbose(`set needsAssetDomainPrefix=${needsAssetDomainPrefix}`);
26
+ verboseLog(`read assetPrefixWithDomain=${assetPrefixWithDomain}`);
27
+ verboseLog(`set needsAssetDomainPrefix=${needsAssetDomainPrefix}`);
28
28
 
29
29
  for await (const page of pages) {
30
30
  if (!page) return;
@@ -41,9 +41,9 @@ const createPages: GatsbyNode["createPages"] = async ({ actions }) => {
41
41
  if (griddoBuildLogs) {
42
42
  const path = page.path;
43
43
  const id = page.context.id;
44
- const size = logPageSize(Math.round(page.size || 0));
44
+ const size = pageSizeLog(Math.round(page.size || 0));
45
45
 
46
- logInfo(`Creating page ${path} - ${id} - ${size}`);
46
+ infoLog(`Creating page ${path} - ${id} - ${size}`);
47
47
  }
48
48
  }
49
49
  };