ask-smapi-sdk
Version:
Core package for SMAPI Skills Kit SDK
83 lines (82 loc) • 2.38 kB
TypeScript
/**
* Introspects on the Skill Management API (SMAPI) model.
*/
export declare class ModelIntrospector {
private operations;
private definitions;
private modelJson;
private customizationProcessor;
constructor(modelJson?: any, customizationProcessor?: CustomizationProcessor);
/**
* Returns the operation definition for a given Skill Management API (SMAPI) operation.
* @param operationName operation name
*/
getOperationDefinition(operationName: string): ApiOperation;
/**
* Returns a Map of all Skill Management API (SMAPI) operations
*/
getOperations(): Map<string, ApiOperation>;
private processModel;
}
/**
* Customization processors are executed while processing a specification and can apply custom logic.
*/
export interface CustomizationProcessor {
/**
* Processes an API operation name
* @param operationName operation name
*/
processOperationName(operationName: string): string;
/**
* Processes an API operation
* @param operationName processed operation name
* @param operation operation definition
* @param definitions map of modeled API definitions
*/
processOperation(operationName: string, operation: ApiOperation, definitions: Map<string, TypeDefinition>): void;
/**
* Processes an API parameter
* @param parameter parameter definition
* @param parentOperation operation this parameter belongs to
* @param definitions map of modeled API definitions
*/
processParameter(parameter: ApiParameter, parentOperation: ApiOperation, definitions: Map<string, TypeDefinition>): void;
}
/**
* Represents an API operation.
*/
export interface ApiOperation {
apiOperationName: string;
apiVersion: number;
description: string;
params: ApiParameter[];
customizationMetadata: {
[key: string]: any;
};
}
/**
* Represents an API type definition.
*/
export interface TypeDefinition {
type: string;
description: string;
required: boolean;
enum: string[];
items: {};
properties: {
[key: string]: ApiParameter;
};
}
/**
* Represents an API parameter.
*/
export interface ApiParameter extends TypeDefinition {
name: string;
schema: {
$ref: string;
};
$ref: string;
customizationMetadata: {
[key: string]: any;
};
}