From 181501296a233bc6e51cf35d89f0b57b6eb72226 Mon Sep 17 00:00:00 2001
From: Benjamin Toby <benoti.san@gmail.com>
Date: Mon, 5 May 2025 15:34:42 +0100
Subject: [PATCH] Updates

---
 dist/package-shared/types/index.d.ts              | 1 +
 dist/package-shared/utils/data-fetching/crud.d.ts | 2 +-
 dist/package-shared/utils/data-fetching/crud.js   | 6 +++---
 package-shared/types/index.ts                     | 1 +
 package-shared/utils/data-fetching/crud.ts        | 5 +++--
 package.json                                      | 2 +-
 6 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts
index 8ff6997..bb022ec 100644
--- a/dist/package-shared/types/index.d.ts
+++ b/dist/package-shared/types/index.d.ts
@@ -1351,6 +1351,7 @@ export type DsqlCrudParam<T extends {
     table: string;
     data?: T;
     targetId?: string | number;
+    targetField?: string;
     query?: DsqlCrudQueryObject<T>;
     sanitize?: (data?: T) => T;
     debug?: boolean;
diff --git a/dist/package-shared/utils/data-fetching/crud.d.ts b/dist/package-shared/utils/data-fetching/crud.d.ts
index 1c1b22d..f8583fe 100644
--- a/dist/package-shared/utils/data-fetching/crud.d.ts
+++ b/dist/package-shared/utils/data-fetching/crud.d.ts
@@ -4,6 +4,6 @@ export default function dsqlCrud<T extends {
     [key: string]: any;
 } = {
     [key: string]: any;
-}>({ action, data, table, targetId, query, sanitize, debug, }: DsqlCrudParam<T>): Promise<(PostReturn & {
+}>({ action, data, table, targetId, query, sanitize, debug, targetField, }: DsqlCrudParam<T>): Promise<(PostReturn & {
     queryObject?: ReturnType<Awaited<typeof sqlGenerator>>;
 }) | null>;
diff --git a/dist/package-shared/utils/data-fetching/crud.js b/dist/package-shared/utils/data-fetching/crud.js
index f19f86f..ed06408 100644
--- a/dist/package-shared/utils/data-fetching/crud.js
+++ b/dist/package-shared/utils/data-fetching/crud.js
@@ -17,7 +17,7 @@ const get_1 = __importDefault(require("../../actions/get"));
 const post_1 = __importDefault(require("../../actions/post"));
 const sql_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-generator"));
 function dsqlCrud(_a) {
-    return __awaiter(this, arguments, void 0, function* ({ action, data, table, targetId, query, sanitize, debug, }) {
+    return __awaiter(this, arguments, void 0, function* ({ action, data, table, targetId, query, sanitize, debug, targetField, }) {
         const finalData = sanitize ? sanitize(data) : data;
         const finalId = targetId;
         let queryObject;
@@ -49,7 +49,7 @@ function dsqlCrud(_a) {
                     query: {
                         action: "update",
                         table,
-                        identifierColumnName: "id",
+                        identifierColumnName: targetField || "id",
                         identifierValue: String(finalId),
                         data: finalData,
                     },
@@ -60,7 +60,7 @@ function dsqlCrud(_a) {
                     query: {
                         action: "delete",
                         table,
-                        identifierColumnName: "id",
+                        identifierColumnName: targetField || "id",
                         identifierValue: String(finalId),
                     },
                     forceLocal: true,
diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts
index 976e2ae..def76bf 100644
--- a/package-shared/types/index.ts
+++ b/package-shared/types/index.ts
@@ -1521,6 +1521,7 @@ export type DsqlCrudParam<
     table: string;
     data?: T;
     targetId?: string | number;
+    targetField?: string;
     query?: DsqlCrudQueryObject<T>;
     sanitize?: (data?: T) => T;
     debug?: boolean;
diff --git a/package-shared/utils/data-fetching/crud.ts b/package-shared/utils/data-fetching/crud.ts
index 2e56a78..e2fe3c2 100644
--- a/package-shared/utils/data-fetching/crud.ts
+++ b/package-shared/utils/data-fetching/crud.ts
@@ -13,6 +13,7 @@ export default async function dsqlCrud<
     query,
     sanitize,
     debug,
+    targetField,
 }: DsqlCrudParam<T>): Promise<
     | (PostReturn & {
           queryObject?: ReturnType<Awaited<typeof sqlGenerator>>;
@@ -56,7 +57,7 @@ export default async function dsqlCrud<
                 query: {
                     action: "update",
                     table,
-                    identifierColumnName: "id",
+                    identifierColumnName: targetField || "id",
                     identifierValue: String(finalId),
                     data: finalData,
                 },
@@ -68,7 +69,7 @@ export default async function dsqlCrud<
                 query: {
                     action: "delete",
                     table,
-                    identifierColumnName: "id",
+                    identifierColumnName: targetField || "id",
                     identifierValue: String(finalId),
                 },
                 forceLocal: true,
diff --git a/package.json b/package.json
index 60b8612..8534984 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
     "name": "@moduletrace/datasquirel",
-    "version": "4.5.4",
+    "version": "4.5.5",
     "description": "Cloud-based SQL data management tool",
     "main": "dist/index.js",
     "bin": {