reset-infra 1.0.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 +40 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +1044 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +6923 -0
- package/dist/schemas/index.js.map +1 -0
- package/package.json +36 -0
- package/prisma/schema.prisma +212 -0
package/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# ReSet Infra
|
|
2
|
+
|
|
3
|
+
Repositorio destinado a la infraestructura de base de datos, migraciones y generacion automatica de esquemas de validacion para el ecosistema ReSet. Este proyecto esta disenado para ser consumido como un paquete NPM por otras aplicaciones (como una API Backend), actuando como la unica fuente de verdad para los modelos de datos y sus respectivas validaciones.
|
|
4
|
+
|
|
5
|
+
## Arquitectura
|
|
6
|
+
|
|
7
|
+
El proyecto aisla la capa de persistencia y las definiciones de tipos estaticos del resto de la logica de negocio. Se rige por el principio de unica fuente de verdad (Single Source of Truth), donde el archivo `schema.prisma` define todas las entidades relacionales. A partir de este manifiesto, se genera tanto el cliente de acceso a datos para PostgreSQL como los esquemas de validacion estrictos, los cuales se compilan y exportan para su consumo transparente en otros repositorios.
|
|
8
|
+
|
|
9
|
+
## Estructura de Directorios
|
|
10
|
+
|
|
11
|
+
- `/postgres/`: Contiene scripts SQL crudos de inicializacion (`init.sql`) y archivos de configuracion del motor de base de datos (`postgresql.conf`). Estos recursos son consumidos exclusivamente por Docker al levantar el servidor de desarrollo local.
|
|
12
|
+
- `/prisma/`: Almacena el manifiesto `schema.prisma`, configuraciones del generador de codigo y los historiales de migraciones estructurales de la base de datos.
|
|
13
|
+
- `/src/`: Directorio raiz del codigo fuente TypeScript. Su principal componente es `index.ts`, el cual re-exporta los esquemas autogenerados alojados en `/src/schemas/index.ts`.
|
|
14
|
+
- `/dist/`: Directorio de salida generado tras el proceso de compilacion. Contiene los archivos JavaScript finales y las declaraciones de tipos (`.d.ts`) requeridas para que el paquete funcione adecuadamente mediante NPM.
|
|
15
|
+
|
|
16
|
+
## Tecnologias y Librerias
|
|
17
|
+
|
|
18
|
+
- **PostgreSQL**: Motor de base de datos relacional utilizado. Su orquestacion local se realiza mediante Docker y `docker-compose.yml`.
|
|
19
|
+
- **Prisma ORM**: Responsable del modelado declarativo de tablas, relaciones y aplicacion de migraciones a la base de datos (`@prisma/client`, `prisma`).
|
|
20
|
+
- **Zod**: Utilizado para la declaracion estricta y analisis (parsing) de esquemas de datos orientados a TypeScript (`zod`).
|
|
21
|
+
- **Zod Prisma Types**: Generador automatico que parsea las definiciones de Prisma y crea representaciones fidedignas en esquemas Zod (`zod-prisma-types`), evitando la desincronizacion manual.
|
|
22
|
+
- **TypeScript**: Provee tipado estatico durante el proceso de desarrollo y construccion de la libreria.
|
|
23
|
+
|
|
24
|
+
## Uso del Paquete
|
|
25
|
+
|
|
26
|
+
Al ser un paquete NPM para consumo interno, exporta estrictamente los tipos y validaciones a traves de su build de TypeScript. Para evitar conflictos de referencias en ejecucion, dependencias como `zod` y `@prisma/client` estan asignadas como `peerDependencies`.
|
|
27
|
+
|
|
28
|
+
El backend consumidor puede importar las validaciones de la siguiente forma:
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { NombreDelModeloSchema } from 'reset-infra';
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Comandos
|
|
35
|
+
|
|
36
|
+
- `npm run build`: Transpila el codigo fuente de TypeScript hacia JavaScript y declaraciones de tipos ubicadas en `dist/`.
|
|
37
|
+
- `npm run db:up`: Crea e inicia el contenedor de bases de datos PostgreSQL en segundo plano.
|
|
38
|
+
- `npm run db:down`: Detiene y elimina el contenedor de PostgreSQL.
|
|
39
|
+
- `npm run db:migrate`: Aplica los cambios estructurales detectados en `schema.prisma` hacia la base de datos en desarrollo.
|
|
40
|
+
- `npm run db:generate`: Invoca el generador del ORM para reconstruir la instancia local de Prisma e invocar dependencias de generacion secundarias (como los esquemas de Zod).
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReSet-Infra – Public API
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all Zod schemas generated by zod-prisma-types.
|
|
5
|
+
* Consumers (e.g. reset-api) can import types directly:
|
|
6
|
+
*
|
|
7
|
+
* import { PlaceholderSchema } from 'reset-infra';
|
|
8
|
+
*/
|
|
9
|
+
export * from './schemas/index.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ReSet-Infra – Public API
|
|
4
|
+
*
|
|
5
|
+
* Re-exports all Zod schemas generated by zod-prisma-types.
|
|
6
|
+
* Consumers (e.g. reset-api) can import types directly:
|
|
7
|
+
*
|
|
8
|
+
* import { PlaceholderSchema } from 'reset-infra';
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
__exportStar(require("./schemas/index.js"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,qDAAmC"}
|