sails-js-parser
Version:
Sails-IDL parser for TypeScript
67 lines (64 loc) • 1.81 kB
JavaScript
var types = require('./types.cjs');
var util = require('./util.cjs');
var visitor = require('./visitor.cjs');
class Service extends visitor.Base {
funcs;
events;
name;
constructor(ptr, memory) {
super(ptr, memory);
const [name, nameOffset] = util.getName(ptr, this.offset, memory);
this.name = name || 'Service';
this.offset += nameOffset;
this.funcs = [];
this.events = [];
}
addFunc(func) {
this.funcs.push(func);
}
addEvent(event) {
this.events.push(event);
}
}
class ServiceEvent extends types.EnumVariant {
}
class ServiceFunc extends types.WithDef {
name;
isQuery;
docs;
_params;
constructor(ptr, memory) {
super(ptr, memory);
const [name, nameOffset] = util.getName(ptr, this.offset, memory);
this.name = name;
this.offset += nameOffset;
const [isQuery, isQueryOffset] = util.getBool(ptr, this.offset, memory);
this.isQuery = isQuery;
this.offset += isQueryOffset;
const [docs, docsOffset] = util.getDocs(ptr, this.offset, memory);
this.docs = docs;
this.offset += docsOffset;
this._params = new Map();
}
addFuncParam(ptr, param) {
this._params.set(ptr, param);
}
get params() {
if (this._params.size === 0)
return [];
return [...this._params.values()];
}
}
class FuncParam extends types.WithDef {
name;
constructor(ptr, memory) {
super(ptr, memory);
const [name, nameOffset] = util.getName(ptr, this.offset, memory);
this.name = name;
this.offset += nameOffset;
}
}
exports.FuncParam = FuncParam;
exports.Service = Service;
exports.ServiceEvent = ServiceEvent;
exports.ServiceFunc = ServiceFunc;