@griddo/cx 11.4.17-rc.5 → 11.4.18-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.
Files changed (135) hide show
  1. package/README.md +15 -32
  2. package/{cx.config.d.ts → build/config.d.ts} +1 -4
  3. package/build/end-render.js +26 -26
  4. package/build/end-render.js.map +4 -4
  5. package/build/exporter/adapters/gatsby/actions/clean.d.ts +2 -0
  6. package/build/exporter/adapters/gatsby/actions/close.d.ts +2 -0
  7. package/build/exporter/adapters/gatsby/actions/data.d.ts +2 -0
  8. package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +2 -0
  9. package/build/exporter/adapters/gatsby/actions/init.d.ts +2 -0
  10. package/build/exporter/adapters/gatsby/actions/meta.d.ts +2 -0
  11. package/build/exporter/adapters/gatsby/actions/prepare.d.ts +2 -0
  12. package/build/exporter/adapters/gatsby/actions/relocation.d.ts +2 -0
  13. package/build/exporter/adapters/gatsby/actions/restore.d.ts +2 -0
  14. package/build/exporter/adapters/gatsby/actions/ssg.d.ts +2 -0
  15. package/build/exporter/adapters/gatsby/actions/sync.d.ts +2 -0
  16. package/build/exporter/adapters/gatsby/constants.d.ts +5 -0
  17. package/build/exporter/adapters/gatsby/context.d.ts +36 -0
  18. package/build/exporter/adapters/gatsby/index.d.ts +17 -0
  19. package/build/exporter/adapters/gatsby/sync-render.d.ts +44 -0
  20. package/build/{adapters → exporter/adapters}/gatsby/utils.d.ts +8 -3
  21. package/build/exporter/index.d.ts +25 -0
  22. package/build/{services → exporter/services}/store.d.ts +6 -1
  23. package/build/{types → exporter/types}/global.d.ts +4 -3
  24. package/build/{utils → exporter/utils}/core-utils.d.ts +7 -18
  25. package/build/{utils → exporter/utils}/create-build-data.d.ts +6 -1
  26. package/build/{utils → exporter/utils}/folders.d.ts +7 -3
  27. package/build/exporter/utils/render.d.ts +14 -0
  28. package/build/exporter/utils/searches.d.ts +7 -0
  29. package/build/{utils → exporter/utils}/store.d.ts +3 -2
  30. package/build/index.js +26 -26
  31. package/build/index.js.map +4 -4
  32. package/build/prepare-domains-render.js +26 -26
  33. package/build/prepare-domains-render.js.map +4 -4
  34. package/build/reset-render.js +26 -26
  35. package/build/reset-render.js.map +4 -4
  36. package/build/start-render.js +46 -49
  37. package/build/start-render.js.map +4 -4
  38. package/build/upload-search-content.js +26 -26
  39. package/build/upload-search-content.js.map +4 -4
  40. package/exporter/adapters/gatsby/actions/clean.ts +10 -0
  41. package/exporter/adapters/gatsby/actions/close.ts +10 -0
  42. package/exporter/adapters/gatsby/actions/data.ts +16 -0
  43. package/exporter/adapters/gatsby/actions/healthCheck.ts +11 -0
  44. package/exporter/adapters/gatsby/actions/init.ts +10 -0
  45. package/exporter/adapters/gatsby/actions/meta.ts +13 -0
  46. package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
  47. package/exporter/adapters/gatsby/actions/relocation.ts +14 -0
  48. package/exporter/adapters/gatsby/actions/restore.ts +29 -0
  49. package/exporter/adapters/gatsby/actions/ssg.ts +9 -0
  50. package/exporter/adapters/gatsby/actions/sync.ts +66 -0
  51. package/exporter/adapters/gatsby/constants.ts +6 -0
  52. package/exporter/adapters/gatsby/context.ts +56 -0
  53. package/exporter/adapters/gatsby/index.ts +59 -146
  54. package/exporter/adapters/gatsby/sync-render.ts +286 -0
  55. package/exporter/adapters/gatsby/utils.ts +71 -42
  56. package/exporter/artifacts/index.ts +6 -4
  57. package/exporter/commands/end-render.ts +2 -3
  58. package/exporter/commands/prepare-domains-render.ts +2 -2
  59. package/exporter/commands/reset-render.ts +0 -1
  60. package/exporter/commands/start-render.ts +34 -43
  61. package/exporter/commands/upload-search-content.ts +1 -2
  62. package/exporter/constants/index.ts +1 -2
  63. package/exporter/index.ts +3 -28
  64. package/exporter/services/navigation.ts +4 -2
  65. package/exporter/services/reference-fields.ts +2 -5
  66. package/exporter/services/robots.ts +1 -3
  67. package/exporter/services/store.ts +44 -15
  68. package/exporter/types/global.ts +5 -7
  69. package/exporter/utils/api.ts +2 -3
  70. package/exporter/utils/cache.ts +1 -3
  71. package/exporter/utils/core-utils.ts +11 -42
  72. package/exporter/utils/create-build-data.ts +8 -2
  73. package/exporter/utils/folders.ts +67 -8
  74. package/exporter/utils/loggin.ts +8 -11
  75. package/exporter/utils/pages.ts +3 -24
  76. package/exporter/utils/render.ts +22 -13
  77. package/exporter/utils/searches.ts +4 -6
  78. package/exporter/utils/sites.ts +8 -8
  79. package/exporter/utils/store.ts +58 -37
  80. package/gatsby-node.ts +2 -16
  81. package/package.json +4 -4
  82. package/src/components/Head.tsx +1 -0
  83. package/src/components/template.tsx +2 -1
  84. package/src/gatsby-node-utils.ts +15 -30
  85. package/tsconfig.json +2 -1
  86. package/build/adapters/gatsby/index.d.ts +0 -4
  87. package/build/commands/move-assets.d.ts +0 -1
  88. package/build/index.d.ts +0 -29
  89. package/build/utils/render.d.ts +0 -13
  90. package/build/utils/searches.d.ts +0 -15
  91. package/cx.config.js +0 -36
  92. package/exporter/commands/move-assets.ts +0 -11
  93. package/src/README.md +0 -7
  94. /package/build/{artifacts → exporter/artifacts}/index.d.ts +0 -0
  95. /package/build/{commands → exporter/commands}/end-render.d.ts +0 -0
  96. /package/build/{commands → exporter/commands}/prepare-domains-render.d.ts +0 -0
  97. /package/build/{commands → exporter/commands}/reset-render.d.ts +0 -0
  98. /package/build/{commands → exporter/commands}/start-render.d.ts +0 -0
  99. /package/build/{commands → exporter/commands}/upload-search-content.d.ts +0 -0
  100. /package/build/{constants → exporter/constants}/endpoints.d.ts +0 -0
  101. /package/build/{constants → exporter/constants}/envs.d.ts +0 -0
  102. /package/build/{constants → exporter/constants}/index.d.ts +0 -0
  103. /package/build/{errors → exporter/errors}/errors-data.d.ts +0 -0
  104. /package/build/{errors → exporter/errors}/index.d.ts +0 -0
  105. /package/build/{react → exporter/react}/Favicon/index.d.ts +0 -0
  106. /package/build/{react → exporter/react}/Favicon/utils.d.ts +0 -0
  107. /package/build/{react → exporter/react}/GriddoIntegrations/index.d.ts +0 -0
  108. /package/build/{react → exporter/react}/GriddoIntegrations/utils.d.ts +0 -0
  109. /package/build/{react → exporter/react}/index.d.ts +0 -0
  110. /package/build/{registers → exporter/registers}/api.d.ts +0 -0
  111. /package/build/{registers → exporter/registers}/gatsby.d.ts +0 -0
  112. /package/build/{registers → exporter/registers}/index.d.ts +0 -0
  113. /package/build/{services → exporter/services}/auth.d.ts +0 -0
  114. /package/build/{services → exporter/services}/domains.d.ts +0 -0
  115. /package/build/{services → exporter/services}/navigation.d.ts +0 -0
  116. /package/build/{services → exporter/services}/reference-fields.d.ts +0 -0
  117. /package/build/{services → exporter/services}/register.d.ts +0 -0
  118. /package/build/{services → exporter/services}/robots.d.ts +0 -0
  119. /package/build/{services → exporter/services}/settings.d.ts +0 -0
  120. /package/build/{services → exporter/services}/sites.d.ts +0 -0
  121. /package/build/{types → exporter/types}/api.d.ts +0 -0
  122. /package/build/{types → exporter/types}/navigation.d.ts +0 -0
  123. /package/build/{types → exporter/types}/pages.d.ts +0 -0
  124. /package/build/{types → exporter/types}/sites.d.ts +0 -0
  125. /package/build/{types → exporter/types}/templates.d.ts +0 -0
  126. /package/build/{utils → exporter/utils}/alerts.d.ts +0 -0
  127. /package/build/{utils → exporter/utils}/api.d.ts +0 -0
  128. /package/build/{utils → exporter/utils}/cache.d.ts +0 -0
  129. /package/build/{utils → exporter/utils}/domains.d.ts +0 -0
  130. /package/build/{utils → exporter/utils}/health-checks.d.ts +0 -0
  131. /package/build/{utils → exporter/utils}/images.d.ts +0 -0
  132. /package/build/{utils → exporter/utils}/instance.d.ts +0 -0
  133. /package/build/{utils → exporter/utils}/loggin.d.ts +0 -0
  134. /package/build/{utils → exporter/utils}/pages.d.ts +0 -0
  135. /package/build/{utils → exporter/utils}/sites.d.ts +0 -0
