init
This commit is contained in:
		
							
								
								
									
										71
									
								
								node_modules/vue-tsc/bin/vue-tsc.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								node_modules/vue-tsc/bin/vue-tsc.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
const semver = require('semver')
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
const tsPkg = require('typescript/package.json');
 | 
			
		||||
const readFileSync = fs.readFileSync;
 | 
			
		||||
const tscPath = require.resolve('typescript/lib/tsc');
 | 
			
		||||
const proxyApiPath = require.resolve('../out/index');
 | 
			
		||||
const { state } = require('../out/shared');
 | 
			
		||||
 | 
			
		||||
fs.readFileSync = (...args) => {
 | 
			
		||||
	if (args[0] === tscPath) {
 | 
			
		||||
		let tsc = readFileSync(...args);
 | 
			
		||||
 | 
			
		||||
		// add *.vue files to allow extensions
 | 
			
		||||
		tryReplace(/supportedTSExtensions = .*(?=;)/, s => s + '.concat([[".vue"]])');
 | 
			
		||||
		tryReplace(/supportedJSExtensions = .*(?=;)/, s => s + '.concat([[".vue"]])');
 | 
			
		||||
		tryReplace(/allSupportedExtensions = .*(?=;)/, s => s + '.concat([[".vue"]])');
 | 
			
		||||
 | 
			
		||||
		// proxy createProgram apis
 | 
			
		||||
		tryReplace(/function createProgram\(.+\) {/, s => s + ` return require(${JSON.stringify(proxyApiPath)}).createProgram(...arguments);`);
 | 
			
		||||
 | 
			
		||||
		// patches logic for checking root file extension in build program for incremental builds
 | 
			
		||||
		if (semver.gt(tsPkg.version, '5.0.0')) {
 | 
			
		||||
			tryReplace(
 | 
			
		||||
				`for (const existingRoot of buildInfoVersionMap.roots) {`,
 | 
			
		||||
				`for (const existingRoot of buildInfoVersionMap.roots
 | 
			
		||||
					.filter(file => !file.toLowerCase().includes('__vls_'))
 | 
			
		||||
					.map(file => file.replace(/\.vue\.(j|t)sx?$/i, '.vue'))
 | 
			
		||||
				) {`
 | 
			
		||||
			);
 | 
			
		||||
			tryReplace(
 | 
			
		||||
				`return [toFileId(key), toFileIdListId(state.exportedModulesMap.getValues(key))];`, 
 | 
			
		||||
				`return [toFileId(key), toFileIdListId(new Set(arrayFrom(state.exportedModulesMap.getValues(key)).filter(file => file !== void 0)))];`
 | 
			
		||||
			);
 | 
			
		||||
		}
 | 
			
		||||
		if (semver.gte(tsPkg.version, '5.0.4')) {
 | 
			
		||||
			tryReplace(
 | 
			
		||||
				`return createBuilderProgramUsingProgramBuildInfo(buildInfo, buildInfoPath, host);`,
 | 
			
		||||
				s => `buildInfo.program.fileNames = buildInfo.program.fileNames
 | 
			
		||||
					.filter(file => !file.toLowerCase().includes('__vls_'))
 | 
			
		||||
					.map(file => file.replace(/\.vue\.(j|t)sx?$/i, '.vue'));\n` + s
 | 
			
		||||
			);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return tsc;
 | 
			
		||||
 | 
			
		||||
		function tryReplace(search, replace) {
 | 
			
		||||
			const before = tsc;
 | 
			
		||||
			tsc = tsc.replace(search, replace);
 | 
			
		||||
			const after = tsc;
 | 
			
		||||
			if (after === before) {
 | 
			
		||||
				throw 'Search string not found: ' + JSON.stringify(search.toString());
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return readFileSync(...args);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
(function main() {
 | 
			
		||||
	try {
 | 
			
		||||
		require(tscPath);
 | 
			
		||||
	}
 | 
			
		||||
	catch (err) {
 | 
			
		||||
		if (err === 'hook') {
 | 
			
		||||
			state.hook.worker.then(main);
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			throw err;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
})();
 | 
			
		||||
		Reference in New Issue
	
	Block a user