512 - 《Isolated Declarations 实现》
发布于 2025年1月14日
1、早上看到 unplugin-isolated-decl 就看了下实现。unplugin-isolated-decl 是一个TypeScript 声明文件生成工具,比传统的 tsc 编译器速度更快。其支持多种转换器,包括 Oxc、SWC 和 TypeScript。
2、提取 Declarations 的实现思路。
1)oxc。
import oxc from 'oxc-transform';
const result = oxc.isolatedDeclaration(id, code, { sourcemap: sourceMap });
2)swc。
import swc from '@swc/core';
const result = await swc.parse(code, {
syntax: 'typescript',
comments: false,
target: 'es2022',
});
const dts = swc.printSync(result, {
minify: false,
});
const result = { code: dts.code };
3)Typescript。
import ts from 'typescript';
const options = {
declaration: true,
emitDeclarationOnly: true,
noEmitOnError: false,
declarationMap: true,
};
const host = ts.createCompilerHost(options);
const originalGetSourceFile = host.getSourceFile;
const sourceFile = ts.createSourceFile(
id,
cod