package/README.md CHANGED
@@ -4,25 +4,18 @@ Griddo CX es un package dentro del monorepo de Griddo (`packages/griddo-cx`) que
4
4
 
5
5
  # Arquitectura
6
6
 
7
- CX está escrito como una biblioteca en TypeScript. \**Los consumidores de la misma son el *Adapter, el framework SSG y una serie de scripts en TypeScript que viven en el propio `package/griddo-cx` y que son utilizados por infra, normalmente invocados mediante un `npm run ...`
7
+ CX está escrito como una biblioteca en TypeScript que exporta herramientas node (`import { ... } from "@griddo/cx"`) y componentes React (`import { ... } from "@griddo/cx/react"`). Los consumidores son el Adapter, el framework SSG[^1] y una serie de scripts (comandos) en TypeScript que se definen en el propio `package/griddo-cx` estos son utilizados por infra, normalmente invocados mediante un `npm run ...`
8
8
 
9
- \*Para los casos del Adapter y los “scripts para infra”, estos utilizarán directamente el código Typescript de la biblioteca de CX. Para el caso del SSG, este utilizará el código bundlelizado disponible en `@griddo/cx` y `griddo/cx/react`
10
-
11
- Como ejemplo aquí vemos un snippet dentro de Gatsby (actual framework SSG) importando un componente `<GriddoIntegrations>` que forma parte de la biblioteca de CX, en concreto del export de react.
12
-
13
- ```tsx
14
- // src/components/template.tsx
15
- import { GriddoIntegrations } from "@griddo/cx/react";
16
- ```
9
+ [^1]El framework SSG, actualmente Gatsby es el único actor que consume el código de CX ya bundelizado (`import { ... } from "@griddo/cx"`), Adapter y comandos para infra consumen el código de cx en Typescript directamente.
17
10
 
