@appsemble/lang-sdk
Version:
Language SDK for Appsemble
57 lines (56 loc) • 1.85 kB
TypeScript
import { type CustomFormat, type Options, type Schema, Validator, type ValidatorResult } from 'jsonschema';
import { type JsonObject } from 'type-fest';
import { type BlockDefinition } from './index.js';
interface ValidatorFactoryOptions {
schemas: Record<string, Schema>;
customFormats?: Record<string, CustomFormat>;
}
export declare class BaseValidatorFactory {
static readonly defaultOptions: Options;
static readonly defaultCustomFormats: {
int32: () => boolean;
int64: () => boolean;
float: () => boolean;
double: () => boolean;
byte: () => boolean;
binary: () => boolean;
password: () => boolean;
};
private schemas;
private customFormats;
constructor({ customFormats, schemas }: ValidatorFactoryOptions);
build(): Validator;
}
export declare class BlockExampleValidator {
private validator;
constructor();
validate(example: BlockDefinition): ValidatorResult;
}
interface BlockParamInstanceValidatorOptions {
listeners?: string[];
emitters?: string[];
actions?: string[];
}
export declare class BlockParamInstanceValidator {
private validator;
private emitterNames;
private listenerNames;
constructor({ actions, emitters, listeners, }?: BlockParamInstanceValidatorOptions);
validateParametersInstance(instance: JsonObject, schema: Schema): [ValidatorResult, Set<string>];
}
export declare class BlockParamSchemaValidator {
private validator;
constructor();
validateParamSchema(paramSchema: Schema): ValidatorResult;
}
export declare class AppValidator {
private validator;
constructor();
validateApp(app: unknown): ValidatorResult;
}
export declare class RemapperValidator {
private validator;
constructor();
validateRemapper(remapper: unknown): ValidatorResult;
}
export {};