UNPKG

@jpapini/unplugin-deepkit-type

Version:
62 lines (60 loc) 1.86 kB
import path from 'node:path'; import { declarationTransformer, transformer } from '@deepkit/type-compiler'; import * as ts from 'typescript'; import { createUnplugin } from 'unplugin'; import { createFilter } from 'unplugin-utils'; // src/unplugin.ts var unpluginFactory = (options = {}) => { const filter = createFilter( options.include ?? /\.(?:m|c)?tsx?$/u, options.exclude ?? "node_modules/**" ); const transformers = options.transformers ?? { before: [transformer], after: [declarationTransformer] }; const configFilePath = options.tsConfig ?? path.resolve("tsconfig.json"); const tsConfig = ts.readConfigFile( configFilePath, options.readFile ?? ((p) => ts.sys.readFile(p)) ); if (tsConfig.error) { throw new Error( ts.formatDiagnostic(tsConfig.error, { getCanonicalFileName: (fileName) => fileName, getCurrentDirectory: () => ts.sys.getCurrentDirectory(), getNewLine: () => ts.sys.newLine }) ); } const compilerOptions = { target: ts.ScriptTarget.ESNext, module: ts.ModuleKind.ESNext, configFilePath, ...tsConfig.config, ...options.compilerOptions ?? {} }; return { name: "unplugin-deepkit-type", enforce: "pre", transformInclude: (id) => filter(id), transform: (code, fileName) => { const transformed = ts.transpileModule(code, { compilerOptions, fileName, transformers }); return { code: transformed.outputText, ...transformed.sourceMapText ? { map: transformed.sourceMapText } : {} }; } }; }; var unplugin = /* @__PURE__ */ createUnplugin(unpluginFactory); var unplugin_default = unplugin; export { unplugin, unpluginFactory, unplugin_default }; //# sourceMappingURL=chunk-6HXVT5ZG.mjs.map //# sourceMappingURL=chunk-6HXVT5ZG.mjs.map