tupleson
Version:
A hackable JSON serializer/deserializer
1 lines • 1.47 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/sync/handlers/tsonUnknownObjectGuard.ts"],"sourcesContent":["import { TsonError } from \"../../errors.js\";\nimport { isPlainObject } from \"../../internals/isPlainObject.js\";\nimport { TsonType } from \"../syncTypes.js\";\n\nexport class TsonUnknownObjectGuardError extends TsonError {\n\t/**\n\t * The unknown object that was found\n\t */\n\tpublic readonly value;\n\n\tconstructor(value: unknown) {\n\t\tsuper(`Unknown object found`);\n\t\tthis.name = this.constructor.name;\n\t\tthis.value = value;\n\n\t\tthis.name = \"TsonUnknownObjectGuardError\";\n\t}\n}\n\n/**\n *\n * @description\n * Guard against unknown complex objects.\n * Make sure to define this last in the list of types.\n * @throws {TsonUnknownObjectGuardError} if an unknown object is found\n */\nexport const tsonUnknownObjectGuard: TsonType<unknown, never> = {\n\ttest: (v) => {\n\t\tif (v && typeof v === \"object\" && !Array.isArray(v) && !isPlainObject(v)) {\n\t\t\tthrow new TsonUnknownObjectGuardError(v);\n\t\t}\n\n\t\treturn false;\n\t},\n};\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAGvB,MAAM,oCAAoC,UAAU;AAAA;AAAA;AAAA;AAAA,EAI1C;AAAA,EAEhB,YAAY,OAAgB;AAC3B,UAAM,sBAAsB;AAC5B,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,QAAQ;AAEb,SAAK,OAAO;AAAA,EACb;AACD;AASO,MAAM,yBAAmD;AAAA,EAC/D,MAAM,CAAC,MAAM;AACZ,QAAI,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG;AACzE,YAAM,IAAI,4BAA4B,CAAC;AAAA,IACxC;AAEA,WAAO;AAAA,EACR;AACD;","names":[]}