@opra/common
Version:
Opra common package
60 lines (59 loc) • 2.04 kB
TypeScript
import { type Combine, type StrictOmit, Type, type TypeThunkAsync } from 'ts-gems';
import { Validator } from 'valgen';
import type { OpraSchema } from '../../schema/index.js';
import type { ApiDocument } from '../api-document';
import { DocumentElement } from '../common/document-element.js';
import { Value } from '../common/value.js';
import { DataType } from '../data-type/data-type.js';
import type { EnumType } from '../data-type/enum-type.js';
/**
* @namespace HttpParameter
*/
export declare namespace HttpParameter {
interface Metadata extends StrictOmit<OpraSchema.HttpParameter, 'type'> {
name: string | RegExp;
type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object;
keyParam?: boolean;
designType?: Type;
}
interface Options extends Partial<StrictOmit<Metadata, 'type'>> {
type?: string | TypeThunkAsync | object;
parser?: (v: any) => any;
}
interface InitArguments extends Combine<{
type?: DataType;
}, Metadata> {
parser?: (v: any) => any;
}
}
/**
* Type definition for HttpParameter
* @class HttpParameter
*/
interface HttpParameterStatic {
new (owner: DocumentElement, args: HttpParameter.InitArguments): HttpParameter;
prototype: HttpParameter;
}
/**
* Type definition of HttpParameter prototype
* @interface HttpParameter
*/
export interface HttpParameter extends HttpParameterClass {
}
export declare const HttpParameter: HttpParameterStatic;
/**
* @class HttpParameter
*/
declare class HttpParameterClass extends Value {
readonly owner: DocumentElement;
location: OpraSchema.HttpParameterLocation;
keyParam?: boolean;
deprecated?: boolean | string;
required?: boolean;
arraySeparator?: string;
parser?: (v: any) => any;
designType?: Type;
toJSON(options?: ApiDocument.ExportOptions): OpraSchema.HttpParameter;
generateCodec(codec: 'encode' | 'decode', options?: DataType.GenerateCodecOptions, properties?: any): Validator;
}
export {};