@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.
- package/README.md +15 -32
- package/{cx.config.d.ts → build/config.d.ts} +1 -4
- package/build/end-render.js +26 -26
- package/build/end-render.js.map +4 -4
- package/build/exporter/adapters/gatsby/actions/clean.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/close.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/data.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/init.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/meta.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/prepare.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/relocation.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/restore.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/ssg.d.ts +2 -0
- package/build/exporter/adapters/gatsby/actions/sync.d.ts +2 -0
- package/build/exporter/adapters/gatsby/constants.d.ts +5 -0
- package/build/exporter/adapters/gatsby/context.d.ts +36 -0
- package/build/exporter/adapters/gatsby/index.d.ts +17 -0
- package/build/exporter/adapters/gatsby/sync-render.d.ts +44 -0
- package/build/{adapters → exporter/adapters}/gatsby/utils.d.ts +8 -3
- package/build/exporter/index.d.ts +25 -0
- package/build/{services → exporter/services}/store.d.ts +6 -1
- package/build/{types → exporter/types}/global.d.ts +4 -3
- package/build/{utils → exporter/utils}/core-utils.d.ts +7 -18
- package/build/{utils → exporter/utils}/create-build-data.d.ts +6 -1
- package/build/{utils → exporter/utils}/folders.d.ts +7 -3
- package/build/exporter/utils/render.d.ts +14 -0
- package/build/exporter/utils/searches.d.ts +7 -0
- package/build/{utils → exporter/utils}/store.d.ts +3 -2
- package/build/index.js +26 -26
- package/build/index.js.map +4 -4
- package/build/prepare-domains-render.js +26 -26
- package/build/prepare-domains-render.js.map +4 -4
- package/build/reset-render.js +26 -26
- package/build/reset-render.js.map +4 -4
- package/build/start-render.js +46 -49
- package/build/start-render.js.map +4 -4
- package/build/upload-search-content.js +26 -26
- package/build/upload-search-content.js.map +4 -4
- package/exporter/adapters/gatsby/actions/clean.ts +10 -0
- package/exporter/adapters/gatsby/actions/close.ts +10 -0
- package/exporter/adapters/gatsby/actions/data.ts +16 -0
- package/exporter/adapters/gatsby/actions/healthCheck.ts +11 -0
- package/exporter/adapters/gatsby/actions/init.ts +10 -0
- package/exporter/adapters/gatsby/actions/meta.ts +13 -0
- package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
- package/exporter/adapters/gatsby/actions/relocation.ts +14 -0
- package/exporter/adapters/gatsby/actions/restore.ts +29 -0
- package/exporter/adapters/gatsby/actions/ssg.ts +9 -0
- package/exporter/adapters/gatsby/actions/sync.ts +66 -0
- package/exporter/adapters/gatsby/constants.ts +6 -0
- package/exporter/adapters/gatsby/context.ts +56 -0
- package/exporter/adapters/gatsby/index.ts +59 -146
- package/exporter/adapters/gatsby/sync-render.ts +286 -0
- package/exporter/adapters/gatsby/utils.ts +71 -42
- package/exporter/artifacts/index.ts +6 -4
- package/exporter/commands/end-render.ts +2 -3
- package/exporter/commands/prepare-domains-render.ts +2 -2
- package/exporter/commands/reset-render.ts +0 -1
- package/exporter/commands/start-render.ts +34 -43
- package/exporter/commands/upload-search-content.ts +1 -2
- package/exporter/constants/index.ts +1 -2
- package/exporter/index.ts +3 -28
- package/exporter/services/navigation.ts +4 -2
- package/exporter/services/reference-fields.ts +2 -5
- package/exporter/services/robots.ts +1 -3
- package/exporter/services/store.ts +44 -15
- package/exporter/types/global.ts +5 -7
- package/exporter/utils/api.ts +2 -3
- package/exporter/utils/cache.ts +1 -3
- package/exporter/utils/core-utils.ts +11 -42
- package/exporter/utils/create-build-data.ts +8 -2
- package/exporter/utils/folders.ts +67 -8
- package/exporter/utils/loggin.ts +8 -11
- package/exporter/utils/pages.ts +3 -24
- package/exporter/utils/render.ts +22 -13
- package/exporter/utils/searches.ts +4 -6
- package/exporter/utils/sites.ts +8 -8
- package/exporter/utils/store.ts +58 -37
- package/gatsby-node.ts +2 -16
- package/package.json +4 -4
- package/src/components/Head.tsx +1 -0
- package/src/components/template.tsx +2 -1
- package/src/gatsby-node-utils.ts +15 -30
- package/tsconfig.json +2 -1
- package/build/adapters/gatsby/index.d.ts +0 -4
- package/build/commands/move-assets.d.ts +0 -1
- package/build/index.d.ts +0 -29
- package/build/utils/render.d.ts +0 -13
- package/build/utils/searches.d.ts +0 -15
- package/cx.config.js +0 -36
- package/exporter/commands/move-assets.ts +0 -11
- package/src/README.md +0 -7
- /package/build/{artifacts → exporter/artifacts}/index.d.ts +0 -0
- /package/build/{commands → exporter/commands}/end-render.d.ts +0 -0
- /package/build/{commands → exporter/commands}/prepare-domains-render.d.ts +0 -0
- /package/build/{commands → exporter/commands}/reset-render.d.ts +0 -0
- /package/build/{commands → exporter/commands}/start-render.d.ts +0 -0
- /package/build/{commands → exporter/commands}/upload-search-content.d.ts +0 -0
- /package/build/{constants → exporter/constants}/endpoints.d.ts +0 -0
- /package/build/{constants → exporter/constants}/envs.d.ts +0 -0
- /package/build/{constants → exporter/constants}/index.d.ts +0 -0
- /package/build/{errors → exporter/errors}/errors-data.d.ts +0 -0
- /package/build/{errors → exporter/errors}/index.d.ts +0 -0
- /package/build/{react → exporter/react}/Favicon/index.d.ts +0 -0
- /package/build/{react → exporter/react}/Favicon/utils.d.ts +0 -0
- /package/build/{react → exporter/react}/GriddoIntegrations/index.d.ts +0 -0
- /package/build/{react → exporter/react}/GriddoIntegrations/utils.d.ts +0 -0
- /package/build/{react → exporter/react}/index.d.ts +0 -0
- /package/build/{registers → exporter/registers}/api.d.ts +0 -0
- /package/build/{registers → exporter/registers}/gatsby.d.ts +0 -0
- /package/build/{registers → exporter/registers}/index.d.ts +0 -0
- /package/build/{services → exporter/services}/auth.d.ts +0 -0
- /package/build/{services → exporter/services}/domains.d.ts +0 -0
- /package/build/{services → exporter/services}/navigation.d.ts +0 -0
- /package/build/{services → exporter/services}/reference-fields.d.ts +0 -0
- /package/build/{services → exporter/services}/register.d.ts +0 -0
- /package/build/{services → exporter/services}/robots.d.ts +0 -0
- /package/build/{services → exporter/services}/settings.d.ts +0 -0
- /package/build/{services → exporter/services}/sites.d.ts +0 -0
- /package/build/{types → exporter/types}/api.d.ts +0 -0
- /package/build/{types → exporter/types}/navigation.d.ts +0 -0
- /package/build/{types → exporter/types}/pages.d.ts +0 -0
- /package/build/{types → exporter/types}/sites.d.ts +0 -0
- /package/build/{types → exporter/types}/templates.d.ts +0 -0
- /package/build/{utils → exporter/utils}/alerts.d.ts +0 -0
- /package/build/{utils → exporter/utils}/api.d.ts +0 -0
- /package/build/{utils → exporter/utils}/cache.d.ts +0 -0
- /package/build/{utils → exporter/utils}/domains.d.ts +0 -0
- /package/build/{utils → exporter/utils}/health-checks.d.ts +0 -0
- /package/build/{utils → exporter/utils}/images.d.ts +0 -0
- /package/build/{utils → exporter/utils}/instance.d.ts +0 -0
- /package/build/{utils → exporter/utils}/loggin.d.ts +0 -0
- /package/build/{utils → exporter/utils}/pages.d.ts +0 -0
- /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.
|
|
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
|
-
|
|
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: **
|
|
13
|
+
CX tiene dos exports separados: **core y react**.
|
|
21
14
|
|
|
22
|
-
- **
|
|
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
|
-
**
|
|
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/
|
|
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
|
|
72
|
-
|
|
73
|
-
**Ejemplo**
|
|
64
|
+
**El contenido del archivo de configuración se importa directamente.**
|
|
74
65
|
|
|
75
66
|
```tsx
|
|
76
|
-
|
|
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
|
|
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 } =
|
|
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 {
|
|
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
|
|
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
|
|
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
|