diff --git a/dist/utils/grab-join-fields-from-query-object.d.ts b/dist/utils/grab-join-fields-from-query-object.d.ts index c768da8..dd16a58 100644 --- a/dist/utils/grab-join-fields-from-query-object.d.ts +++ b/dist/utils/grab-join-fields-from-query-object.d.ts @@ -1,6 +1,7 @@ import type { BunSQLiteQueryFieldValues, ServerQueryParam } from "../types"; type Params = Record> = { query: ServerQueryParam; + ignore_select_fields?: boolean; }; -export default function grabJoinFieldsFromQueryObject = Record, F extends string = string, T extends string = string>({ query }: Params): BunSQLiteQueryFieldValues[]; +export default function grabJoinFieldsFromQueryObject = Record, F extends string = string, T extends string = string>({ query, ignore_select_fields, }: Params): BunSQLiteQueryFieldValues[]; export {}; diff --git a/dist/utils/grab-join-fields-from-query-object.js b/dist/utils/grab-join-fields-from-query-object.js index f504a54..2672c70 100644 --- a/dist/utils/grab-join-fields-from-query-object.js +++ b/dist/utils/grab-join-fields-from-query-object.js @@ -1,5 +1,5 @@ import _ from "lodash"; -export default function grabJoinFieldsFromQueryObject({ query }) { +export default function grabJoinFieldsFromQueryObject({ query, ignore_select_fields, }) { const fields_values = []; const new_query = _.cloneDeep(query); if (new_query.join) { @@ -12,21 +12,26 @@ export default function grabJoinFieldsFromQueryObject({ query }) { const single_join = join[i]; fields_values.push(...grabSingleJoinData({ join: single_join, + ignore_select_fields, })); } } else { fields_values.push(...grabSingleJoinData({ join: join, + ignore_select_fields, })); } } } return fields_values; } -function grabSingleJoinData({ join, }) { +function grabSingleJoinData({ join, ignore_select_fields, }) { let values = []; const join_select_fields = join?.selectFields; + if (!join_select_fields?.[0] && !ignore_select_fields) { + throw new Error(`\`selectFields\` required in joins. To ignore this error, pass the \`ignore_select_fields\` parameter`); + } if (join_select_fields?.[0]) { for (let i = 0; i < join_select_fields.length; i++) { const select_field = join_select_fields[i]; diff --git a/package.json b/package.json index 43c42a8..fc5f1af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bun-sqlite", - "version": "1.1.6", + "version": "1.1.7", "description": "SQLite manager for Bun", "author": "Benjamin Toby", "main": "dist/index.js", diff --git a/src/utils/grab-join-fields-from-query-object.ts b/src/utils/grab-join-fields-from-query-object.ts index f30376b..0d7406e 100644 --- a/src/utils/grab-join-fields-from-query-object.ts +++ b/src/utils/grab-join-fields-from-query-object.ts @@ -7,13 +7,17 @@ import type { type Params = Record> = { query: ServerQueryParam; + ignore_select_fields?: boolean; }; export default function grabJoinFieldsFromQueryObject< Q extends Record = Record, F extends string = string, T extends string = string, ->({ query }: Params): BunSQLiteQueryFieldValues[] { +>({ + query, + ignore_select_fields, +}: Params): BunSQLiteQueryFieldValues[] { const fields_values: BunSQLiteQueryFieldValues[] = []; const new_query = _.cloneDeep(query); @@ -29,6 +33,7 @@ export default function grabJoinFieldsFromQueryObject< fields_values.push( ...(grabSingleJoinData({ join: single_join as ServerQueryParamsJoin, + ignore_select_fields, }) as BunSQLiteQueryFieldValues[]), ); } @@ -36,6 +41,7 @@ export default function grabJoinFieldsFromQueryObject< fields_values.push( ...(grabSingleJoinData({ join: join as ServerQueryParamsJoin, + ignore_select_fields, }) as BunSQLiteQueryFieldValues[]), ); } @@ -47,13 +53,21 @@ export default function grabJoinFieldsFromQueryObject< function grabSingleJoinData({ join, + ignore_select_fields, }: { join: ServerQueryParamsJoin; + ignore_select_fields?: boolean; }): BunSQLiteQueryFieldValues[] { let values: BunSQLiteQueryFieldValues[] = []; const join_select_fields = join?.selectFields; + if (!join_select_fields?.[0] && !ignore_select_fields) { + throw new Error( + `\`selectFields\` required in joins. To ignore this error, pass the \`ignore_select_fields\` parameter`, + ); + } + if (join_select_fields?.[0]) { for (let i = 0; i < join_select_fields.length; i++) { const select_field = join_select_fields[i];