Skip to content

Commit

Permalink
lint
Browse files Browse the repository at this point in the history
  • Loading branch information
mathysth committed Mar 25, 2024
1 parent 5a9eab0 commit 0add1bf
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 55 deletions.
90 changes: 45 additions & 45 deletions packages/hono-openapi-adapter/src/decorators/parameter.decorator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,61 +8,61 @@ import type { RouteParameters } from 'src/types/custom-hono-zod';
import type { GuardsType } from 'src/types/guards';

function controllerHandler(options: RouteParameters, requestType: RequestMethod, target: any, guards: GuardsType[], thisArg: any) {
const server: Server = Reflect.getMetadata(SERVER, SERVER_TARGET);
console.log(server);
// Define route
const { ...routeMetadata } = options;
const finalRouteMetadata = Object.assign(routeMetadata, {
method: requestType,
});
const route = createRoute(finalRouteMetadata);
const server: Server = Reflect.getMetadata(SERVER, SERVER_TARGET);
console.log(server);
// Define route
const { ...routeMetadata } = options;
const finalRouteMetadata = Object.assign(routeMetadata, {
method: requestType,
});
const route = createRoute(finalRouteMetadata);

if (guards && guards.length > 0) {
guardMiddleware(guards, requestType, finalRouteMetadata.path);
}
if (guards && guards.length > 0) {
guardMiddleware(guards, requestType, finalRouteMetadata.path);
}

const openapi = server.hono.openapi(
route,
async (ctx) => {
return target.call(thisArg, ctx);
},
(result, c) => {
if (!result.success) {
console.error(result.error);
return c.json(
{
code: StatusCodes.BAD_REQUEST,
message: result.error,
},
StatusCodes.BAD_REQUEST,
);
}
},
);
const openapi = server.hono.openapi(
route,
async (ctx) => {
return target.call(thisArg, ctx);
},
(result, c) => {
if (!result.success) {
console.error(result.error);
return c.json(
{
code: StatusCodes.BAD_REQUEST,
message: result.error,
},
StatusCodes.BAD_REQUEST,
);
}
},
);

return openapi;
return openapi;
}

/**
* To understand how this function work
* @link https://stackoverflow.com/a/70910553/15431338
*/
export function createFunctionParameters(type: RequestMethod) {
return (routeParameters: RouteParameters) => {
return (target: any, propertyKey: string, descriptor: PropertyDescriptor): void | TypedPropertyDescriptor<any> => {
// Add path to reflection
Reflect.defineMetadata(PATH_METADATA, routeParameters.path, target);
const original = target[propertyKey];
return {
...descriptor,
value() {
const guards = Reflect.getMetadata(GUARD, original);
// At the moment controller function cannot have other parameter than ctx
return controllerHandler(routeParameters, type, original, guards, this);
},
};
};
};
return (routeParameters: RouteParameters) => {
return (target: any, propertyKey: string, descriptor: PropertyDescriptor): void | TypedPropertyDescriptor<any> => {
// Add path to reflection
Reflect.defineMetadata(PATH_METADATA, routeParameters.path, target);
const original = target[propertyKey];
return {
...descriptor,
value() {
const guards = Reflect.getMetadata(GUARD, original);
// At the moment controller function cannot have other parameter than ctx
return controllerHandler(routeParameters, type, original, guards, this);
},
};
};
};
}

export const Get = createFunctionParameters(RequestMethod.GET);
Expand Down
20 changes: 10 additions & 10 deletions packages/hono-openapi-adapter/src/start/hono-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ import { bindToContainers } from '../ioc';
import { Server } from '../server';

class HonoAdapter {
public listen(port: number, container: Container) {
bindToContainers(container);
const app = container.get(Server);
Reflect.defineMetadata(SERVER, app, SERVER_TARGET);
Reflect.defineMetadata(CONTAINER, container, SERVER_TARGET);
public listen(port: number, container: Container) {
bindToContainers(container);
const app = container.get(Server);
Reflect.defineMetadata(SERVER, app, SERVER_TARGET);
Reflect.defineMetadata(CONTAINER, container, SERVER_TARGET);

return {
port,
fetch: app.hono.fetch,
};
}
return {
port,
fetch: app.hono.fetch,
};
}
}

export const HonoFactory = new HonoAdapter();

0 comments on commit 0add1bf

Please sign in to comment.