x/fastro/core/types.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105// Copyright 2020 the Fastro author. All rights reserved. MIT license.import type { FormFile } from "../deps.ts";export const DOCKER_VERSION = "1.4.6";export const FASTRO_VERSION = "0.30.16";export const SERVICE_DIR = "services";export const SERVICE_FILE = ".controller.ts";export const STATIC_DIR = "public";export const TEMPLATE_FILE = ".template.html";export const TEMPLATE_DIR = "services";export const MIDDLEWARE_DIR = "middleware";export const MAX_MEMORY = 1024 * 1024;export const VSCODE_DIR = ".vscode";export type ServerOptions = { cors?: boolean; prefix?: string; serviceDir?: string; staticDir?: string;};export type ListenOptions = { port?: number; hostname?: string;};export type MultiPartData = { key: string; value: string | FormFile | FormFile[] | undefined; filename?: string;};export type DynamicService = { url: string; // deno-lint-ignore no-explicit-any service: any;};export type Data = { // deno-lint-ignore no-explicit-any [key: string]: any;};export type Args = { // deno-lint-ignore no-explicit-any [key: string]: any;};export type Query = { [key: string]: string;};export type Callback = (error?: Error) => void;export type HttpMethod = "GET" | "POST" | "PUT" | "DELETE";export type HandlerOptions = { params?: boolean; methods?: HttpMethod[]; validationSchema?: ValidationSchema; prefix?: string;};export type SchemaType = | "string" | "number" | "integer" | "boolean" | "object" | "array" | "null";export type Schema = { type: SchemaType; properties?: { [key: string]: Schema; }; required?: string[]; // default?: any; // pattern?: string; // maxLength?: number; // minLength?: number; // minimum?: number; // maximum?: number; // multipleOf?: number; // maxItems?: number; // minItems?: number; // uniqueItems?: boolean; // contains?: { type: SchemaType }; items?: Schema[]; // not?: Schema[]; // anyOf?: Schema[]; // oneOf?: Schema[]; // allOf?: Schema[]; // enum?: any;};export type ValidationSchema = { body?: Schema; params?: Schema; headers?: Schema; querystring?: Schema;};