UNPKG

buildtypedefs

Version:

This is a utility that transforms code documented with getdocs-style doc comments into TypeScript definition files

41 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const StringBuilder = require("string-builder"); const item_1 = require("./item"); function default_1(module, name, deps, additionalTypes) { let sb = new StringBuilder(""); let imports = new Array(); sb.appendLine("declare module \"" + name + "\" {"); sb.appendLine(""); for (let item in module.items) { sb.append("export "); item_1.default(sb, module.items[item], item, module.items, imports, additionalTypes); } sb.appendLine("}"); let importSb = new StringBuilder(""); for (let imp of imports) { if (additionalTypes[imp]) { imp = additionalTypes[imp].replacement; } let found = false; for (let dep in deps) { if (deps[dep].indexOf(imp) > -1) { importSb.appendLine("import {" + imp + "} from '" + dep + "'"); found = true; } } if (!found) { let result = Object.values(additionalTypes).filter((o) => o.replacement == imp); if (result && result.length == 1 && result[0].source) { importSb.appendLine("import {" + result[0].replacement + "} from '" + result[0].source + "'"); } else { console.log(imp + " not found for " + name); } } } importSb.appendLine(""); return new StringBuilder(importSb.toString() + sb.toString()); } exports.default = default_1; //# sourceMappingURL=module.js.map