bitwig-types-generator
Version:
Generated Types for Bitwig scripting API
45 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BitwigApiClass = void 0;
const BitwigApiEntity_1 = require("./BitwigApiEntity");
const BitwigApiMethod_1 = require("./BitwigApiMethod");
class BitwigApiClass extends BitwigApiEntity_1.BitwigApiEntity {
sort = 200;
staticAttributes = new Map();
staticMethods = new Map();
methods = new Map();
setStaticPublicAttributes({ id, def, type }) {
const t = type.match(/static final (\w+)/)[1];
const line = "static " + def.replace(/\s*=(.+)$/, `: ${t}; //$1\n`);
this.staticAttributes.set(id, line);
}
setStaticPublicMemberFunctions({ id, def, type }) {
const method = new BitwigApiMethod_1.BitwigApiMethod(def, type, true);
this.staticMethods.set(id, method);
}
setPublicMemberFunctions({ id, def, type }) {
const method = new BitwigApiMethod_1.BitwigApiMethod(def, type);
this.methods.set(id, method);
}
setMemberFunctionDocumentation(id, desc) {
let method = this.methods.get(id) || this.staticMethods.get(id);
method.setDescription(desc);
}
toType() {
let body = this.description;
body += `${this.declaration.type} ${this.declaration.value} {\n`;
for (const line of this.staticAttributes.values()) {
body += line;
}
for (const method of this.staticMethods.values()) {
body += method.toType();
}
for (const method of this.methods.values()) {
body += method.toType();
}
body += "}";
return body;
}
}
exports.BitwigApiClass = BitwigApiClass;
//# sourceMappingURL=BitwigApiClass.js.map