diff --git a/dist/package-shared/api-paths/index.js b/dist/package-shared/api-paths/index.js index 724ca50..adc96c0 100644 --- a/dist/package-shared/api-paths/index.js +++ b/dist/package-shared/api-paths/index.js @@ -89,7 +89,15 @@ function apiCrudHandler(params) { default: break; } - yield ((_c = params.postResultsFn) === null || _c === void 0 ? void 0 : _c.call(params, Object.assign(Object.assign({}, crudParams), { res: result }))); + yield ((_c = params.postResultsFn) === null || _c === void 0 ? void 0 : _c.call(params, Object.assign(Object.assign(Object.assign({}, lodash_1.default.omit(crudParams, [ + "postResultsFnExtraParameters", + "postResultsFn", + "deleteMiddleware", + "putMiddleware", + "postMiddleware", + "getMiddleware", + "auth", + ])), { res: result }), (params.postResultsFnExtraParameters || {})))); if (result) { return result; } diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index fa2dd0e..cb7ac8f 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -2259,6 +2259,9 @@ export type APIPathsParams; deleteMiddleware?: APIPathsParamsCrudMiddleware; postResultsFn?: APIPathsPostResulstsFn; + postResultsFnExtraParameters?: { + [k: string]: any; + }; /** Runs For `POST`, `PUT`, and `DELETE` */ crudMiddleware?: APIPathsParamsCrudMiddleware; method: "GET" | "POST" | "PUT" | "DELETE"; @@ -2311,9 +2314,22 @@ export type APIPathsPostResulstsFn = (params: APIPathsCrudParams & { - res?: APIResponseObject; -}) => Promise; +}, P extends { + [k: string]: any; +} = { + [k: string]: any; +}> = (params: APIPathsPostResulstsFnParams) => Promise; +export type APIPathsPostResulstsFnParams = Omit, "postResultsFnExtraParameters" | "postResultsFn" | "deleteMiddleware" | "putMiddleware" | "postMiddleware" | "getMiddleware" | "auth"> & { + res?: APIResponseObject; +} & P; export type APIPathsParamsAllowedTable = { table: string; allowedFields?: (string | RegExp)[]; diff --git a/package-shared/api-paths/index.ts b/package-shared/api-paths/index.ts index 882c14d..d56f0b2 100644 --- a/package-shared/api-paths/index.ts +++ b/package-shared/api-paths/index.ts @@ -14,7 +14,7 @@ import putResult from "./functions/put-result"; import deleteResult from "./functions/delete-result"; export default async function apiCrudHandler< - T extends { [k: string]: any } = { [k: string]: any } + T extends { [k: string]: any } = { [k: string]: any }, >(params: APIPathsParams): Promise { try { const { auth, method } = params; @@ -42,7 +42,7 @@ export default async function apiCrudHandler< const finalSearchQuery = _.merge( crudParams.query?.searchQuery, - crudParams.body?.searchQuery + crudParams.body?.searchQuery, ); if (finalSearchQuery) { @@ -87,7 +87,7 @@ export default async function apiCrudHandler< } } - let result: APIResponseObject | undefined; + let result: APIResponseObject | undefined; switch (method) { case "GET": @@ -107,7 +107,19 @@ export default async function apiCrudHandler< break; } - await params.postResultsFn?.({ ...crudParams, res: result }); + await params.postResultsFn?.({ + ..._.omit(crudParams, [ + "postResultsFnExtraParameters", + "postResultsFn", + "deleteMiddleware", + "putMiddleware", + "postMiddleware", + "getMiddleware", + "auth", + ]), + res: result, + ...(params.postResultsFnExtraParameters || {}), + }); if (result) { return result; diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index 01d29dd..7770596 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -2933,6 +2933,7 @@ export type APIPathsParams< putMiddleware?: APIPathsParamsCrudMiddleware; deleteMiddleware?: APIPathsParamsCrudMiddleware; postResultsFn?: APIPathsPostResulstsFn; + postResultsFnExtraParameters?: { [k: string]: any }; /** Runs For `POST`, `PUT`, and `DELETE` */ crudMiddleware?: APIPathsParamsCrudMiddleware; method: "GET" | "POST" | "PUT" | "DELETE"; @@ -2991,11 +2992,24 @@ export type APIPathsParamsCrudMiddleware< export type APIPathsPostResulstsFn< T extends { [k: string]: any } = { [k: string]: any }, -> = ( - params: APIPathsCrudParams & { - res?: APIResponseObject; - }, -) => Promise; + P extends { [k: string]: any } = { [k: string]: any }, +> = (params: APIPathsPostResulstsFnParams) => Promise; + +export type APIPathsPostResulstsFnParams< + T extends { [k: string]: any } = { [k: string]: any }, + P extends { [k: string]: any } = { [k: string]: any }, +> = Omit< + APIPathsCrudParams, + | "postResultsFnExtraParameters" + | "postResultsFn" + | "deleteMiddleware" + | "putMiddleware" + | "postMiddleware" + | "getMiddleware" + | "auth" +> & { + res?: APIResponseObject; +} & P; export type APIPathsParamsAllowedTable = { table: string; diff --git a/package.json b/package.json index 257e8f8..19a8d6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "5.7.31", + "version": "5.7.32", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {