webextensions-api-mock
Version:
WebExtensions API as sinon stubs
50 lines (49 loc) • 1.59 kB
JavaScript
;
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;