@veecode-platform/safira-cli
Version:
Generate a microservice project from your spec.
32 lines (31 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JavaInterfaceObject = void 0;
const string_utils_1 = require("../../utils/string-utils");
class JavaInterfaceObject {
constructor(classString) {
this._classString = string_utils_1.StringUtils.removeComments(classString).replace(/ +/gm, " ");
}
get annotations() {
return (this._classString.match(JavaInterfaceObject._annotationRegex) || []).map(annotation => annotation.trim());
}
get extends() {
return this._classString.match(JavaInterfaceObject._extendRegex[0].toString().replace(/ +/g, "").split(",")) || [];
}
get imports() {
return (this._classString.match(JavaInterfaceObject._importRegex) || []).map(val => val.replace(/ +/, ""));
}
get methods() {
const match = this._classString.match(JavaInterfaceObject._methodRegex);
console.log(`match: ${match}`);
return (match || []).map(val => val.replace(/\r?\n|\r/g, ""));
}
toString() {
return this._classString;
}
}
exports.JavaInterfaceObject = JavaInterfaceObject;
JavaInterfaceObject._annotationRegex = /@([A-Z])\w+/g;
JavaInterfaceObject._methodRegex = /(public|protected|private|static|\s) +[\s\w,<>[\]]+\s+(\w+) *\([^)]*\) *({?|[^;])*(?=;)/gm;
JavaInterfaceObject._importRegex = /(?<=import)(.*?)(?=;)/gm;
JavaInterfaceObject._extendRegex = /(?<=extends)(.*?)(?={)/gm;