UNPKG

webextensions-api-mock

Version:
50 lines (49 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const walker_1 = require("./walker"); class BrowserSchemaWalker { constructor(sandbox, aliases, browser) { this.sandbox = sandbox; this.aliases = aliases; this.browser = browser; } walk(namespaces) { new walker_1.SchemaWalker(this, walker_1.SchemaWalkerFlags.SuppressWarnings | walker_1.SchemaWalkerFlags.NoTypeValueReuse).walk(namespaces); } handleImport(schemaId, name) { this.aliases.set(schemaId.name, name); } handleField(schemaId, name, value, optional, out) { out[name] = value; } createNamespaceValue(schemaId) { return (this.browser[schemaId.name] = {}); } startObjectPropertyValue() { return {}; } createEventValue() { return { addListener: this.sandbox.stub(), removeListener: this.sandbox.stub(), hasListener: this.sandbox.stub(), }; } createFnValue(schemaId, returnValue) { if (returnValue !== undefined) { return this.sandbox.stub().returns(returnValue); } else { return this.sandbox.stub(); } } // The below SchemaWalkerDelegate methods are not needed for stubs generation /* eslint-disable @typescript-eslint/no-empty-function */ finishObjectPropertyValue() { } finishTypeValue() { } valueForInvalidRef() { } valueForCircularType() { } createEnumValue() { } createPlainValue() { } } exports.BrowserSchemaWalker = BrowserSchemaWalker;