Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(938)

Side by Side Diff: lib/main.ts

Issue 2416003003: Update package name, update and lock clang-format and tslint versions, and format all source files … (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 import * as dartStyle from 'dart-style'; 1 import * as dartStyle from 'dart-style';
2 import * as fs from 'fs'; 2 import * as fs from 'fs';
3 import * as path from 'path'; 3 import * as path from 'path';
4 import * as ts from 'typescript'; 4 import * as ts from 'typescript';
5 5
6 import * as base from './base'; 6 import * as base from './base';
7 import {ImportSummary, TranspilerBase} from './base'; 7 import {ImportSummary, TranspilerBase} from './base';
8 import DeclarationTranspiler from './declaration'; 8 import DeclarationTranspiler from './declaration';
9 import {FacadeConverter} from './facade_converter'; 9 import {FacadeConverter} from './facade_converter';
10 import * as merge from './merge'; 10 import * as merge from './merge';
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 this.declarationTranspiler.setTypeChecker(program.getTypeChecker()); 113 this.declarationTranspiler.setTypeChecker(program.getTypeChecker());
114 114
115 // Only write files that were explicitly passed in. 115 // Only write files that were explicitly passed in.
116 let fileSet: {[s: string]: boolean} = {}; 116 let fileSet: {[s: string]: boolean} = {};
117 fileNames.forEach((f) => fileSet[f] = true); 117 fileNames.forEach((f) => fileSet[f] = true);
118 let sourceFiles = program.getSourceFiles().filter((sourceFile) => fileSet[so urceFile.fileName]); 118 let sourceFiles = program.getSourceFiles().filter((sourceFile) => fileSet[so urceFile.fileName]);
119 119
120 this.errors = []; 120 this.errors = [];
121 121
122 let sourceFileMap: {[s: string]: ts.SourceFile} = {}; 122 let sourceFileMap: {[s: string]: ts.SourceFile} = {};
123 sourceFiles.forEach((f: ts.SourceFile) => { sourceFileMap[f.fileName] = f; } ); 123 sourceFiles.forEach((f: ts.SourceFile) => {
124 sourceFileMap[f.fileName] = f;
125 });
124 126
125 // Check for global module export declarations and propogate them to all mod ules they export. 127 // Check for global module export declarations and propogate them to all mod ules they export.
126 sourceFiles.forEach((f: ts.SourceFile) => { 128 sourceFiles.forEach((f: ts.SourceFile) => {
127 f.statements.forEach((n: ts.Node) => { 129 f.statements.forEach((n: ts.Node) => {
128 if (n.kind !== ts.SyntaxKind.GlobalModuleExportDeclaration) return; 130 if (n.kind !== ts.SyntaxKind.GlobalModuleExportDeclaration) return;
129 // This is the name we are interested in for Dart purposes until Dart su pports AMD module 131 // This is the name we are interested in for Dart purposes until Dart su pports AMD module
130 // loaders. This module name should all be reflected by all modules expo rted by this 132 // loaders. This module name should all be reflected by all modules expo rted by this
131 // library as we need to specify a global module location for every Dart library. 133 // library as we need to specify a global module location for every Dart library.
132 let globalModuleName = base.ident((n as ts.GlobalModuleExportDeclaration ).name); 134 let globalModuleName = base.ident((n as ts.GlobalModuleExportDeclaration ).name);
133 f.moduleName = globalModuleName; 135 f.moduleName = globalModuleName;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 let compilerHost: ts.CompilerHost = { 194 let compilerHost: ts.CompilerHost = {
193 getSourceFile: (sourceName, languageVersion) => { 195 getSourceFile: (sourceName, languageVersion) => {
194 let sourcePath = sourceName; 196 let sourcePath = sourceName;
195 if (sourceName === defaultLibFileName) { 197 if (sourceName === defaultLibFileName) {
196 sourcePath = ts.getDefaultLibFilePath(COMPILER_OPTIONS); 198 sourcePath = ts.getDefaultLibFilePath(COMPILER_OPTIONS);
197 } 199 }
198 if (!fs.existsSync(sourcePath)) return undefined; 200 if (!fs.existsSync(sourcePath)) return undefined;
199 let contents = fs.readFileSync(sourcePath, 'UTF-8'); 201 let contents = fs.readFileSync(sourcePath, 'UTF-8');
200 return ts.createSourceFile(sourceName, contents, COMPILER_OPTIONS.target , true); 202 return ts.createSourceFile(sourceName, contents, COMPILER_OPTIONS.target , true);
201 }, 203 },
202 writeFile(name, text, writeByteOrderMark) { fs.writeFile(name, text); }, 204 writeFile(name, text, writeByteOrderMark) {
205 fs.writeFile(name, text);
206 },
203 fileExists: (filename) => fs.existsSync(filename), 207 fileExists: (filename) => fs.existsSync(filename),
204 readFile: (filename) => fs.readFileSync(filename, 'utf-8'), 208 readFile: (filename) => fs.readFileSync(filename, 'utf-8'),
205 getDefaultLibFileName: () => defaultLibFileName, 209 getDefaultLibFileName: () => defaultLibFileName,
206 useCaseSensitiveFileNames: () => true, 210 useCaseSensitiveFileNames: () => true,
207 getCanonicalFileName: (filename) => filename, 211 getCanonicalFileName: (filename) => filename,
208 getCurrentDirectory: () => '', 212 getCurrentDirectory: () => '',
209 getNewLine: () => '\n', 213 getNewLine: () => '\n',
210 }; 214 };
211 compilerHost.resolveModuleNames = getModuleResolver(compilerHost); 215 compilerHost.resolveModuleNames = getModuleResolver(compilerHost);
212 return compilerHost; 216 return compilerHost;
213 } 217 }
214 218
215 // Visible for testing. 219 // Visible for testing.
216 getOutputPath(filePath: string, destinationRoot: string): string { 220 getOutputPath(filePath: string, destinationRoot: string): string {
217 let relative = this.getDartFileName(filePath); 221 let relative = this.getDartFileName(filePath);
218 return this.normalizeSlashes(path.join(destinationRoot, relative)); 222 return this.normalizeSlashes(path.join(destinationRoot, relative));
219 } 223 }
220 224
221 public pushContext(context: OutputContext) { this.outputStack.push(this.output s[context]); } 225 public pushContext(context: OutputContext) {
226 this.outputStack.push(this.outputs[context]);
227 }
222 228
223 public popContext() { 229 public popContext() {
224 if (this.outputStack.length === 0) { 230 if (this.outputStack.length === 0) {
225 this.reportError(null, 'Attempting to pop output stack when already empty' ); 231 this.reportError(null, 'Attempting to pop output stack when already empty' );
226 } 232 }
227 this.outputStack.pop(); 233 this.outputStack.pop();
228 } 234 }
229 235
230 private translate(sourceFile: ts.SourceFile): string { 236 private translate(sourceFile: ts.SourceFile): string {
231 this.currentFile = sourceFile; 237 this.currentFile = sourceFile;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 filePath = filePath.replace(/([^/]+)\/index.dart$/, '$1.dart'); 345 filePath = filePath.replace(/([^/]+)\/index.dart$/, '$1.dart');
340 return this.getRelativeFileName(filePath); 346 return this.getRelativeFileName(filePath);
341 } 347 }
342 348
343 isJsModuleFile(): boolean { 349 isJsModuleFile(): boolean {
344 // Treat files as being part of js modules if they match the node module fil e naming convention 350 // Treat files as being part of js modules if they match the node module fil e naming convention
345 // of module_name/index.js. 351 // of module_name/index.js.
346 return !('/' + this.currentFile.fileName).match(/\/index\.(js|es6|d\.ts|ts)$ /); 352 return !('/' + this.currentFile.fileName).match(/\/index\.(js|es6|d\.ts|ts)$ /);
347 } 353 }
348 354
349 private get currentOutput(): Output { return this.outputStack[this.outputStack .length - 1]; } 355 private get currentOutput(): Output {
356 return this.outputStack[this.outputStack.length - 1];
357 }
350 358
351 emit(s: string) { this.currentOutput.emit(s); } 359 emit(s: string) {
352 emitNoSpace(s: string) { this.currentOutput.emitNoSpace(s); } 360 this.currentOutput.emit(s);
353 maybeLineBreak() { return this.currentOutput.maybeLineBreak(); } 361 }
354 enterCodeComment() { return this.currentOutput.enterCodeComment(); } 362 emitNoSpace(s: string) {
355 exitCodeComment() { return this.currentOutput.exitCodeComment(); } 363 this.currentOutput.emitNoSpace(s);
364 }
365 maybeLineBreak() {
366 return this.currentOutput.maybeLineBreak();
367 }
368 enterCodeComment() {
369 return this.currentOutput.enterCodeComment();
370 }
371 exitCodeComment() {
372 return this.currentOutput.exitCodeComment();
373 }
356 374
357 enterTypeArgument() { this.typeArgumentDepth++; } 375 enterTypeArgument() {
358 exitTypeArgument() { this.typeArgumentDepth--; } 376 this.typeArgumentDepth++;
359 get insideTypeArgument(): boolean { return this.typeArgumentDepth > 0; } 377 }
378 exitTypeArgument() {
379 this.typeArgumentDepth--;
380 }
381 get insideTypeArgument(): boolean {
382 return this.typeArgumentDepth > 0;
383 }
360 384
361 emitType(s: string, comment: string) { return this.currentOutput.emitType(s, c omment); } 385 emitType(s: string, comment: string) {
362 get insideCodeComment() { return this.currentOutput.insideCodeComment; } 386 return this.currentOutput.emitType(s, comment);
387 }
388 get insideCodeComment() {
389 return this.currentOutput.insideCodeComment;
390 }
363 391
364 reportError(n: ts.Node, message: string) { 392 reportError(n: ts.Node, message: string) {
365 let file = n.getSourceFile() || this.currentFile; 393 let file = n.getSourceFile() || this.currentFile;
366 let fileName = this.getRelativeFileName(file.fileName); 394 let fileName = this.getRelativeFileName(file.fileName);
367 let start = n.getStart(file); 395 let start = n.getStart(file);
368 let pos = file.getLineAndCharacterOfPosition(start); 396 let pos = file.getLineAndCharacterOfPosition(start);
369 // Line and character are 0-based. 397 // Line and character are 0-based.
370 let fullMessage = `${fileName}:${pos.line + 1}:${pos.character + 1}: ${messa ge}`; 398 let fullMessage = `${fileName}:${pos.line + 1}:${pos.character + 1}: ${messa ge}`;
371 if (this.options.failFast) throw new Error(fullMessage); 399 if (this.options.failFast) throw new Error(fullMessage);
372 this.errors.push(fullMessage); 400 this.errors.push(fullMessage);
(...skipping 25 matching lines...) Expand all
398 426
399 for (let i = 0; i < this.transpilers.length; i++) { 427 for (let i = 0; i < this.transpilers.length; i++) {
400 if (this.transpilers[i].visitNode(node)) return; 428 if (this.transpilers[i].visitNode(node)) return;
401 } 429 }
402 430
403 this.reportError( 431 this.reportError(
404 node, 432 node,
405 'Unsupported node type ' + (<any>ts).SyntaxKind[node.kind] + ': ' + node .getFullText()); 433 'Unsupported node type ' + (<any>ts).SyntaxKind[node.kind] + ': ' + node .getFullText());
406 } 434 }
407 435
408 private normalizeSlashes(path: string) { return path.replace(/\\/g, '/'); } 436 private normalizeSlashes(path: string) {
437 return path.replace(/\\/g, '/');
438 }
409 439
410 private translateComment(comment: string): string { 440 private translateComment(comment: string): string {
411 let rawComment = comment; 441 let rawComment = comment;
412 comment = comment.replace(/\{@link ([^\}]+)\}/g, '[$1]'); 442 comment = comment.replace(/\{@link ([^\}]+)\}/g, '[$1]');
413 443
414 // Remove the following tags and following comments till end of line. 444 // Remove the following tags and following comments till end of line.
415 comment = comment.replace(/@param.*$/gm, ''); 445 comment = comment.replace(/@param.*$/gm, '');
416 comment = comment.replace(/@throws.*$/gm, ''); 446 comment = comment.replace(/@throws.*$/gm, '');
417 comment = comment.replace(/@return.*$/gm, ''); 447 comment = comment.replace(/@return.*$/gm, '');
418 448
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 try { 595 try {
566 let transpiler = new Transpiler(args); 596 let transpiler = new Transpiler(args);
567 if (args.destination) console.error('Transpiling', args._, 'to', args.destin ation); 597 if (args.destination) console.error('Transpiling', args._, 'to', args.destin ation);
568 transpiler.transpile(args._, args.destination); 598 transpiler.transpile(args._, args.destination);
569 } catch (e) { 599 } catch (e) {
570 if (e.name !== 'DartFacadeError') throw e; 600 if (e.name !== 'DartFacadeError') throw e;
571 console.error(e.message); 601 console.error(e.message);
572 process.exit(1); 602 process.exit(1);
573 } 603 }
574 } 604 }
OLDNEW
« no previous file with comments | « lib/facade_converter.ts ('k') | lib/merge.ts » ('j') | package.json » ('J')

Powered by Google App Engine
This is Rietveld 408576698