From ade97d4c906ee4f478a88100daa54171d0f5c26e Mon Sep 17 00:00:00 2001 From: Braulio Date: Sat, 31 Jan 2026 19:07:37 +0100 Subject: [PATCH] update slug --- integrations/arcgis/src/arcgis.mappers.ts | 3 ++- packages/db-model/package.json | 10 +++++++++- packages/db-model/src/index.ts | 1 + packages/db-model/src/model.ts | 1 + packages/db-model/src/slug.ts | 9 +++++++++ packages/db-model/tsconfig.json | 11 +++++++---- 6 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 packages/db-model/src/slug.ts diff --git a/integrations/arcgis/src/arcgis.mappers.ts b/integrations/arcgis/src/arcgis.mappers.ts index c094a1d..6cf5b5e 100644 --- a/integrations/arcgis/src/arcgis.mappers.ts +++ b/integrations/arcgis/src/arcgis.mappers.ts @@ -1,4 +1,4 @@ -import { Cuenca, Embalse, MetaDatos } from "db-model"; +import { Cuenca, Embalse, generateSlug, MetaDatos } from "db-model"; import { ArcGisEntry } from "./api/arcgis-embalse-model.js"; export const mapArgGisEntryToCuenca = (arcGisEntry: ArcGisEntry): Cuenca => ({ @@ -10,6 +10,7 @@ export const mapArgGisEntryToEmbalse = (arcGisEntry: ArcGisEntry): Embalse => ({ _id: arcGisEntry.embalse_id_1.toString(), embalse_id: arcGisEntry.EMBALSE_ID, nombre: arcGisEntry.embalse_nombre, + slug: generateSlug(arcGisEntry.embalse_nombre), cuenca: mapArgGisEntryToCuenca(arcGisEntry), provincia: null, // No disponible en ArcGisEntry capacidad: arcGisEntry.agua_total, diff --git a/packages/db-model/package.json b/packages/db-model/package.json index bf8254b..8c1d23b 100644 --- a/packages/db-model/package.json +++ b/packages/db-model/package.json @@ -4,6 +4,14 @@ "private": true, "type": "module", "exports": { - ".": "./src/index.ts" + ".": "./dist/index.js" + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "scripts": { + "build": "run-p clean type-check build:db-model", + "build:db-model": "tsc", + "clean": "rimraf dist", + "type-check": "tsc --noEmit --preserveWatchOutput" } } diff --git a/packages/db-model/src/index.ts b/packages/db-model/src/index.ts index d60202f..a34e1e0 100644 --- a/packages/db-model/src/index.ts +++ b/packages/db-model/src/index.ts @@ -1,3 +1,4 @@ // Barrel for db-model package export * from "./model.js"; +export * from "./slug.js"; diff --git a/packages/db-model/src/model.ts b/packages/db-model/src/model.ts index 01f9390..e6d5cf6 100644 --- a/packages/db-model/src/model.ts +++ b/packages/db-model/src/model.ts @@ -18,6 +18,7 @@ export interface Embalse { _id: string; embalse_id: number; nombre: string; + slug: string; cuenca: { _id: string; nombre: string; diff --git a/packages/db-model/src/slug.ts b/packages/db-model/src/slug.ts new file mode 100644 index 0000000..2a75f06 --- /dev/null +++ b/packages/db-model/src/slug.ts @@ -0,0 +1,9 @@ +export const generateSlug = (text: string): string => + text + .toLowerCase() + .replace(/ñ/g, "n") + .normalize("NFD") + .replace(/[\u0300-\u036f]/g, "") + .replace(/[^a-z0-9]+/g, "-") + .replace(/-+/g, "-") + .replace(/^-|-$/g, ""); diff --git a/packages/db-model/tsconfig.json b/packages/db-model/tsconfig.json index 5b80506..d76b1ef 100644 --- a/packages/db-model/tsconfig.json +++ b/packages/db-model/tsconfig.json @@ -1,11 +1,14 @@ { "compilerOptions": { "target": "ESNext", - "module": "ESNext", - "moduleResolution": "bundler", + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist", "skipLibCheck": true, "isolatedModules": true, - "esModuleInterop": true + "esModuleInterop": true, + "declaration": true }, - "include": ["src"] + "include": ["src/**/*"], + "exclude": ["dist", "node_modules"] }