UNPKG

fiscalapi

Version:

SDK de Node.js para FiscalAPI

33 lines 3.29 kB
import { DateTime } from 'luxon'; /** * Clase base que proporciona funcionalidad de serialización para modelos de datos */ export 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 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(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphYmxlLWR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vc2VyaWFsaXphYmxlLWR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFFMUI7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQztZQUNILHFEQUFxRDtZQUNyRCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVksRUFBRSxLQUFVLEVBQUUsRUFBRTtnQkFDNUMsMEJBQTBCO2dCQUMxQixJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sbUNBQW1DLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuXG4vKipcbiAqIENsYXNlIGJhc2UgcXVlIHByb3BvcmNpb25hIGZ1bmNpb25hbGlkYWQgZGUgc2VyaWFsaXphY2nDs24gcGFyYSBtb2RlbG9zIGRlIGRhdG9zXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemFibGVEdG8ge1xuICBcbiAgLyoqXG4gICAqIENvbnZpZXJ0ZSBsYSBpbnN0YW5jaWEgYSB1bmEgcmVwcmVzZW50YWNpw7NuIEpTT04gZW4gZm9ybWEgZGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJlcHJlc2VudGFjacOzbiBKU09OIGRlbCBvYmpldG9cbiAgICovXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEN1c3RvbSByZXBsYWNlciBmdW5jdGlvbiB0byBoYW5kbGUgZGF0ZXMgY29ycmVjdGx5XG4gICAgICBjb25zdCByZXBsYWNlciA9IChfa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgLy8gSGFuZGxlIERhdGVUaW1lIG9iamVjdHNcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVRpbWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU08oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9O1xuICAgICAgXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcywgcmVwbGFjZXIsIDIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gJ3tcImVycm9yXCI6XCJFcnJvciBnZW5lcmF0aW5nIEpTT05cIn0nO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiB0byBlbnN1cmUgb2JqZWN0IGlzIGNvcnJlY3RseSBzZXJpYWxpemVkIGluIGNvbnNvbGUubG9nXG4gICAqL1xuICBbU3ltYm9sLmZvcignbm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxufSJdfQ==