@compas/code-gen
Version:
Generate various boring parts of your server
223 lines (222 loc) • 6.75 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;
filesBuilder:
| 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").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
query(builder: import("../../index").TypeBuilderLike): RouteBuilder;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
params(builder: import("../../index").TypeBuilderLike): RouteBuilder;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
body(builder: import("../../index").TypeBuilderLike): RouteBuilder;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
files(builder: import("../../index").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").TypeBuilderLike} builder
* @returns {RouteBuilder}
*/
response(builder: import("../../index").TypeBuilderLike): RouteBuilder;
}
export class RouteCreator {
constructor(group: any, path: any);
data: {
group: any;
path: any;
};
/** @type {string[]} */
defaultTags: 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;
filesBuilder:
| 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").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
query(builder: import("../../index").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
params(builder: import("../../index").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
body(builder: import("../../index").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
files(builder: import("../../index").TypeBuilderLike): RouteCreator;
/**
* @param {import("../../index").TypeBuilderLike} builder
* @returns {RouteCreator}
*/
response(builder: import("../../index").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").CodeGenRouteInvalidationTypeInput["properties"]} [properties]
* @returns {RouteInvalidationType}
*/
invalidates(
group: string,
name?: string | undefined,
properties?:
| {
useSharedParams?: boolean | undefined;
useSharedQuery?: boolean | undefined;
specification?:
| {
params?:
| {
[key: string]: string[];
}
| undefined;
query?:
| {
[key: string]: string[];
}
| undefined;
}
| undefined;
}
| undefined,
): 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 | undefined, name?: string | undefined): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
post(path?: string | undefined, name?: string | undefined): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
put(path?: string | undefined, name?: string | undefined): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
patch(path?: string | undefined, name?: string | undefined): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
delete(path?: string | undefined, name?: string | undefined): RouteBuilder;
/**
* @param {string} [path]
* @param {string} [name]
* @returns {RouteBuilder}
*/
head(path?: string | undefined, name?: string | undefined): 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";
//# sourceMappingURL=RouteBuilder.d.ts.map