From 82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Apr 2017 03:09:25 +0200 Subject: Reorganize module loading. We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node. --- tooling/pogen/dumpTree.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tooling/pogen/dumpTree.ts (limited to 'tooling/pogen/dumpTree.ts') diff --git a/tooling/pogen/dumpTree.ts b/tooling/pogen/dumpTree.ts new file mode 100644 index 000000000..958c79416 --- /dev/null +++ b/tooling/pogen/dumpTree.ts @@ -0,0 +1,51 @@ +/* + This file is part of TALER + (C) 2016 GNUnet e.V. + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, see + */ + + +/** + * Print the syntax tree of a TypeScript program. + * + * @author Florian Dold + */ + +/// + +"use strict"; + +import {readFileSync} from "fs"; +import {execSync} from "child_process"; +import * as ts from "typescript"; + + +export function processFile(sourceFile: ts.SourceFile) { + processNode(sourceFile); + + function processNode(node: ts.Node, level=0) { + let indent = ""; + for (let i = 0; i < level; i++) { + indent = indent + " "; + } + console.log(indent + ts.SyntaxKind[node.kind]); + ts.forEachChild(node, (n) => processNode(n, level+1)); + } +} + +const fileNames = process.argv.slice(2); + +fileNames.forEach(fileName => { + let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES2016, /*setParentNodes */ true); + processFile(sourceFile); +}); -- cgit v1.2.3