import { Document, User, Event, Revision } from "@server/models"; import { sequelize } from "../sequelize"; export default async function revisionCreator({ document, user, ip, }: { document: Document; // @ts-expect-error ts-migrate(2749) FIXME: 'User' refers to a value, but is being used as a t... Remove this comment to see the full error message user: User; ip?: string; }) { let transaction; try { transaction = await sequelize.transaction(); const revision = await Revision.createFromDocument(document, { transaction, }); await Event.create( { name: "revisions.create", // @ts-expect-error ts-migrate(2339) FIXME: Property 'id' does not exist on type 'Document'. documentId: document.id, modelId: revision.id, // @ts-expect-error ts-migrate(2339) FIXME: Property 'teamId' does not exist on type 'Document... Remove this comment to see the full error message teamId: document.teamId, actorId: user.id, // @ts-expect-error ts-migrate(2339) FIXME: Property 'updatedAt' does not exist on type 'Docum... Remove this comment to see the full error message createdAt: document.updatedAt, ip: ip || user.lastActiveIp, }, { transaction, } ); await transaction.commit(); return revision; } catch (err) { if (transaction) { await transaction.rollback(); } throw err; } }