link-stack/packages/bridge-ui/lib/actions.ts

73 lines
1.3 KiB
TypeScript
Raw Normal View History

2024-04-30 11:39:16 +02:00
import { Database } from "bridge-common";
2024-04-26 14:31:33 +02:00
import {
createAction,
updateAction,
deleteAction,
2024-04-29 17:27:25 +02:00
selectAllAction,
2024-04-30 11:39:16 +02:00
} from "../actions/service";
import { FieldDescription, Entity } from "./service";
2024-04-25 12:31:03 +02:00
2024-04-26 14:31:33 +02:00
type GenerateCreateActionArgs = {
entity: Entity;
2024-04-25 12:31:03 +02:00
table: keyof Database;
2024-04-26 14:31:33 +02:00
fields: FieldDescription[];
2024-04-25 12:31:03 +02:00
};
2024-04-26 14:31:33 +02:00
export function generateCreateAction({
2024-04-25 12:31:03 +02:00
entity,
table,
fields,
2024-04-26 14:31:33 +02:00
}: GenerateCreateActionArgs) {
return async (currentState: any, formData: FormData) => {
return createAction({
entity,
table,
fields,
currentState,
formData,
});
2024-04-25 12:31:03 +02:00
};
2024-04-26 14:31:33 +02:00
}
2024-04-25 12:31:03 +02:00
2024-04-26 14:31:33 +02:00
type GenerateUpdateActionArgs = {
entity: Entity;
2024-04-25 12:31:03 +02:00
table: keyof Database;
2024-04-26 14:31:33 +02:00
fields: FieldDescription[];
2024-04-25 12:31:03 +02:00
};
2024-04-26 14:31:33 +02:00
export function generateUpdateAction({
2024-04-25 12:31:03 +02:00
entity,
table,
fields,
2024-04-26 14:31:33 +02:00
}: GenerateUpdateActionArgs) {
return async (currentState: any, formData: FormData) => {
return updateAction({
entity,
table,
fields,
currentState,
formData,
});
2024-04-25 12:31:03 +02:00
};
2024-04-26 14:31:33 +02:00
}
2024-04-25 12:31:03 +02:00
2024-04-26 14:31:33 +02:00
type GenerateDeleteActionArgs = {
entity: Entity;
2024-04-25 12:31:03 +02:00
table: keyof Database;
};
2024-04-26 14:31:33 +02:00
export function generateDeleteAction({
entity,
table,
}: GenerateDeleteActionArgs) {
return async (id: string) => {
return deleteAction({ entity, table, id });
};
}
2024-04-29 17:27:25 +02:00
export function generateSelectAllAction(table: keyof Database) {
return async () => {
return selectAllAction(table);
};
}