UNPKG

@polgubau/utils

Version:

A collection of utility functions for TypeScript

1 lines 1.96 kB
{"version":3,"sources":["../../../../src/parsers/handle-json/handle-json.ts"],"sourcesContent":["/**\n * @name parseJSON\n * @description A wrapper for \"JSON.parse()\"\" to support \"undefined\" value, if fails -> throw an error\n * @param value - string | null\n * @returns T | undefined\n * Author: Pol Gubau Amores\n */\n\nconst errorLabel = \"parsing error on value: \";\n\nexport function parseJSON<T>(value: string | null): T | undefined {\n\ttry {\n\t\tif (!value) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn JSON.parse(value ?? \"\");\n\t} catch {\n\t\tconsole.error(errorLabel, { value });\n\t\tthrow new Error(errorLabel + value);\n\t}\n}\n\n// A wrapper for \"JSON.parse()\"\" to support \"undefined\" value\nexport function saveParseJson<T>(value: string | null): T | undefined {\n\ttry {\n\t\tif (!value) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn JSON.parse(value ?? \"\");\n\t} catch {\n\t\tconsole.error(errorLabel, { value });\n\t\treturn undefined;\n\t}\n}\n\n/** stringify\n * @param value - T\n * @returns string | undefined\n */\n\nexport function stringify<T>(value: T): string | undefined {\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\tconsole.error(errorLabel, { value });\n\t\treturn undefined;\n\t}\n}\n\nexport const json = {\n\tsaveParse: saveParseJson,\n\tparse: parseJSON,\n\tstringify,\n};\n"],"mappings":";AAQA,IAAM,aAAa;AAEZ,SAAS,UAAa,OAAqC;AACjE,MAAI;AACH,QAAI,CAAC,OAAO;AACX,aAAO;AAAA,IACR;AACA,WAAO,KAAK,MAAM,SAAS,EAAE;AAAA,EAC9B,QAAQ;AACP,YAAQ,MAAM,YAAY,EAAE,MAAM,CAAC;AACnC,UAAM,IAAI,MAAM,aAAa,KAAK;AAAA,EACnC;AACD;AAGO,SAAS,cAAiB,OAAqC;AACrE,MAAI;AACH,QAAI,CAAC,OAAO;AACX,aAAO;AAAA,IACR;AACA,WAAO,KAAK,MAAM,SAAS,EAAE;AAAA,EAC9B,QAAQ;AACP,YAAQ,MAAM,YAAY,EAAE,MAAM,CAAC;AACnC,WAAO;AAAA,EACR;AACD;AAOO,SAAS,UAAa,OAA8B;AAC1D,MAAI;AACH,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B,QAAQ;AACP,YAAQ,MAAM,YAAY,EAAE,MAAM,CAAC;AACnC,WAAO;AAAA,EACR;AACD;AAEO,IAAM,OAAO;AAAA,EACnB,WAAW;AAAA,EACX,OAAO;AAAA,EACP;AACD;","names":[]}