unplugin-dts
Version:
<h1 align="center">unplugin-dts</h1>
54 lines (50 loc) • 1.8 kB
JavaScript
;
const node_path = require('node:path');
const languageCore = require('@vue/language-core');
const typescript = require('@volar/typescript');
const plugin = require('../shared/unplugin-dts.Bd7VMaAx.cjs');
require('node:fs');
require('node:module');
require('kolorist');
require('node:fs/promises');
require('node:os');
require('@rollup/pluginutils');
require('compare-versions');
require('debug');
require('local-pkg');
require('magic-string');
function createParsedCommandLine(_ts, host, configPath) {
const vueResult = languageCore.createParsedCommandLine(_ts, host, plugin.slash(configPath));
const config = _ts.readJsonConfigFile(configPath, host.readFile);
const vueHost = {
...host,
readDirectory(rootDir, extensions, excludes, includes, depth) {
const extendedExtensions = extensions ? [...extensions, ".vue"] : extensions;
return host.readDirectory(rootDir, extendedExtensions, excludes, includes, depth);
}
};
const parsed = _ts.parseJsonSourceFileConfigFileContent(
config,
vueHost,
node_path.dirname(configPath),
{},
configPath
);
return {
...parsed,
vueOptions: vueResult.vueOptions
};
}
const createProgram = typescript.proxyCreateProgram(plugin.ts, plugin.ts.createProgram, (ts2, options) => {
const { configFilePath } = options.options;
const vueOptions = typeof configFilePath === "string" ? createParsedCommandLine(ts2, ts2.sys, plugin.slash(configFilePath)).vueOptions : languageCore.getDefaultCompilerOptions();
const vueLanguagePlugin = languageCore.createVueLanguagePlugin(
ts2,
options.options,
vueOptions,
(id) => id
);
return { languagePlugins: [vueLanguagePlugin] };
});
exports.createParsedCommandLine = createParsedCommandLine;
exports.createProgram = createProgram;