tachybase_todo/packages/server/src/middlewares/data-wrapping.ts
2021-12-06 21:23:34 +08:00

33 lines
607 B
TypeScript

import { Context, Next } from '@nocobase/actions';
export function dataWrapping() {
return async function dataWrapping(ctx: Context, next: Next) {
await next();
if (ctx.withoutDataWrapping) {
return;
}
if (!ctx?.action?.params) {
return;
}
if (ctx.body instanceof Buffer) {
return;
}
if (!ctx.body) {
ctx.body = {};
}
const { rows, ...meta } = ctx.body;
if (rows) {
ctx.body = {
data: rows,
meta,
};
} else {
ctx.body = {
data: ctx.body,
};
}
};
}
export default dataWrapping;