UNPKG

sails-js-parser

Version:

Sails-IDL parser for TypeScript

67 lines (64 loc) 1.81 kB
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;