18
11
  ## Exports
19
12
 
20
- CX tiene dos exports separados: **main y react**.
13
+ CX tiene dos exports separados: **core y react**.
21
14
 
22
- - **main** se exporta en `@griddo/cx` . Es código que se ejecuta en un entorno nodejs.
23
- - **react** se exporta en `@griddo-cx/react` . Es código React :)
15
+ - **core** se exporta en `@griddo/cx`. Es código que se ejecuta en un entorno nodejs.
16
+ - **react** se exporta en `@griddo-cx/react` . Es código React.
24
17
 
25
- **Ejemplo de import**
18
+ **Ejemplos de imports**
26
19
 
27
20
  ```tsx
28
21
  // React import
@@ -47,7 +40,7 @@ Este comando, `yarn run build` se ejecuta en el despliegue del monorepo, npm pre
47
40
 
48
41
  ## Archivo de configuración
49
42
 
50
- CX tiene un archivo de configuración en el raíz del package `griddo-cx/cx.config.js` donde se establecen ciertos valores globales para todo el package.
43
+ CX tiene un archivo de configuración en el raíz del package `griddo-cx/config.ts` donde se establecen ciertos valores globales para todo el package.
51
44
 
52
45
  Los siguientes puntos están incluidos en el archivo de configuración y deben ser leídos de este, evitando hardcodear o volver a calcularlos en el resto del código.
53
46
 
@@ -68,13 +61,10 @@ const config = {
68
61
  };
69
62
  ```
70
63
 
71
- El contenido del archivo de configuración se leerá con la función `getConfig()` donde sea que necesitemos acceder a la misma.
72
-
73
- **Ejemplo**
64
+ **El contenido del archivo de configuración se importa directamente.**
74
65
 
75
66
  ```tsx
76
- const config = getConfig()
77
- const { proDomain, ... } = config
67
+ import { cofig } from "...";
78
68
  ```
79
69
 
80
70
  ### Dominio \*pro-\*\*
@@ -87,7 +77,7 @@ Este `pro-` se especifica directamente y una sola vez en el archivo de configura
87
77
 
88
78
  Si es necesario obtener la versión de CX la podemos tomar directamente del archivo de configuración
89
79
 
90
- ### Sistema de paths interno
80
+ ### Sistema de paths internos de CX
91
81
 
