alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
58 lines (49 loc) • 1.8 kB
text/typescript
import "alepha/security";
import { $module } from "alepha";
import { AlephaServer, type RequestConfigSchema } from "alepha/server";
import { AlephaServerEtag } from "alepha/server/etag";
import { AlephaServerStatic } from "alepha/server/static";
import { $swagger } from "./primitives/$swagger.ts";
import { ServerSwaggerProvider } from "./providers/ServerSwaggerProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export * from "./primitives/$swagger.ts";
export * from "./providers/ServerSwaggerProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
declare module "alepha/server" {
interface ActionPrimitiveOptions<TConfig extends RequestConfigSchema> {
/**
* Short description of the route.
*/
summary?: string;
/**
* Don't include this action in the Swagger documentation.
*/
hide?: boolean;
/**
* Mark this action as deprecated in the documentation.
*/
deprecated?: boolean;
}
}
// ---------------------------------------------------------------------------------------------------------------------
/**
* Automatic API documentation generation.
*
* **Features:**
* - Swagger/OpenAPI configuration
* - Routes: `GET /swagger/ui`, `GET /swagger.json`
*
* @module alepha.server.swagger
*/
export const AlephaServerSwagger = $module({
name: "alepha.server.swagger",
primitives: [$swagger],
services: [ServerSwaggerProvider],
register: (alepha) => {
alepha.with(AlephaServer);
alepha.with(AlephaServerEtag);
alepha.with(AlephaServerStatic);
alepha.with(ServerSwaggerProvider);
alepha.store.push("alepha.build.assets", "alepha");
},
});