fiscalapi
Version:
SDK de Node.js para FiscalAPI
37 lines • 3.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SerializableDto = void 0;
const luxon_1 = require("luxon");
/**
* Clase base que proporciona funcionalidad de serialización para modelos de datos
*/
class SerializableDto {
/**
* Convierte la instancia a una representación JSON en forma de string
* @returns {string} Representación JSON del objeto
*/
toString() {
try {
// Custom replacer function to handle dates correctly
const replacer = (_key, value) => {
// Handle DateTime objects
if (value instanceof luxon_1.DateTime) {
return value.toISO();
}
return value;
};
return JSON.stringify(this, replacer, 2);
}
catch (error) {
return '{"error":"Error generating JSON"}';
}
}
/**
* Custom implementation to ensure object is correctly serialized in console.log
*/
[Symbol.for('nodejs.util.inspect.custom')]() {
return this.toString();
}
}
exports.SerializableDto = SerializableDto;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphYmxlLWR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vc2VyaWFsaXphYmxlLWR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFFakM7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFFMUI7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQztZQUNILHFEQUFxRDtZQUNyRCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVksRUFBRSxLQUFVLEVBQUUsRUFBRTtnQkFDNUMsMEJBQTBCO2dCQUMxQixJQUFJLEtBQUssWUFBWSxnQkFBUSxFQUFFLENBQUM7b0JBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN2QixDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLG1DQUFtQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5cbi8qKlxuICogQ2xhc2UgYmFzZSBxdWUgcHJvcG9yY2lvbmEgZnVuY2lvbmFsaWRhZCBkZSBzZXJpYWxpemFjacOzbiBwYXJhIG1vZGVsb3MgZGUgZGF0b3NcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcmlhbGl6YWJsZUR0byB7XG4gIFxuICAvKipcbiAgICogQ29udmllcnRlIGxhIGluc3RhbmNpYSBhIHVuYSByZXByZXNlbnRhY2nDs24gSlNPTiBlbiBmb3JtYSBkZSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ30gUmVwcmVzZW50YWNpw7NuIEpTT04gZGVsIG9iamV0b1xuICAgKi9cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgLy8gQ3VzdG9tIHJlcGxhY2VyIGZ1bmN0aW9uIHRvIGhhbmRsZSBkYXRlcyBjb3JyZWN0bHlcbiAgICAgIGNvbnN0IHJlcGxhY2VyID0gKF9rZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAvLyBIYW5kbGUgRGF0ZVRpbWUgb2JqZWN0c1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlVGltZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTTygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgICBcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLCByZXBsYWNlciwgMik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiAne1wiZXJyb3JcIjpcIkVycm9yIGdlbmVyYXRpbmcgSlNPTlwifSc7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHRvIGVuc3VyZSBvYmplY3QgaXMgY29ycmVjdGx5IHNlcmlhbGl6ZWQgaW4gY29uc29sZS5sb2dcbiAgICovXG4gIFtTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG59Il19