@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.
Files changed (135) hide show
  1. package/README.md +32 -15
  2. package/build/adapters/gatsby/index.d.ts +4 -0
  3. package/build/{exporter/adapters → adapters}/gatsby/utils.d.ts +3 -8
  4. package/build/commands/prepare-domains-render.d.ts +1 -0
  5. package/build/end-render.js +26 -26
  6. package/build/end-render.js.map +4 -4
  7. package/build/index.d.ts +29 -0
  8. package/build/index.js +26 -26
  9. package/build/index.js.map +4 -4
  10. package/build/prepare-domains-render.js +26 -26
  11. package/build/prepare-domains-render.js.map +4 -4
  12. package/build/reset-render.js +26 -26
  13. package/build/reset-render.js.map +4 -4
  14. package/build/{exporter/services → services}/store.d.ts +1 -6
  15. package/build/start-render.js +49 -46
  16. package/build/start-render.js.map +4 -4
  17. package/build/{exporter/types → types}/global.d.ts +3 -4
  18. package/build/upload-search-content.js +26 -26
  19. package/build/upload-search-content.js.map +4 -4
  20. package/build/{exporter/utils → utils}/core-utils.d.ts +18 -7
  21. package/build/{exporter/utils → utils}/create-build-data.d.ts +1 -6
  22. package/build/{exporter/utils → utils}/folders.d.ts +3 -7
  23. package/build/utils/render.d.ts +13 -0
  24. package/build/utils/searches.d.ts +15 -0
  25. package/build/{exporter/utils → utils}/store.d.ts +2 -3
  26. package/{build/config.d.ts → cx.config.d.ts} +4 -1
  27. package/cx.config.js +36 -0
  28. package/exporter/adapters/gatsby/index.ts +146 -59
  29. package/exporter/adapters/gatsby/utils.ts +42 -71
  30. package/exporter/artifacts/index.ts +4 -6
  31. package/exporter/commands/end-render.ts +3 -2
  32. package/exporter/commands/move-assets.ts +11 -0
  33. package/exporter/commands/prepare-domains-render.ts +2 -2
  34. package/exporter/commands/reset-render.ts +1 -0
  35. package/exporter/commands/start-render.ts +43 -34
  36. package/exporter/commands/upload-search-content.ts +2 -1
  37. package/exporter/constants/index.ts +2 -1
  38. package/exporter/index.ts +28 -3
  39. package/exporter/services/navigation.ts +2 -4
  40. package/exporter/services/reference-fields.ts +5 -2
  41. package/exporter/services/robots.ts +3 -1
  42. package/exporter/services/store.ts +15 -44
  43. package/exporter/types/global.ts +7 -5
  44. package/exporter/utils/api.ts +3 -2
  45. package/exporter/utils/cache.ts +3 -1
  46. package/exporter/utils/core-utils.ts +42 -11
  47. package/exporter/utils/create-build-data.ts +2 -8
  48. package/exporter/utils/folders.ts +8 -67
  49. package/exporter/utils/loggin.ts +11 -8
  50. package/exporter/utils/pages.ts +24 -3
  51. package/exporter/utils/render.ts +13 -22
  52. package/exporter/utils/searches.ts +6 -4
  53. package/exporter/utils/sites.ts +8 -8
  54. package/exporter/utils/store.ts +37 -58
  55. package/gatsby-node.ts +16 -2
  56. package/package.json +4 -4
  57. package/src/README.md +7 -0
  58. package/src/components/Head.tsx +0 -1
  59. package/src/components/template.tsx +1 -2
  60. package/src/gatsby-node-utils.ts +30 -15
  61. package/tsconfig.json +1 -2
  62. package/build/exporter/adapters/gatsby/actions/clean.d.ts +0 -2
  63. package/build/exporter/adapters/gatsby/actions/close.d.ts +0 -2
  64. package/build/exporter/adapters/gatsby/actions/data.d.ts +0 -2
  65. package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +0 -2
  66. package/build/exporter/adapters/gatsby/actions/init.d.ts +0 -2
  67. package/build/exporter/adapters/gatsby/actions/meta.d.ts +0 -2
  68. package/build/exporter/adapters/gatsby/actions/prepare.d.ts +0 -2
  69. package/build/exporter/adapters/gatsby/actions/relocation.d.ts +0 -2
  70. package/build/exporter/adapters/gatsby/actions/restore.d.ts +0 -2
  71. package/build/exporter/adapters/gatsby/actions/ssg.d.ts +0 -2
  72. package/build/exporter/adapters/gatsby/actions/sync.d.ts +0 -2
  73. package/build/exporter/adapters/gatsby/constants.d.ts +0 -5
  74. package/build/exporter/adapters/gatsby/context.d.ts +0 -36
  75. package/build/exporter/adapters/gatsby/index.d.ts +0 -17
  76. package/build/exporter/adapters/gatsby/sync-render.d.ts +0 -44
  77. package/build/exporter/index.d.ts +0 -25
  78. package/build/exporter/utils/render.d.ts +0 -14
  79. package/build/exporter/utils/searches.d.ts +0 -7
  80. package/exporter/adapters/gatsby/actions/clean.ts +0 -10
  81. package/exporter/adapters/gatsby/actions/close.ts +0 -10
  82. package/exporter/adapters/gatsby/actions/data.ts +0 -16
  83. package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -11
  84. package/exporter/adapters/gatsby/actions/init.ts +0 -10
  85. package/exporter/adapters/gatsby/actions/meta.ts +0 -13
  86. package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
  87. package/exporter/adapters/gatsby/actions/relocation.ts +0 -14
  88. package/exporter/adapters/gatsby/actions/restore.ts +0 -29
  89. package/exporter/adapters/gatsby/actions/ssg.ts +0 -9
  90. package/exporter/adapters/gatsby/actions/sync.ts +0 -66
  91. package/exporter/adapters/gatsby/constants.ts +0 -6
  92. package/exporter/adapters/gatsby/context.ts +0 -56
  93. package/exporter/adapters/gatsby/sync-render.ts +0 -286
  94. /package/build/{exporter/artifacts → artifacts}/index.d.ts +0 -0
  95. /package/build/{exporter/commands → commands}/end-render.d.ts +0 -0
  96. /package/build/{exporter/commands/prepare-domains-render.d.ts → commands/move-assets.d.ts} +0 -0
  97. /package/build/{exporter/commands → commands}/reset-render.d.ts +0 -0
  98. /package/build/{exporter/commands → commands}/start-render.d.ts +0 -0
  99. /package/build/{exporter/commands → commands}/upload-search-content.d.ts +0 -0
  100. /package/build/{exporter/constants → constants}/endpoints.d.ts +0 -0
  101. /package/build/{exporter/constants → constants}/envs.d.ts +0 -0
  102. /package/build/{exporter/constants → constants}/index.d.ts +0 -0
  103. /package/build/{exporter/errors → errors}/errors-data.d.ts +0 -0
  104. /package/build/{exporter/errors → errors}/index.d.ts +0 -0
  105. /package/build/{exporter/react → react}/Favicon/index.d.ts +0 -0
  106. /package/build/{exporter/react → react}/Favicon/utils.d.ts +0 -0
  107. /package/build/{exporter/react → react}/GriddoIntegrations/index.d.ts +0 -0
  108. /package/build/{exporter/react → react}/GriddoIntegrations/utils.d.ts +0 -0
  109. /package/build/{exporter/react → react}/index.d.ts +0 -0
  110. /package/build/{exporter/registers → registers}/api.d.ts +0 -0
  111. /package/build/{exporter/registers → registers}/gatsby.d.ts +0 -0
  112. /package/build/{exporter/registers → registers}/index.d.ts +0 -0
  113. /package/build/{exporter/services → services}/auth.d.ts +0 -0
  114. /package/build/{exporter/services → services}/domains.d.ts +0 -0
  115. /package/build/{exporter/services → services}/navigation.d.ts +0 -0
  116. /package/build/{exporter/services → services}/reference-fields.d.ts +0 -0
  117. /package/build/{exporter/services → services}/register.d.ts +0 -0
  118. /package/build/{exporter/services → services}/robots.d.ts +0 -0
  119. /package/build/{exporter/services → services}/settings.d.ts +0 -0
  120. /package/build/{exporter/services → services}/sites.d.ts +0 -0
  121. /package/build/{exporter/types → types}/api.d.ts +0 -0
  122. /package/build/{exporter/types → types}/navigation.d.ts +0 -0
  123. /package/build/{exporter/types → types}/pages.d.ts +0 -0
  124. /package/build/{exporter/types → types}/sites.d.ts +0 -0
  125. /package/build/{exporter/types → types}/templates.d.ts +0 -0
  126. /package/build/{exporter/utils → utils}/alerts.d.ts +0 -0
  127. /package/build/{exporter/utils → utils}/api.d.ts +0 -0
  128. /package/build/{exporter/utils → utils}/cache.d.ts +0 -0
  129. /package/build/{exporter/utils → utils}/domains.d.ts +0 -0
  130. /package/build/{exporter/utils → utils}/health-checks.d.ts +0 -0
  131. /package/build/{exporter/utils → utils}/images.d.ts +0 -0
  132. /package/build/{exporter/utils → utils}/instance.d.ts +0 -0
  133. /package/build/{exporter/utils → utils}/loggin.d.ts +0 -0
  134. /package/build/{exporter/utils → utils}/pages.d.ts +0 -0
  135. /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 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 ...`
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
- [^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.
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: **core y react**.
20
+ CX tiene dos exports separados: **main y react**.
14
21
 
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.
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
- **Ejemplos de imports**
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.ts` donde se establecen ciertos valores globales para todo el package.
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
- **El contenido del archivo de configuración se importa directamente.**
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
- import { cofig } from "...";
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 internos de CX
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 } = config.paths("mi-dominio");
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 { config } from "../config";
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 _retries_ que hará que se ejecute de nuevo el clico de vida las veces indicadas.
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 `HealthCheck`; internamente son iguales (usan `doLifeCycle`) y se utilizan estos distintos nombres para identificarlos dentro de un render, poner distintos _retries_, etc..
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("SSG", () => syncAction(context));
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
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Render every instance domain with the Gatsby adapter.
3
+ */
4
+ export declare function renderDomainsWithGatsbyAdapter(domain: string): Promise<void>;
@@ -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, proDomainPrefix: string): 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 extractAssetsFromDist(domain: string, needsAssetPrefix: boolean): Promise<void>;
22
- declare function syncGatsbyRender({ domain, pagesToCreate, pagesToDelete, }: {
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 {};