UNPKG

webidl2js

Version:

Auto-generates class structures for WebIDL specifications

30 lines (25 loc) 634 B
"use strict"; const Types = require("../types"); class Typedef { constructor(ctx, idl) { this.ctx = ctx; this.idlOrig = idl; this.idl = null; this.name = idl.name; this.resolved = false; } resolve(stack = []) { if (this.idl !== null) { return this.idl; } if (stack.includes(this.name)) { throw new Error(`Circular dependency in typedefs: ${stack.join(" -> ")} -> ${this.name}`); } stack.push(this.name); this.idl = Types.resolveType(this.ctx, this.idlOrig.idlType, stack); stack.pop(); this.idlOrig = null; return this.idl; } } module.exports = Typedef;