strapi/packages/core/utils/src/set-creator-fields.ts
Alexandre Bodin 8e1e7317a7 Improve types
2023-06-26 17:29:11 +02:00

29 lines
671 B
TypeScript

import { assign, assoc } from 'lodash/fp';
import * as contentTypes from './content-types';
const { CREATED_BY_ATTRIBUTE, UPDATED_BY_ATTRIBUTE } = contentTypes.constants;
export interface Options {
user: User;
isEdition?: boolean;
}
interface User {
id: string | number;
}
const setCreatorFields =
<TData extends object>({ user, isEdition = false }: Options) =>
<TDataInner extends object = TData>(data: TDataInner) => {
if (isEdition) {
return assoc(UPDATED_BY_ATTRIBUTE, user.id, data);
}
return assign(data, {
[CREATED_BY_ATTRIBUTE]: user.id,
[UPDATED_BY_ATTRIBUTE]: user.id,
});
};
export default setCreatorFields;