{"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/functions/plugin.ts"],"sourcesContent":["import type { Plugin } from \"#/@types/options\";\n\nconst prefixError = (error: Error, prefix: string): Error => {\n    error.message = `${prefix} ${error.message}`;\n    return error;\n};\n\nconst tryPlugin = <Args extends unknown[], Result>(\n    plugin: Plugin,\n    fn: (...args: Args) => Result,\n    ...args: Args\n): Result => {\n    try {\n        return fn(...args);\n    } catch (err: unknown) {\n        const prefix: string = `[${plugin.name ?? \"plugin\"}]`;\n        if (err instanceof Error) throw prefixError(err, prefix);\n        throw new Error(`${prefix} ${String(err)}`);\n    }\n};\n\nexport { tryPlugin };\n"],"mappings":"AAEA,MAAM,eAAe,OAAc,WAA0B;AACzD,OAAM,UAAU,GAAG,OAAO,GAAG,MAAM;AACnC,QAAO;;AAGX,MAAM,aACF,QACA,IACA,GAAG,SACM;AACT,KAAI;AACA,SAAO,GAAG,GAAG,KAAK;UACb,KAAc;EACnB,MAAM,SAAiB,IAAI,OAAO,QAAQ,SAAS;AACnD,MAAI,eAAe,MAAO,OAAM,YAAY,KAAK,OAAO;AACxD,QAAM,IAAI,MAAM,GAAG,OAAO,GAAG,OAAO,IAAI,GAAG"}