buildtypedefs
Version:
This is a utility that transforms code documented with getdocs-style doc comments into TypeScript definition files
57 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const function_1 = require("./function");
const type_1 = require("./type");
function default_1(sb, item, items, imports, isParam, additionalTypes, useDummyName = true) {
if (item.name)
sb.append(item.name);
else if (isParam && useDummyName)
sb.append("fn");
if (item.optional)
sb.append("?");
if ((isParam && useDummyName) || /\^returns$/.test(item.id))
sb.append(": ");
sb.append("(");
let dummyNameCounter = 0;
for (let i in item.params) {
let param = item.params[i];
if (i != "0")
sb.append(", ");
if (param.rest) {
sb.append("...");
}
if (param.type == "Function") {
function_1.default(sb, param, items, imports, true, additionalTypes);
}
else {
if (param.name)
sb.append(param.name);
else {
sb.append("p");
if (item.params.length > 1)
sb.append((++dummyNameCounter).toString());
}
type_1.default(sb, param, false, false, true, items, imports, additionalTypes);
}
}
sb.append(")");
if (item.returns) {
item.returns.isReturn = true;
if (isParam || /\^returns\^returns$/.test(item.returns.id)) {
sb.append(" => ");
type_1.default(sb, item.returns, true, true, true, items, imports, additionalTypes);
}
else {
type_1.default(sb, item.returns, true, false, false, items, imports, additionalTypes);
}
}
else if (item.name != "constructor") {
if (isParam)
sb.append(" => ");
else
sb.append(": ");
sb.append("void");
}
}
exports.default = default_1;
//# sourceMappingURL=function.js.map