@opensas/xml-rest-adapter 0.2.0 → 0.2.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/dist/valid.js +19 -1
- package/package.json +1 -1
package/dist/valid.js
CHANGED
|
@@ -23,7 +23,25 @@ function toPascalCase(str) {
|
|
|
23
23
|
})
|
|
24
24
|
.join('');
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
// Match exacto primero. Si falla y el segmento tiene un separador `_` explícito, reintenta
|
|
27
|
+
// case-insensitive: un `Endpoint.name` con un acrónimo en mayúsculas (`ActividadCIIU`,
|
|
28
|
+
// `CategoriaCIIU`) nunca coincide con lo que arma `toPascalCase` a partir del segmento de URL
|
|
29
|
+
// (`actividad_ciiu` → `ActividadCiiu`, con "Ciiu" no "CIIU") — ningún algoritmo genérico de
|
|
30
|
+
// snake_case→PascalCase puede adivinar qué partes de un nombre compuesto son sigla.
|
|
31
|
+
// convenios_web nunca tuvo este problema porque su comparación (`isValidObjeto`) ya era
|
|
32
|
+
// case-insensitive — portado acá, pero acotado al caso con separador: sin `_` en el segmento
|
|
33
|
+
// mantenemos el exacto a propósito (`tipodato`, sin límite de palabra explícito, sigue sin
|
|
34
|
+
// matchear `TipoDato` — ver custom-url-casing.fixture.test.ts, cualquier coincidencia ahí sería
|
|
35
|
+
// casualidad, no una reconstrucción real). Encontrado migrando `CctDigitalizacion` en
|
|
36
|
+
// convenios_web (ver docs/todos/rest-baseline-pre-migracion.md).
|
|
37
|
+
const getEndpoint = (app, objeto) => {
|
|
38
|
+
const pascal = toPascalCase(objeto);
|
|
39
|
+
const exact = app.endpoints.find((ep) => ep.name === pascal);
|
|
40
|
+
if (exact || !objeto.includes('_'))
|
|
41
|
+
return exact;
|
|
42
|
+
const normalized = pascal.toLowerCase();
|
|
43
|
+
return app.endpoints.find((ep) => ep.name.toLowerCase() === normalized);
|
|
44
|
+
};
|
|
27
45
|
export function validParams(app, path, withId = 'noId') {
|
|
28
46
|
const [objetoRaw, idRaw] = path.split('/');
|
|
29
47
|
if (!objetoRaw)
|