@compas/code-gen
Version:
Generate various boring parts of your server
165 lines (164 loc) • 5.88 kB
TypeScript
export class RouteBuilder extends TypeBuilder {
static baseData: {
tags: never[];
idempotent: boolean;
invalidates: never[];
};
constructor(method: any, group: any, name: any, path: any);
invalidates: any[];
queryBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
paramsBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
bodyBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
responseBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
/**
* @param {...string} values
* @returns {RouteBuilder}
*/
tags(...values: string[]): RouteBuilder;
/**
* Guarantee to the client that this call does not have any side-effects.
* Can only be used for "POST" requests. Doesn't do anything to the generated router,
* but some clients may use it to their advantage like the react-query generator.
*
* @returns {RouteBuilder}
*/
idempotent(): RouteBuilder;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
query(builder: import("../../index.js").TypeBuilderLike): RouteBuilder;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
params(builder: import("../../index.js").TypeBuilderLike): RouteBuilder;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
body(builder: import("../../index.js").TypeBuilderLike): RouteBuilder;
/**
* Specify routes that can be invalidated when this route is called.
*
* @param {...import("./RouteInvalidationType.js").RouteInvalidationType} invalidates
* @returns {RouteBuilder}
*/
invalidations(...invalidates: import("./RouteInvalidationType.js").RouteInvalidationType[]): RouteBuilder;
/**
* Prefer the api client / router to use form-data instead of expecting json.
* This can be used to conform to non Compas api's.
*
* @returns {RouteBuilder}
*/
preferFormData(): RouteBuilder;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
response(builder: import("../../index.js").TypeBuilderLike): RouteBuilder;
}
export class RouteCreator {
constructor(group: any, path: any);
data: {
group: any;
path: any;
};
/** @type {Array<string>} */
defaultTags: Array<string>;
queryBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
paramsBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
bodyBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
responseBuilder: import("../../types/advanced-types.js").TypeBuilderLike | undefined;
/**
* @param {...string} values
* @returns {RouteCreator}
*/
tags(...values: string[]): RouteCreator;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
query(builder: import("../../index.js").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
params(builder: import("../../index.js").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
body(builder: import("../../index.js").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index.js").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
response(builder: import("../../index.js").TypeBuilderLike): RouteCreator;
/**
* Generate `queryClient.invalidateQueries` calls in the react-query generator, which
* can be executed when the generated hook is called.
*
* @param {string} group
* @param {string} [name]
* @param {import("../generated/common/types.d.ts").StructureRouteInvalidationDefinition["properties"]} [properties]
* @returns {RouteInvalidationType}
*/
invalidates(group: string, name?: string, properties?: import("../generated/common/types.d.ts").StructureRouteInvalidationDefinition["properties"]): RouteInvalidationType;
/**
* @param {string} name
* @param {string} path
* @returns {RouteCreator}
*/
group(name: string, path: string): RouteCreator;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
get(path?: string, name?: string): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
post(path?: string, name?: string): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
put(path?: string, name?: string): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
patch(path?: string, name?: string): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
delete(path?: string, name?: string): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
head(path?: string, name?: string): RouteBuilder;
/**
* Create a new RouteBuilder and add the defaults if exists.
*
* @private
*
* @param {string} method
* @param {string} group
* @param {string} name
* @param {string} path
* @returns {RouteBuilder}
*/
private create;
}
import { TypeBuilder } from "./TypeBuilder.js";
import { RouteInvalidationType } from "./RouteInvalidationType.js";