UNPKG

webidl2

Version:
35 lines (32 loc) 910 B
import { Container } from "./container.js"; import { Operation } from "./operation.js"; import { Constant } from "./constant.js"; export class CallbackInterface extends Container { /** * @param {import("../tokeniser.js").Tokeniser} tokeniser * @param {*} callback * @param {object} [options] * @param {import("./container.js").AllowedMember[]} [options.extMembers] */ static parse(tokeniser, callback, { extMembers = [] } = {}) { const tokens = { callback }; tokens.base = tokeniser.consume("interface"); if (!tokens.base) { return; } return Container.parse( tokeniser, new CallbackInterface({ source: tokeniser.source, tokens }), { allowedMembers: [ ...extMembers, [Constant.parse], [Operation.parse, { regular: true }], ], }, ); } get type() { return "callback interface"; } }