@sentry-internal/lynx-plugin
Version:
Official Sentry Plugin for lynx
1 lines • 1.61 kB
Source Map (JSON)
{"version":3,"file":"tryCatch.mjs","sources":["../../../src/utils/tryCatch.ts"],"sourcesContent":["// Inspired by https://gist.github.com/t3dotgg/a486c4ae66d32bf17c09c73609dacc5b\ntype Success<T> = {\n data: T;\n error: null;\n};\n\ntype Failure = {\n data: null;\n error: Error;\n};\n\ntype Result<T> = Success<T> | Failure;\n\nexport function tryCatch<T>(\n func: () => Promise<T>,\n): Promise<Result<T>>;\nexport function tryCatch<T>(\n func: () => T,\n): Result<T>;\nexport function tryCatch<T>(\n func: () => Promise<T> | T,\n): Promise<Result<T>> | Result<T> {\n try {\n const data = func();\n if (data instanceof Promise) {\n return data\n .then(result => ({ data: result, error: null }))\n .catch(error => ({ data: null, error: error as Error }));\n }\n return { data, error: null };\n } catch (error) {\n if (error instanceof Error) {\n return { data: null, error };\n }\n return { data: null, error: new Error(String(error)) };\n }\n}\n"],"names":[],"mappings":"AAmBM,SAAU,QAAQ,CACtB,IAA0B,EAAA;IAE1B,IAAI;AACF,QAAA,MAAM,IAAI,GAAG,IAAI,EAAE;QACnB,IAAI,IAAI,YAAY,OAAO,EAAE;AAC3B,YAAA,OAAO;AACJ,iBAAA,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9C,iBAAA,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC;AAC3D;AACD,QAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7B;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AAC7B;AACD,QAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACvD;AACH;;;;"}