Files
sap-legacy-webhook-emulator/scripts/export-table-json.ts
T

29 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-09-16 08:30:45 -05:00
// Exporta el body real de creación (Service Layer: UserTablesMD/UserFieldsMD)
// de cada una de las 4 UserTables a un archivo JSON en json/user-tables/ —
// útil para revisar el payload exacto, o para postearlo a mano (Postman,
// curl, tools/sl.http) sin correr `npm run provision`.
//
// Se genera a partir de src/provisioning/table-definitions.ts (única fuente
// de verdad) — si el esquema cambia ahí, correr de nuevo este script para
// regenerar los JSON.
//
// Uso: npx tsx scripts/export-table-json.ts
import { mkdirSync, writeFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { TABLE_DEFINITIONS } from '../src/provisioning/table-definitions.ts';
import { toUserFieldPayload, toUserTablePayload } from '../src/provisioning/payloads.ts';
const outDir = fileURLToPath(new URL('../json/user-tables/', import.meta.url));
mkdirSync(outDir, { recursive: true });
for (const definition of TABLE_DEFINITIONS) {
const payload = {
table: toUserTablePayload(definition),
fields: definition.fields.map((field) => toUserFieldPayload(definition.tableName, field)),
};
const filePath = `${outDir}${definition.tableName}.json`;
writeFileSync(filePath, `${JSON.stringify(payload, null, 2)}\n`);
console.log(`Exportado: ${filePath}`);
}