{"version":3,"sources":["../src/unplugin.ts"],"names":["createFilter","transformer","declarationTransformer","path","ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,IAAM,eAAwD,GAAA,CAAC,OAAU,GAAA,EAAO,KAAA;AACnF,EAAA,MAAM,MAAS,GAAAA,0BAAA;AAAA,IACX,QAAQ,OAAW,IAAA,kBAAA;AAAA,IACnB,QAAQ,OAAW,IAAA;AAAA,GACvB;AAEA,EAAM,MAAA,YAAA,GAAe,QAAQ,YAAgB,IAAA;AAAA,IACzC,MAAA,EAAQ,CAACC,wBAAW,CAAA;AAAA,IACpB,KAAA,EAAO,CAACC,mCAAsB;AAAA,GAClC;AAEA,EAAA,MAAM,cAAiB,GAAA,OAAA,CAAQ,QAAY,IAAAC,qBAAA,CAAK,QAAQ,eAAe,CAAA;AACvE,EAAA,MAAM,QAAc,GAAAC,aAAA,CAAA,cAAA;AAAA,IAChB,cAAA;AAAA,IACA,QAAQ,QAAa,KAAA,CAAC,CAAS,KAAAA,aAAA,CAAA,GAAA,CAAI,SAAS,CAAC,CAAA;AAAA,GACjD;AAEA,EAAA,IAAI,SAAS,KAAO,EAAA;AAChB,IAAA,MAAM,IAAI,KAAA;AAAA,MACHA,aAAA,CAAA,gBAAA,CAAiB,SAAS,KAAO,EAAA;AAAA,QAChC,oBAAA,EAAsB,CAAC,QAAqB,KAAA,QAAA;AAAA,QAC5C,mBAAA,EAAqB,MAASA,aAAA,CAAA,GAAA,CAAI,mBAAoB,EAAA;AAAA,QACtD,UAAA,EAAY,MAASA,aAAI,CAAA,GAAA,CAAA;AAAA,OAC5B;AAAA,KACL;AAAA;AAGJ,EAAA,MAAM,eAAmC,GAAA;AAAA,IACrC,QAAWA,aAAa,CAAA,YAAA,CAAA,MAAA;AAAA,IACxB,QAAWA,aAAW,CAAA,UAAA,CAAA,MAAA;AAAA,IACtB,cAAA;AAAA,IACA,GAAI,QAAS,CAAA,MAAA;AAAA,IACb,GAAI,OAAQ,CAAA,eAAA,IAAmB;AAAC,GACpC;AAEA,EAAO,OAAA;AAAA,IACH,IAAM,EAAA,uBAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,IACT,gBAAkB,EAAA,CAAC,EAAe,KAAA,MAAA,CAAO,EAAE,CAAA;AAAA,IAC3C,SAAA,EAAW,CAAC,IAAA,EAAc,QAAqB,KAAA;AAC3C,MAAM,MAAA,WAAA,GAAiBA,8BAAgB,IAAM,EAAA;AAAA,QACzC,eAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACH,CAAA;AACD,MAAO,OAAA;AAAA,QACH,MAAM,WAAY,CAAA,UAAA;AAAA,QAClB,GAAI,YAAY,aACV,GAAA;AAAA,UACI,KAAK,WAAY,CAAA;AAAA,YAErB;AAAC,OACX;AAAA;AACJ,GACJ;AACJ;AAEa,IAAA,QAAA,6CAA0C,eAAe;AAEtE,IAAO,gBAAQ,GAAA","file":"chunk-DQIB3NT6.cjs","sourcesContent":["import path from 'node:path';\n\nimport { transformer, declarationTransformer } from '@deepkit/type-compiler';\nimport * as ts from 'typescript';\nimport type { CompilerOptions } from 'typescript';\nimport type { UnpluginFactory } from 'unplugin';\nimport { createUnplugin } from 'unplugin';\nimport { createFilter } from 'unplugin-utils';\n\nimport type { Options } from './types';\n\nexport const unpluginFactory: UnpluginFactory<Options | undefined> = (options = {}) => {\n    const filter = createFilter(\n        options.include ?? /\\.(?:m|c)?tsx?$/u,\n        options.exclude ?? 'node_modules/**',\n    );\n\n    const transformers = options.transformers ?? {\n        before: [transformer],\n        after: [declarationTransformer],\n    };\n\n    const configFilePath = options.tsConfig ?? path.resolve('tsconfig.json');\n    const tsConfig = ts.readConfigFile(\n        configFilePath,\n        options.readFile ?? ((p) => ts.sys.readFile(p)),\n    );\n\n    if (tsConfig.error) {\n        throw new Error(\n            ts.formatDiagnostic(tsConfig.error, {\n                getCanonicalFileName: (fileName: string) => fileName,\n                getCurrentDirectory: () => ts.sys.getCurrentDirectory(),\n                getNewLine: () => ts.sys.newLine,\n            }),\n        );\n    }\n\n    const compilerOptions: CompilerOptions = {\n        target: ts.ScriptTarget.ESNext,\n        module: ts.ModuleKind.ESNext,\n        configFilePath,\n        ...(tsConfig.config as CompilerOptions),\n        ...(options.compilerOptions ?? {}),\n    };\n\n    return {\n        name: 'unplugin-deepkit-type',\n        enforce: 'pre',\n        transformInclude: (id: string) => filter(id),\n        transform: (code: string, fileName: string) => {\n            const transformed = ts.transpileModule(code, {\n                compilerOptions,\n                fileName,\n                transformers,\n            });\n            return {\n                code: transformed.outputText,\n                ...(transformed.sourceMapText\n                    ? {\n                          map: transformed.sourceMapText,\n                      }\n                    : {}),\n            };\n        },\n    };\n};\n\nexport const unplugin = /* #__PURE__ */ createUnplugin(unpluginFactory);\n\nexport default unplugin;\n"]}