@vue/language-core
Advanced tools
Comparing version 2.0.6 to 2.0.7
@@ -176,15 +176,21 @@ "use strict"; | ||
function __VLS_getVForSourceType<T extends any[]>(source: T): [ | ||
T[number], // item | ||
number, // key | ||
number, // index | ||
item: T[number], | ||
key: number, | ||
index: number, | ||
][]; | ||
function __VLS_getVForSourceType<T extends { [Symbol.iterator](): Iterator<any> }>(source: T): [ | ||
T extends { [Symbol.iterator](): Iterator<infer T1> } ? T1 : never, // item | ||
number, // key | ||
undefined, // index | ||
item: T extends { [Symbol.iterator](): Iterator<infer T1> } ? T1 : never, | ||
key: number, | ||
index: undefined, | ||
][]; | ||
// #3845 | ||
function __VLS_getVForSourceType<T extends number | { [Symbol.iterator](): Iterator<any> }>(source: T): [ | ||
item: number | (Exclude<T, number> extends { [Symbol.iterator](): Iterator<infer T1> } ? T1 : never), | ||
key: number, | ||
index: undefined, | ||
][]; | ||
function __VLS_getVForSourceType<T>(source: T): [ | ||
T[keyof T], // item | ||
keyof T, // key | ||
number, // index | ||
item: T[keyof T], | ||
key: keyof T, | ||
index: number, | ||
][]; | ||
@@ -288,13 +294,18 @@ | ||
function* generateSrc() { | ||
if (!script?.src) | ||
if (!script?.src) { | ||
return; | ||
} | ||
let src = script.src; | ||
if (src.endsWith('.d.ts')) | ||
if (src.endsWith('.d.ts')) { | ||
src = src.substring(0, src.length - '.d.ts'.length); | ||
else if (src.endsWith('.ts')) | ||
} | ||
else if (src.endsWith('.ts')) { | ||
src = src.substring(0, src.length - '.ts'.length); | ||
else if (src.endsWith('.tsx')) | ||
} | ||
else if (src.endsWith('.tsx')) { | ||
src = src.substring(0, src.length - '.tsx'.length) + '.jsx'; | ||
if (!src.endsWith('.js') && !src.endsWith('.jsx')) | ||
} | ||
if (!src.endsWith('.js') && !src.endsWith('.jsx')) { | ||
src = src + '.js'; | ||
} | ||
yield _(`export * from `); | ||
@@ -330,11 +341,15 @@ yield _([ | ||
function* generateScriptContentBeforeExportDefault() { | ||
if (!script) | ||
if (!script) { | ||
return; | ||
if (!!scriptSetup && scriptRanges?.exportDefault) | ||
} | ||
if (!!scriptSetup && scriptRanges?.exportDefault) { | ||
return yield _(generateSourceCode(script, 0, scriptRanges.exportDefault.expression.start)); | ||
} | ||
let isExportRawObject = false; | ||
if (scriptRanges?.exportDefault) | ||
if (scriptRanges?.exportDefault) { | ||
isExportRawObject = script.content.substring(scriptRanges.exportDefault.expression.start, scriptRanges.exportDefault.expression.end).startsWith('{'); | ||
if (!isExportRawObject || !vueCompilerOptions.optionsWrapper.length || !scriptRanges?.exportDefault) | ||
} | ||
if (!isExportRawObject || !vueCompilerOptions.optionsWrapper.length || !scriptRanges?.exportDefault) { | ||
return yield _(generateSourceCode(script, 0, script.content.length)); | ||
} | ||
yield _(generateSourceCode(script, 0, scriptRanges.exportDefault.expression.start)); | ||
@@ -364,10 +379,13 @@ yield _(vueCompilerOptions.optionsWrapper[0]); | ||
function* generateScriptContentAfterExportDefault() { | ||
if (!script) | ||
if (!script) { | ||
return; | ||
if (!!scriptSetup && scriptRanges?.exportDefault) | ||
} | ||
if (!!scriptSetup && scriptRanges?.exportDefault) { | ||
yield _(generateSourceCode(script, scriptRanges.exportDefault.expression.end, script.content.length)); | ||
} | ||
} | ||
function* generateScriptSetupImports() { | ||
if (!scriptSetup || !scriptSetupRanges) | ||
if (!scriptSetup || !scriptSetupRanges) { | ||
return; | ||
} | ||
yield _([ | ||
@@ -388,4 +406,5 @@ scriptSetup.content.substring(0, Math.max(scriptSetupRanges.importSectionEndOffset, scriptSetupRanges.leadingCommentEndOffset)) + '\n', | ||
for (const defineProp of scriptSetupRanges.defineProp) { | ||
if (!defineProp.isModel) | ||
if (!defineProp.isModel) { | ||
continue; | ||
} | ||
let propName = 'modelValue'; | ||
@@ -410,4 +429,5 @@ if (defineProp.name) { | ||
function* generateScriptSetupAndTemplate() { | ||
if (!scriptSetup || !scriptSetupRanges) | ||
if (!scriptSetup || !scriptSetupRanges) { | ||
return; | ||
} | ||
const definePropMirrors = new Map(); | ||
@@ -552,4 +572,5 @@ if (scriptSetup.generic) { | ||
function* generateSetupFunction(functional, mode, definePropMirrors) { | ||
if (!scriptSetupRanges || !scriptSetup) | ||
if (!scriptSetupRanges || !scriptSetup) { | ||
return; | ||
} | ||
const definePropProposalA = scriptSetup.content.trimStart().startsWith('// @experimentalDefinePropProposal=kevinEdition') || vueCompilerOptions.experimentalDefinePropProposal === 'kevinEdition'; | ||
@@ -709,4 +730,5 @@ const definePropProposalB = scriptSetup.content.trimStart().startsWith('// @experimentalDefinePropProposal=johnsonEdition') || vueCompilerOptions.experimentalDefinePropProposal === 'johnsonEdition'; | ||
function* generateComponent(functional) { | ||
if (!scriptSetupRanges) | ||
if (!scriptSetupRanges) { | ||
return; | ||
} | ||
if (script && scriptRanges?.exportDefault && scriptRanges.exportDefault.expression.start !== scriptRanges.exportDefault.args.start) { | ||
@@ -783,8 +805,10 @@ // use defineComponent() from user space code if it exist | ||
} | ||
yield _(`emits: ({} as __VLS_NormalizeEmits<typeof __VLS_modelEmitsType`); | ||
if (ranges.emits.define) { | ||
yield _(` & typeof `); | ||
yield _(ranges.emits.name ?? '__VLS_emit'); | ||
if (ranges.defineProp.filter(p => p.isModel).length || ranges.emits.define) { | ||
yield _(`emits: ({} as __VLS_NormalizeEmits<typeof __VLS_modelEmitsType`); | ||
if (ranges.emits.define) { | ||
yield _(` & typeof `); | ||
yield _(ranges.emits.name ?? '__VLS_emit'); | ||
} | ||
yield _(`>),\n`); | ||
} | ||
yield _(`>),\n`); | ||
} | ||
@@ -791,0 +815,0 @@ if (script && scriptRanges?.exportDefault?.args) { |
@@ -30,3 +30,5 @@ "use strict"; | ||
try { | ||
return plugin(pluginContext); | ||
const instance = plugin(pluginContext); | ||
instance.name ??= plugin.__moduleName; | ||
return instance; | ||
} | ||
@@ -43,6 +45,6 @@ catch (err) { | ||
}); | ||
return pluginInstances.filter((plugin) => { | ||
return pluginInstances.filter(plugin => { | ||
const valid = plugin.version === types_1.pluginVersion; | ||
if (!valid) { | ||
console.warn(`[Vue] Plugin ${JSON.stringify(plugin.name)} API version incompatible, expected ${JSON.stringify(types_1.pluginVersion)} but got ${JSON.stringify(plugin.version)}`); | ||
console.warn(`[Vue] Plugin ${JSON.stringify(plugin.name)} API version incompatible, expected "${types_1.pluginVersion}" but got "${plugin.version}".`); | ||
} | ||
@@ -49,0 +51,0 @@ return valid; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const parseSfc_1 = require("../utils/parseSfc"); | ||
const plugin = (_ctx) => { | ||
const plugin = _ctx => { | ||
return { | ||
@@ -6,0 +6,0 @@ version: 2, |
@@ -12,3 +12,3 @@ "use strict"; | ||
exports.tsCodegen = new WeakMap(); | ||
const plugin = (ctx) => { | ||
const plugin = ctx => { | ||
return { | ||
@@ -130,4 +130,5 @@ version: 2, | ||
const generatedTemplate = (0, computeds_1.computed)(() => { | ||
if (!_sfc.template) | ||
if (!_sfc.template) { | ||
return; | ||
} | ||
const tsCodes = []; | ||
@@ -134,0 +135,0 @@ const tsFormatCodes = []; |
@@ -106,4 +106,5 @@ "use strict"; | ||
} | ||
if (node.initializer) | ||
if (node.initializer) { | ||
walkIdentifiers(ts, node.initializer, ast, cb, localVars, blockVars, false); | ||
} | ||
} | ||
@@ -118,7 +119,9 @@ else if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) { | ||
} | ||
for (const varName of functionArgs) | ||
for (const varName of functionArgs) { | ||
localVars.set(varName, (localVars.get(varName) ?? 0) + 1); | ||
} | ||
walkIdentifiers(ts, node.body, ast, cb, localVars, blockVars, false); | ||
for (const varName of functionArgs) | ||
for (const varName of functionArgs) { | ||
localVars.set(varName, localVars.get(varName) - 1); | ||
} | ||
} | ||
@@ -125,0 +128,0 @@ else if (ts.isObjectLiteralExpression(node)) { |
import type * as ts from 'typescript'; | ||
import type { VueCompilerOptions } from '../types'; | ||
export type ParsedCommandLine = ts.ParsedCommandLine & { | ||
vueOptions: Partial<VueCompilerOptions>; | ||
vueOptions: VueCompilerOptions; | ||
}; | ||
@@ -6,0 +6,0 @@ export declare function createParsedCommandLineByJson(ts: typeof import('typescript'), parseConfigHost: ts.ParseConfigHost, rootDir: string, json: any, configFileName?: string): ParsedCommandLine; |
@@ -18,3 +18,4 @@ "use strict"; | ||
} | ||
const parsed = ts.parseJsonConfigFileContent(json, proxyHost.host, rootDir, {}, configFileName, undefined, (vueOptions.extensions ?? ['.vue']).map(extension => ({ | ||
const resolvedVueOptions = resolveVueCompilerOptions(vueOptions); | ||
const parsed = ts.parseJsonConfigFileContent(json, proxyHost.host, rootDir, {}, configFileName, undefined, resolvedVueOptions.extensions.map(extension => ({ | ||
extension: extension.slice(1), | ||
@@ -30,3 +31,3 @@ isMixedContent: true, | ||
...parsed, | ||
vueOptions, | ||
vueOptions: resolvedVueOptions, | ||
}; | ||
@@ -50,3 +51,4 @@ } | ||
} | ||
const parsed = ts.parseJsonSourceFileConfigFileContent(config, proxyHost.host, path.dirname(tsConfigPath), {}, tsConfigPath, undefined, (vueOptions.extensions ?? ['.vue']).map(extension => ({ | ||
const resolvedVueOptions = resolveVueCompilerOptions(vueOptions); | ||
const parsed = ts.parseJsonSourceFileConfigFileContent(config, proxyHost.host, path.dirname(tsConfigPath), {}, tsConfigPath, undefined, resolvedVueOptions.extensions.map(extension => ({ | ||
extension: extension.slice(1), | ||
@@ -62,3 +64,3 @@ isMixedContent: true, | ||
...parsed, | ||
vueOptions, | ||
vueOptions: resolvedVueOptions, | ||
}; | ||
@@ -125,3 +127,5 @@ } | ||
if (resolvedPath) { | ||
return require(resolvedPath); | ||
const plugin = require(resolvedPath); | ||
plugin.__moduleName = pluginPath; | ||
return plugin; | ||
} | ||
@@ -128,0 +132,0 @@ else { |
@@ -12,3 +12,3 @@ "use strict"; | ||
const onWarn = options.onWarn; | ||
options.onError = (error) => { | ||
options.onError = error => { | ||
if (error.code === 33 // :key binding allowed in v-for template child in vue 2 | ||
@@ -61,3 +61,3 @@ || error.code === 29 // fix https://github.com/vuejs/language-tools/issues/1638 | ||
function baseCompile(template, options = {}) { | ||
const onError = options.onError || ((error) => { throw error; }); | ||
const onError = options.onError || (error => { throw error; }); | ||
const isModuleMode = options.mode === 'module'; | ||
@@ -64,0 +64,0 @@ const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; |
@@ -23,3 +23,3 @@ "use strict"; | ||
.filter(s => typeof s !== 'string') | ||
.map((m) => { | ||
.map(m => { | ||
const text = m[0]; | ||
@@ -26,0 +26,0 @@ const start = m[2]; |
{ | ||
"name": "@vue/language-core", | ||
"version": "2.0.6", | ||
"version": "2.0.7", | ||
"license": "MIT", | ||
@@ -15,3 +15,3 @@ "files": [ | ||
"dependencies": { | ||
"@volar/language-core": "~2.1.2", | ||
"@volar/language-core": "~2.1.3", | ||
"@vue/compiler-dom": "^3.4.0", | ||
@@ -38,3 +38,3 @@ "@vue/shared": "^3.4.0", | ||
}, | ||
"gitHead": "feb990ccec85f6330bba37c8b1d1287f0980274c" | ||
"gitHead": "4a37e8f3ebcf31ecfd2ea627f7611d5990ec5df6" | ||
} |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
260204
5752
Updated@volar/language-core@~2.1.3