Skip to content

Instantly share code, notes, and snippets.

@yuki-yano
Last active November 18, 2018 05:21
Show Gist options
  • Select an option

  • Save yuki-yano/3c1656ce8229826035b784d59b8f6a06 to your computer and use it in GitHub Desktop.

Select an option

Save yuki-yano/3c1656ce8229826035b784d59b8f6a06 to your computer and use it in GitHub Desktop.
Generate JS and TS dictionary from Microsoft/TypeScript
const fs = require("fs");
const { TypescriptParser } = require("typescript-parser");
function printWord(parsed) {
for (let usage of parsed.usages) {
console.log(usage);
}
for (let declaration of parsed.declarations) {
if (declaration.name) {
console.log(declaration.name);
}
if (declaration.properties) {
for (let property of declaration.properties) {
if (property.name) {
console.log(property.name);
}
}
}
if (declaration.methods) {
for (let method of declaration.methods) {
if (method.name) {
console.log(method.name);
}
}
}
}
if (parsed.resources !== []) {
for (const resource of parsed.resources) {
console.log(resource.name);
printWord(resource);
}
}
}
const parser = new TypescriptParser();
fs.readdir("lib", async (err, files) => {
const fileList = files.filter(function(file) {
return /^lib.*/.test(file);
});
for (const file of fileList) {
const parsed = await parser.parseFile(`lib/${file}`, "workspace root");
printWord(parsed);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment