UNPKG

webextensions-api-mock

Version:
61 lines (60 loc) 2.5 kB
import { SchemaNamespaces, NamespaceSchema } from 'webextensions-schema'; export declare type SchemaWalkerValue = any; export interface SchemaWalkerDelegate { handleImport(schemaId: SchemaId, name: string, out: SchemaWalkerValue): void; createNamespaceValue(schemaId: SchemaId, out: SchemaWalkerValue): SchemaWalkerValue; startObjectPropertyValue(schemaId: SchemaId, out: SchemaWalkerValue): SchemaWalkerValue; finishObjectPropertyValue(schemaId: SchemaId, out: SchemaWalkerValue): SchemaWalkerValue; valueForInvalidRef(schemaId: SchemaId): SchemaWalkerValue; valueForCircularType(schemaId: SchemaId): SchemaWalkerValue; finishTypeValue(schemaId: SchemaId, value: unknown, out: SchemaWalkerValue): SchemaWalkerValue; createEnumValue(schemaId: SchemaId, type: string, choices: string[], out: SchemaWalkerValue): SchemaWalkerValue; createPlainValue(schemaId: SchemaId, type: string, isArray: boolean, out: SchemaWalkerValue): SchemaWalkerValue; createEventValue(schemaId: SchemaId, out: SchemaWalkerValue): SchemaWalkerValue; createFnValue(schemaId: SchemaId, returnValue: SchemaWalkerValue, out: SchemaWalkerValue): SchemaWalkerValue; handleField(schemaId: SchemaId, name: string, value: unknown, optional: boolean, out: SchemaWalkerValue): void; } export declare enum SchemaType { Namespace = 1, Type = 2, ObjectProperty = 3 } /** Identifies either a NamespaceSchema or TypeSchema, and helps create schemaIds for references to other TypeSchemas. */ export declare class SchemaId { name: string; type: SchemaType; constructor(name: string, type: SchemaType); get namespace(): string; get namespaceId(): SchemaId; toString(): string; withRef(refName: string): SchemaId; withObjectProperty(propertyName?: string): SchemaId; static withNamespace(namespace: NamespaceSchema): SchemaId; static withType(name: string): SchemaId; } export declare enum SchemaWalkerFlags { None = 0, SuppressWarnings = 2, NoTypeValueReuse = 4 } export declare class SchemaWalker { private types; private outs; private delegate; private flags; constructor(delegate: SchemaWalkerDelegate, flags?: SchemaWalkerFlags); walk(schemaNamespaces: SchemaNamespaces): void; private extractTypes; private extractNamespaces; private schema; private namespaceOrObjectProperty; private field; private type; private value; private event; private fn; private ref; }