mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Emit enabled for JS files
This commit is contained in:
@@ -69,22 +69,16 @@ namespace ts {
|
||||
if (!compilerOptions.noResolve) {
|
||||
let addedGlobalFileReference = false;
|
||||
forEach(root.referencedFiles, fileReference => {
|
||||
if (isJavaScript(fileReference.fileName)) {
|
||||
reportedDeclarationError = true;
|
||||
diagnostics.push(createFileDiagnostic(root, fileReference.pos, fileReference.end - fileReference.pos, Diagnostics.js_file_cannot_be_referenced_in_ts_file_when_emitting_declarations));
|
||||
}
|
||||
else {
|
||||
let referencedFile = tryResolveScriptReference(host, root, fileReference);
|
||||
let referencedFile = tryResolveScriptReference(host, root, fileReference);
|
||||
|
||||
// All the references that are not going to be part of same file
|
||||
if (referencedFile && ((referencedFile.flags & NodeFlags.DeclarationFile) || // This is a declare file reference
|
||||
shouldEmitToOwnFile(referencedFile, compilerOptions) || // This is referenced file is emitting its own js file
|
||||
!addedGlobalFileReference)) { // Or the global out file corresponding to this reference was not added
|
||||
// All the references that are not going to be part of same file
|
||||
if (referencedFile && ((referencedFile.flags & NodeFlags.DeclarationFile) || // This is a declare file reference
|
||||
shouldEmitToOwnFile(referencedFile, compilerOptions) || // This is referenced file is emitting its own js file
|
||||
!addedGlobalFileReference)) { // Or the global out file corresponding to this reference was not added
|
||||
|
||||
writeReferencePath(referencedFile);
|
||||
if (!isExternalModuleOrDeclarationFile(referencedFile)) {
|
||||
addedGlobalFileReference = true;
|
||||
}
|
||||
writeReferencePath(referencedFile);
|
||||
if (!isExternalModuleOrDeclarationFile(referencedFile)) {
|
||||
addedGlobalFileReference = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -111,24 +105,18 @@ namespace ts {
|
||||
// Emit references corresponding to this file
|
||||
let emittedReferencedFiles: SourceFile[] = [];
|
||||
forEach(host.getSourceFiles(), sourceFile => {
|
||||
if (!isExternalModuleOrDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) {
|
||||
if (!isExternalModuleOrDeclarationFile(sourceFile)) {
|
||||
// Check what references need to be added
|
||||
if (!compilerOptions.noResolve) {
|
||||
forEach(sourceFile.referencedFiles, fileReference => {
|
||||
if (isJavaScript(fileReference.fileName)) {
|
||||
reportedDeclarationError = true;
|
||||
diagnostics.push(createFileDiagnostic(sourceFile, fileReference.pos, fileReference.end - fileReference.pos, Diagnostics.js_file_cannot_be_referenced_in_ts_file_when_emitting_declarations));
|
||||
}
|
||||
else {
|
||||
let referencedFile = tryResolveScriptReference(host, sourceFile, fileReference);
|
||||
let referencedFile = tryResolveScriptReference(host, sourceFile, fileReference);
|
||||
|
||||
// If the reference file is a declaration file or an external module, emit that reference
|
||||
if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) &&
|
||||
!contains(emittedReferencedFiles, referencedFile))) { // If the file reference was not already emitted
|
||||
// If the reference file is a declaration file or an external module, emit that reference
|
||||
if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) &&
|
||||
!contains(emittedReferencedFiles, referencedFile))) { // If the file reference was not already emitted
|
||||
|
||||
writeReferencePath(referencedFile);
|
||||
emittedReferencedFiles.push(referencedFile);
|
||||
}
|
||||
writeReferencePath(referencedFile);
|
||||
emittedReferencedFiles.push(referencedFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2465,10 +2465,6 @@
|
||||
"category": "Error",
|
||||
"code": 8017
|
||||
},
|
||||
".js file cannot be referenced in .ts file when emitting declarations.": {
|
||||
"category": "Error",
|
||||
"code": 8018
|
||||
},
|
||||
|
||||
"Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses.": {
|
||||
"category": "Error",
|
||||
|
||||
@@ -342,7 +342,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
emitFile(getEmitFileNames(targetSourceFile, host), targetSourceFile);
|
||||
}
|
||||
else if (!isDeclarationFile(targetSourceFile) &&
|
||||
!isJavaScript(targetSourceFile.fileName) &&
|
||||
(compilerOptions.outFile || compilerOptions.out)) {
|
||||
emitFile(getBundledEmitFileNames(compilerOptions));
|
||||
}
|
||||
@@ -462,7 +461,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
else {
|
||||
forEach(host.getSourceFiles(), sourceFile => {
|
||||
if (!isJavaScript(sourceFile.fileName) && !isExternalModuleOrDeclarationFile(sourceFile)) {
|
||||
if (!isExternalModuleOrDeclarationFile(sourceFile)) {
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1769,7 +1769,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function getEmitFileNames(sourceFile: SourceFile, host: EmitHost) {
|
||||
if (!isDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) {
|
||||
if (!isDeclarationFile(sourceFile)) {
|
||||
let options = host.getCompilerOptions();
|
||||
let jsFilePath: string;
|
||||
if (shouldEmitToOwnFile(sourceFile, options)) {
|
||||
@@ -1835,12 +1835,12 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function shouldEmitToOwnFile(sourceFile: SourceFile, compilerOptions: CompilerOptions): boolean {
|
||||
if (!isDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) {
|
||||
if (!isDeclarationFile(sourceFile)) {
|
||||
if ((isExternalModule(sourceFile) || !(compilerOptions.outFile || compilerOptions.out))) {
|
||||
// 1. in-browser single file compilation scenario
|
||||
// 2. non supported extension file
|
||||
return compilerOptions.isolatedModules ||
|
||||
forEach(supportedTypeScriptExtensions, extension => fileExtensionIs(sourceFile.fileName, extension));
|
||||
forEach(getSupportedExtensions(compilerOptions), extension => fileExtensionIs(sourceFile.fileName, extension));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user