@griddo/cx 11.4.18-rc.0 → 11.4.18-rc.1
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 +32 -15
- package/build/adapters/gatsby/index.d.ts +4 -0
- package/build/{exporter/adapters → adapters}/gatsby/utils.d.ts +3 -8
- package/build/commands/prepare-domains-render.d.ts +1 -0
- package/build/end-render.js +26 -26
- package/build/end-render.js.map +4 -4
- package/build/index.d.ts +29 -0
- 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/{exporter/services → services}/store.d.ts +1 -6
- package/build/start-render.js +49 -46
- package/build/start-render.js.map +4 -4
- package/build/{exporter/types → types}/global.d.ts +3 -4
- package/build/upload-search-content.js +26 -26
- package/build/upload-search-content.js.map +4 -4
- package/build/{exporter/utils → utils}/core-utils.d.ts +18 -7
- package/build/{exporter/utils → utils}/create-build-data.d.ts +1 -6
- package/build/{exporter/utils → utils}/folders.d.ts +3 -7
- package/build/utils/render.d.ts +13 -0
- package/build/utils/searches.d.ts +15 -0
- package/build/{exporter/utils → utils}/store.d.ts +2 -3
- package/{build/config.d.ts → cx.config.d.ts} +4 -1
- package/cx.config.js +36 -0
- package/exporter/adapters/gatsby/index.ts +146 -59
- package/exporter/adapters/gatsby/utils.ts +42 -71
- package/exporter/artifacts/index.ts +4 -6
- package/exporter/commands/end-render.ts +3 -2
- package/exporter/commands/move-assets.ts +11 -0
- package/exporter/commands/prepare-domains-render.ts +2 -2
- package/exporter/commands/reset-render.ts +1 -0
- package/exporter/commands/start-render.ts +43 -34
- package/exporter/commands/upload-search-content.ts +2 -1
- package/exporter/constants/index.ts +2 -1
- package/exporter/index.ts +28 -3
- package/exporter/services/navigation.ts +2 -4
- package/exporter/services/reference-fields.ts +5 -2
- package/exporter/services/robots.ts +3 -1
- package/exporter/services/store.ts +15 -44
- package/exporter/types/global.ts +7 -5
- package/exporter/utils/api.ts +3 -2
- package/exporter/utils/cache.ts +3 -1
- package/exporter/utils/core-utils.ts +42 -11
- package/exporter/utils/create-build-data.ts +2 -8
- package/exporter/utils/folders.ts +8 -67
- package/exporter/utils/loggin.ts +11 -8
- package/exporter/utils/pages.ts +24 -3
- package/exporter/utils/render.ts +13 -22
- package/exporter/utils/searches.ts +6 -4
- package/exporter/utils/sites.ts +8 -8
- package/exporter/utils/store.ts +37 -58
- package/gatsby-node.ts +16 -2
- package/package.json +4 -4
- package/src/README.md +7 -0
- package/src/components/Head.tsx +0 -1
- package/src/components/template.tsx +1 -2
- package/src/gatsby-node-utils.ts +30 -15
- package/tsconfig.json +1 -2
- package/build/exporter/adapters/gatsby/actions/clean.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/close.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/data.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/init.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/meta.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/prepare.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/relocation.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/restore.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/ssg.d.ts +0 -2
- package/build/exporter/adapters/gatsby/actions/sync.d.ts +0 -2
- package/build/exporter/adapters/gatsby/constants.d.ts +0 -5
- package/build/exporter/adapters/gatsby/context.d.ts +0 -36
- package/build/exporter/adapters/gatsby/index.d.ts +0 -17
- package/build/exporter/adapters/gatsby/sync-render.d.ts +0 -44
- package/build/exporter/index.d.ts +0 -25
- package/build/exporter/utils/render.d.ts +0 -14
- package/build/exporter/utils/searches.d.ts +0 -7
- package/exporter/adapters/gatsby/actions/clean.ts +0 -10
- package/exporter/adapters/gatsby/actions/close.ts +0 -10
- package/exporter/adapters/gatsby/actions/data.ts +0 -16
- package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -11
- package/exporter/adapters/gatsby/actions/init.ts +0 -10
- package/exporter/adapters/gatsby/actions/meta.ts +0 -13
- package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
- package/exporter/adapters/gatsby/actions/relocation.ts +0 -14
- package/exporter/adapters/gatsby/actions/restore.ts +0 -29
- package/exporter/adapters/gatsby/actions/ssg.ts +0 -9
- package/exporter/adapters/gatsby/actions/sync.ts +0 -66
- package/exporter/adapters/gatsby/constants.ts +0 -6
- package/exporter/adapters/gatsby/context.ts +0 -56
- package/exporter/adapters/gatsby/sync-render.ts +0 -286
- /package/build/{exporter/artifacts → artifacts}/index.d.ts +0 -0
- /package/build/{exporter/commands → commands}/end-render.d.ts +0 -0
- /package/build/{exporter/commands/prepare-domains-render.d.ts → commands/move-assets.d.ts} +0 -0
- /package/build/{exporter/commands → commands}/reset-render.d.ts +0 -0
- /package/build/{exporter/commands → commands}/start-render.d.ts +0 -0
- /package/build/{exporter/commands → commands}/upload-search-content.d.ts +0 -0
- /package/build/{exporter/constants → constants}/endpoints.d.ts +0 -0
- /package/build/{exporter/constants → constants}/envs.d.ts +0 -0
- /package/build/{exporter/constants → constants}/index.d.ts +0 -0
- /package/build/{exporter/errors → errors}/errors-data.d.ts +0 -0
- /package/build/{exporter/errors → errors}/index.d.ts +0 -0
- /package/build/{exporter/react → react}/Favicon/index.d.ts +0 -0
- /package/build/{exporter/react → react}/Favicon/utils.d.ts +0 -0
- /package/build/{exporter/react → react}/GriddoIntegrations/index.d.ts +0 -0
- /package/build/{exporter/react → react}/GriddoIntegrations/utils.d.ts +0 -0
- /package/build/{exporter/react → react}/index.d.ts +0 -0
- /package/build/{exporter/registers → registers}/api.d.ts +0 -0
- /package/build/{exporter/registers → registers}/gatsby.d.ts +0 -0
- /package/build/{exporter/registers → registers}/index.d.ts +0 -0
- /package/build/{exporter/services → services}/auth.d.ts +0 -0
- /package/build/{exporter/services → services}/domains.d.ts +0 -0
- /package/build/{exporter/services → services}/navigation.d.ts +0 -0
- /package/build/{exporter/services → services}/reference-fields.d.ts +0 -0
- /package/build/{exporter/services → services}/register.d.ts +0 -0
- /package/build/{exporter/services → services}/robots.d.ts +0 -0
- /package/build/{exporter/services → services}/settings.d.ts +0 -0
- /package/build/{exporter/services → services}/sites.d.ts +0 -0
- /package/build/{exporter/types → types}/api.d.ts +0 -0
- /package/build/{exporter/types → types}/navigation.d.ts +0 -0
- /package/build/{exporter/types → types}/pages.d.ts +0 -0
- /package/build/{exporter/types → types}/sites.d.ts +0 -0
- /package/build/{exporter/types → types}/templates.d.ts +0 -0
- /package/build/{exporter/utils → utils}/alerts.d.ts +0 -0
- /package/build/{exporter/utils → utils}/api.d.ts +0 -0
- /package/build/{exporter/utils → utils}/cache.d.ts +0 -0
- /package/build/{exporter/utils → utils}/domains.d.ts +0 -0
- /package/build/{exporter/utils → utils}/health-checks.d.ts +0 -0
- /package/build/{exporter/utils → utils}/images.d.ts +0 -0
- /package/build/{exporter/utils → utils}/instance.d.ts +0 -0
- /package/build/{exporter/utils → utils}/loggin.d.ts +0 -0
- /package/build/{exporter/utils → utils}/pages.d.ts +0 -0
- /package/build/{exporter/utils → utils}/sites.d.ts +0 -0
package/README.md
CHANGED
|
@@ -4,18 +4,25 @@ 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. \**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 ...`
|
|
8
8
|
|
|
9
|
-
|
|
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
|
+
```
|
|
10
17
|
|
|
11
18
|
## Exports
|
|
12
19
|
|
|
13
|
-
CX tiene dos exports separados: **
|
|
20
|
+
CX tiene dos exports separados: **main y react**.
|
|
14
21
|
|
|
15
|
-
- **
|
|
16
|
-
- **react** se exporta en `@griddo-cx/react` . Es código React
|
|
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 :)
|
|
17
24
|
|
|
18
|
-
**
|
|
25
|
+
**Ejemplo de import**
|
|
19
26
|
|
|
20
27
|
```tsx
|
|
21
28
|
// React import
|
|
@@ -40,7 +47,7 @@ Este comando, `yarn run build` se ejecuta en el despliegue del monorepo, npm pre
|
|
|
40
47
|
|
|
41
48
|
## Archivo de configuración
|
|
42
49
|
|
|
43
|
-
CX tiene un archivo de configuración en el raíz del package `griddo-cx/config.
|
|
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.
|
|
44
51
|
|
|
45
52
|
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.
|
|
46
53
|
|
|
@@ -61,10 +68,13 @@ const config = {
|
|
|
61
68
|
};
|
|
62
69
|
```
|
|
63
70
|
|
|
64
|
-
|
|
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**
|
|
65
74
|
|
|
66
75
|
```tsx
|
|
67
|
-
|
|
76
|
+
const config = getConfig()
|
|
77
|
+
const { proDomain, ... } = config
|
|
68
78
|
```
|
|
69
79
|
|
|
70
80
|
### Dominio \*pro-\*\*
|
|
@@ -77,7 +87,7 @@ Este `pro-` se especifica directamente y una sola vez en el archivo de configura
|
|
|
77
87
|
|
|
78
88
|
Si es necesario obtener la versión de CX la podemos tomar directamente del archivo de configuración
|
|
79
89
|
|
|
80
|
-
### Sistema de paths
|
|
90
|
+
### Sistema de paths interno
|
|
81
91
|
|
|
82
92
|
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.
|
|
83
93
|
|
|
@@ -88,7 +98,7 @@ Ya que la mayoría de las veces el uso de estas rutas son durante el render de u
|
|
|
88
98
|
**Ejemplo**
|
|
89
99
|
|
|
90
100
|
```tsx
|
|
91
|
-
const { __exports, __cache } =
|
|
101
|
+
const { __exports, __cache } = getConfig().paths("mi-dominio");
|
|
92
102
|
console.log(__exports); // ...export/sites/**mi-dominio**
|
|
93
103
|
console.log(__cache); // ...griddo-cx/.cx-cache/**mi-dominio**
|
|
94
104
|
```
|
|
@@ -105,9 +115,10 @@ Esta son las rutas existentes.
|
|
|
105
115
|
**Ejemplo de uso real**
|
|
106
116
|
|
|
107
117
|
```tsx
|
|
108
|
-
import {
|
|
118
|
+
import { getConfig } from "./utils/config";
|
|
109
119
|
|
|
110
120
|
// Sin dominio
|
|
121
|
+
const config = await getConfig();
|
|
111
122
|
const { __cx, __ssg } = config.paths();
|
|
112
123
|
const storeDir = path.join(__cx, "store");
|
|
113
124
|
const templateFile = path.join(__ssg, "src/components/template.tsx");
|
|
@@ -119,14 +130,18 @@ console.log(__exports); // /griddo/packages/griddo-cx/.cx-cache/**pre-griddo**
|
|
|
119
130
|
|
|
120
131
|
## LifeCycles
|
|
121
132
|
|
|
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
|
|
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.
|
|
123
134
|
|
|
124
|
-
En CX existen estos LifeCycles: `Prepare`, `Restore`, `Data`, `SSG`, `Relocation`, `Meta`, `Archive`, `Clean` y `
|
|
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..
|
|
125
136
|
|
|
126
137
|
**Ejemplo:**
|
|
127
138
|
|
|
128
139
|
```tsx
|
|
129
|
-
await doLifeCycle(
|
|
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
|
+
});
|
|
130
145
|
```
|
|
131
146
|
|
|
132
147
|
# Scripts para infra.
|
|
@@ -159,6 +174,7 @@ El Adapter es el responsable de manejar el proceso de render mediante las utilid
|
|
|
159
174
|
|
|
160
175
|
<aside>
|
|
161
176
|
💡 Los Adapters utilizarán el código TypeScript de CX, no el bundlelizado. Ya que el propio adapter también se bundleliza.
|
|
177
|
+
|
|
162
178
|
</aside>
|
|
163
179
|
|
|
164
180
|
### **Obligaciones de un Adapter**
|
|
@@ -206,6 +222,7 @@ A su vez, en cada despliegue que exista en la instancia también se borrarán ya
|
|
|
206
222
|
|
|
207
223
|
<aside>
|
|
208
224
|
💡 Coming soon: Gestión automática de la caché de Griddo (no de los frameworks SSGS)
|
|
225
|
+
|
|
209
226
|
</aside>
|
|
210
227
|
|
|
211
228
|
# Logs
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - If assetPrefix or domain is falsy, returns ""
|
|
8
8
|
* - If the domain is not "pro-", returns ""
|
|
9
9
|
*/
|
|
10
|
-
declare function getGatsbyAssetPrefixWithDomain(domain: string
|
|
10
|
+
declare function getGatsbyAssetPrefixWithDomain(domain: string): string;
|
|
11
11
|
/**
|
|
12
12
|
* Spawn a new node process `yarn gatsby-build`
|
|
13
13
|
* @note This proccess (`yarn gatsby-build`) can not access to the custom Griddo
|
|
@@ -18,10 +18,5 @@ declare function runGatsbyBuildCommand(assetPrefixWithDomain: string): void;
|
|
|
18
18
|
* Update the Griddo's `/dist` dir with the contents from `public` dir only
|
|
19
19
|
* with files of type: js, json and css.
|
|
20
20
|
*/
|
|
21
|
-
declare function
|
|
22
|
-
|
|
23
|
-
domain: string;
|
|
24
|
-
pagesToCreate: Array<number>;
|
|
25
|
-
pagesToDelete: Array<number>;
|
|
26
|
-
}): void;
|
|
27
|
-
export { extractAssetsFromDist, getGatsbyAssetPrefixWithDomain, runGatsbyBuildCommand, syncGatsbyRender, };
|
|
21
|
+
declare function createDistFromGatsbyPublic(domain: string, needsAssetPrefix: boolean): Promise<void>;
|
|
22
|
+
export { createDistFromGatsbyPublic, getGatsbyAssetPrefixWithDomain, runGatsbyBuildCommand, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|