mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-12-15 16:53:31 -06:00
Initial support for named AMD modules.
This commit is contained in:
parent
a54f974a30
commit
2302bd23ab
@ -2096,7 +2096,15 @@ module ts {
|
||||
function emitAMDModule(node: SourceFile, startIndex: number) {
|
||||
var imports = getExternalImportDeclarations(node);
|
||||
writeLine();
|
||||
write("define([\"require\", \"exports\"");
|
||||
write("define(");
|
||||
|
||||
if(node.amdModuleName) {
|
||||
write("\"" + node.amdModuleName + "\"");
|
||||
write(", ");
|
||||
}
|
||||
|
||||
write("[\"require\", \"exports\"");
|
||||
|
||||
forEach(imports, imp => {
|
||||
write(", ");
|
||||
emitLiteral(imp.externalModuleName);
|
||||
|
||||
@ -20,6 +20,7 @@ module ts {
|
||||
interface ReferenceComments {
|
||||
referencedFiles: FileReference[];
|
||||
amdDependencies: string[];
|
||||
amdModuleName: string;
|
||||
}
|
||||
|
||||
export function getSourceFileOfNode(node: Node): SourceFile {
|
||||
@ -4218,6 +4219,7 @@ module ts {
|
||||
function processReferenceComments(): ReferenceComments {
|
||||
var referencedFiles: FileReference[] = [];
|
||||
var amdDependencies: string[] = [];
|
||||
var amdModuleName: string;
|
||||
commentRanges = [];
|
||||
token = scanner.scan();
|
||||
|
||||
@ -4237,6 +4239,12 @@ module ts {
|
||||
}
|
||||
}
|
||||
else {
|
||||
var amdModuleNameRegEx = /^\/\/\/\s*<amd-module\s+name\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment);
|
||||
if(amdModuleNameMatchResult) {
|
||||
amdModuleName = amdModuleNameMatchResult[2];
|
||||
}
|
||||
|
||||
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s+path\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
|
||||
if (amdDependencyMatchResult) {
|
||||
@ -4247,7 +4255,8 @@ module ts {
|
||||
commentRanges = undefined;
|
||||
return {
|
||||
referencedFiles: referencedFiles,
|
||||
amdDependencies: amdDependencies
|
||||
amdDependencies: amdDependencies,
|
||||
amdModuleName: amdModuleName
|
||||
};
|
||||
}
|
||||
|
||||
@ -4276,6 +4285,7 @@ module ts {
|
||||
var referenceComments = processReferenceComments();
|
||||
file.referencedFiles = referenceComments.referencedFiles;
|
||||
file.amdDependencies = referenceComments.amdDependencies;
|
||||
file.amdModuleName = referenceComments.amdModuleName;
|
||||
file.statements = parseList(ParsingContext.SourceElements, /*checkForStrictMode*/ true, parseSourceElement);
|
||||
file.externalModuleIndicator = getExternalModuleIndicator();
|
||||
file.nodeCount = nodeCount;
|
||||
|
||||
@ -630,6 +630,7 @@ module ts {
|
||||
getLineAndCharacterFromPosition(position: number): { line: number; character: number };
|
||||
getPositionFromLineAndCharacter(line: number, character: number): number;
|
||||
amdDependencies: string[];
|
||||
amdModuleName: string;
|
||||
referencedFiles: FileReference[];
|
||||
syntacticErrors: Diagnostic[];
|
||||
semanticErrors: Diagnostic[];
|
||||
|
||||
@ -668,6 +668,7 @@ module ts {
|
||||
public getLineAndCharacterFromPosition(position: number): { line: number; character: number } { return null; }
|
||||
public getPositionFromLineAndCharacter(line: number, character: number): number { return -1; }
|
||||
public amdDependencies: string[];
|
||||
public amdModuleName: string;
|
||||
public referencedFiles: FileReference[];
|
||||
public syntacticErrors: Diagnostic[];
|
||||
public semanticErrors: Diagnostic[];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user