92
82
  Mediante el archivo de configuración se establecen unas rutas absolutas globales a todo CX e instancia (ya sea instancia interna del monorepo o la de un cliente) que nos ayudará a orquestar los artefactos durante los LifeCycles de un render. Un uso parecido a los `__dirname` o `__filename` de javascript CommonJS.
93
83
 
@@ -98,7 +88,7 @@ Ya que la mayoría de las veces el uso de estas rutas son durante el render de u
98
88
  **Ejemplo**
99
89
 
100
90
  ```tsx
101
- const { __exports, __cache } = getConfig().paths("mi-dominio");
91
+ const { __exports, __cache } = config.paths("mi-dominio");
102
92
  console.log(__exports); // ...export/sites/**mi-dominio**
103
93
  console.log(__cache); // ...griddo-cx/.cx-cache/**mi-dominio**
104
94
  ```
@@ -115,10 +105,9 @@ Esta son las rutas existentes.
115
105
  **Ejemplo de uso real**
116
106
 
117
107
  ```tsx
118
- import { getConfig } from "./utils/config";
108
+ import { config } from "../config";
119
109
 
120
110
  // Sin dominio
121
- const config = await getConfig();
122
111
  const { __cx, __ssg } = config.paths();
123
112
  const storeDir = path.join(__cx, "store");
124
113
  const templateFile = path.join(__ssg, "src/components/template.tsx");
@@ -130,18 +119,14 @@ console.log(__exports); // /griddo/packages/griddo-cx/.cx-cache/**pre-griddo**
130
119
 
131
120
  ## LifeCycles
132
121
 
133
- Los LifeCycles se utilizan dentro del contexto de un _Adapter_. Se usa a través de la función `doLifeCycle` que ejecuta un batch de funciones (`actions`) de forma secuencial. Informando por consola del inicio, fin y tiempo invertido en ejecutar todas las funciones del `actions`, manejando cualquier error en las mismas. En caso de error, es posible indicar un número de _attempts_ que hará que se ejecute de nuevo el clico de vida las veces indicadas.
122
+ Los LifeCycles se utilizan dentro del contexto de un _Adapter_. Se usa a través de la función `doLifeCycle` que ejecuta un batch de funciones (`actions`) de forma secuencial. Informando por consola del inicio, fin y tiempo invertido en ejecutar todas las funciones del `actions`, manejando cualquier error en las mismas. En caso de error, es posible indicar un número de _retries_ que hará que se ejecute de nuevo el clico de vida las veces indicadas.
134
123
 
135
- En CX existen estos LifeCycles: `Prepare`, `Restore`, `Data`, `SSG`, `Relocation`, `Meta`, `Archive`, `Clean`, `HealthCheck` y uno de `__DEBUG__` internamente son iguales (usan `doLifeCycle`) y se utilizan estos distintos nombres para identificarlos dentro de un render, poner distintos _attempts_, etc..
124
+ En CX existen estos LifeCycles: `Prepare`, `Restore`, `Data`, `SSG`, `Relocation`, `Meta`, `Archive`, `Clean` y `HealthCheck`; internamente son iguales (usan `doLifeCycle`) y se utilizan estos distintos nombres para identificarlos dentro de un render, poner distintos _retries_, etc..
136
125
 
137
126
  **Ejemplo:**
138
127
 
139
128
  ```tsx
140
- await doLifeCycle({
141
- name: "SSG",
142
- attempts: 2, // intentará hacer **todos** las actions dos veces si hay un error en alguno de ellos
143
- actions: [func1, func2, func3],
144
- });
129
+ await doLifeCycle("SSG", () => syncAction(context));
145
130
  ```
146
131
 
147
132
  # Scripts para infra.
@@ -174,7 +159,6 @@ El Adapter es el responsable de manejar el proceso de render mediante las utilid
174
159
 
175
160
  <aside>
176
161
  💡 Los Adapters utilizarán el código TypeScript de CX, no el bundlelizado. Ya que el propio adapter también se bundleliza.
177
-
178
162
  </aside>
179
163
 
180
164
  ### **Obligaciones de un Adapter**
@@ -222,7 +206,6 @@ A su vez, en cada despliegue que exista en la instancia también se borrarán ya
222
206
 
223
207
  <aside>
224
208
  💡 Coming soon: Gestión automática de la caché de Griddo (no de los frameworks SSGS)
225
-
226
209
  </aside>
227
210
 
228
211
  # Logs
@@ -1,5 +1,2 @@
1
1
  import type { CXConfig } from "./exporter/types/global";
2
-
3
- declare const config: CXConfig;
4
-
5
- export default config;
2
+ export declare const config: CXConfig;