F. Carpeta « js / modelo »

Versión para imprimir.

1. js / modelo / PASATIEMPO.js

1/**
2 * @typedef {Object} PASATIEMPO
3 * @property {string} [PAS_ID]
4 * @property {string} PAS_NOMBRE
5 * @property {number} [PAS_MODIFICACION]
6 * @property {number} [PAS_ELIMINADO]
7 */

2. js / modelo / validaId.js

1/**
2 * @param {string} id
3 */
4export function validaId(id) {
5 if (id === "")
6 throw new Error("Falta el id.")
7 }

3. js / modelo / validaNombre.js

1/**
2 * @param {string} nombre
3 */
4export function validaNombre(nombre) {
5 if (nombre === "")
6 throw new Error("Falta el nombre.")
7}

4. js / modelo / validaPasatiempo.js

1/**
2 * @param { any } objeto
3 * @returns {import("./PASATIEMPO.js").PASATIEMPO}
4 */
5export function validaPasatiempo(objeto) {
6
7 if (typeof objeto.PAS_ID !== "string")
8 throw new Error("El id debe ser texto.")
9
10 if (typeof objeto.PAS_NOMBRE !== "string")
11 throw new Error("El nombre debe ser texto.")
12
13 if (typeof objeto.PAS_MODIFICACION !== "number")
14 throw new Error("El campo modificacion debe ser número.")
15
16 if (typeof objeto.PAS_ELIMINADO !== "number")
17 throw new Error("El campo eliminado debe ser número.")
18
19 return objeto
20
21}

5. js / modelo / validaPasatiempos.js

1import { validaPasatiempo } from "./validaPasatiempo.js"
2
3/**
4 * @param { any } objetos
5 * @returns {import("./PASATIEMPO.js").PASATIEMPO[]}
6 */
7export function validaPasatiempos(objetos) {
8 if (!Array.isArray(objetos))
9 throw new Error("no se recibió un arreglo.")
10 /**
11 * @type {import("./PASATIEMPO.js").PASATIEMPO[]}
12 */
13 const arreglo = []
14 for (const objeto of objetos) {
15 arreglo.push(validaPasatiempo(objeto))
16 }
17 return arreglo
18}