@promind/honey 1.38.6 → 1.38.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @promind/honey
2
2
 
3
+ ## 1.38.8
4
+
5
+ ### Patch Changes
6
+
7
+ - Patch
8
+
9
+ ## 1.38.7
10
+
11
+ ### Patch Changes
12
+
13
+ - Patch
14
+
3
15
  ## 1.38.6
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Model, ModelAttributes, ModelOptions, Sequelize, ModelCtor } from "sequ
2
2
  import { Response as _Response1, NextFunction, Request, Response, Request as _Request1 } from "express";
3
3
  import { Express, Router } from "express-serve-static-core";
4
4
  import { Model as _Model1, ModelAttributes as _ModelAttributes1, ModelOptions as _ModelOptions1, ModelStatic, QueryOptions, Sequelize as _Sequelize1, QueryTypes as _QueryTypes1 } from "sequelize";
5
+ import Knex from "knex";
5
6
  import { ObjectSchema, ValidationOptions } from "joi";
6
7
  interface DBOptions {
7
8
  host: string;
@@ -65,6 +66,24 @@ type GetFilterParam = {
65
66
  type GetQueryFilter = {
66
67
  [key: string]: GetFilterParam | Record<string, GetFilterParam>;
67
68
  };
69
+ type JoinType = 'inner' | 'left' | 'right' | 'full' | 'cross';
70
+ interface Join {
71
+ /** The table to join */
72
+ table: string;
73
+ /** The type of join (default: 'inner') */
74
+ type?: JoinType;
75
+ /** The join condition - e.g., 'users.id' = 'posts.user_id' */
76
+ on: {
77
+ /** Left side of join condition (e.g., 'users.id') */
78
+ left: string;
79
+ /** Right side of join condition (e.g., 'posts.user_id') */
80
+ right: string;
81
+ /** Operator for join condition (default: '=') */
82
+ operator?: '=' | '!=' | '<' | '<=' | '>' | '>=';
83
+ };
84
+ /** Alias for the joined table (optional) */
85
+ alias?: string;
86
+ }
68
87
  export function runDbQuery(query: string, params?: QueryOptions): Promise<[unknown[], unknown]>;
69
88
  export function createModel<TModelAttributes extends {} = any, TCreationAttributes extends {} = TModelAttributes>(modelName: string, attributes: _ModelAttributes1<_Model1<TModelAttributes, TCreationAttributes>>, options?: _ModelOptions1<_Model1<TModelAttributes, TCreationAttributes>> | undefined): ModelStatic<_Model1<TModelAttributes, TCreationAttributes>>;
70
89
  declare class Postgres {
@@ -74,7 +93,8 @@ declare class Postgres {
74
93
  }, format?: {
75
94
  sort: 'ASC' | 'DESC';
76
95
  sortField: string;
77
- }): Promise<object[]>;
96
+ }, joins?: Join[]): Promise<object[]>;
97
+ query(query: string, replacements: any[]): Promise<object[]>;
78
98
  create(table: string, data: Record<string, string | number | boolean | Date | Object>): Promise<{
79
99
  id: string | number;
80
100
  }[]>;
@@ -165,6 +185,8 @@ type IGet = CrudParams & {
165
185
  /** column to sort by */
166
186
  sortField: string;
167
187
  };
188
+ /** Join configurations for related tables */
189
+ joins?: Join[];
168
190
  /** A function that is called to transform your response data */
169
191
  processResponseData?: (data: any, req: _Request1) => any;
170
192
  };
@@ -175,6 +197,8 @@ type IGetById = CrudParams & {
175
197
  idField?: string;
176
198
  /** Filter builder for WHERE clause */
177
199
  filter?: GetQueryFilter;
200
+ /** Join configurations for related tables */
201
+ joins?: Join[];
178
202
  /** A function that is called to transform your response data */
179
203
  processResponseData?: (data: any, req: _Request1) => any;
180
204
  };
@@ -192,6 +216,12 @@ type IDelete = CrudParams & {
192
216
  /** Filter builder for WHERE clause */
193
217
  filter?: GetQueryFilter;
194
218
  };
219
+ type IQuery = Omit<CrudParams, 'table'> & {
220
+ /** A function that returns a knex query */
221
+ query: (knex: Knex.Knex, req: _Request1) => Knex.Knex.QueryBuilder;
222
+ /** A function that is called to transform your response data */
223
+ processResponseData?: (data: any, req: _Request1) => any;
224
+ };
195
225
  export class Honey {
196
226
  express: ExpressApp;
197
227
  constructor(express: ExpressApp, postgres: Postgres);
@@ -200,14 +230,15 @@ export class Honey {
200
230
  addMiddleware(middleware: Middleware[]): void;
201
231
  startServer(): void;
202
232
  create({ resource, params, message, middleware, pathOverride, exitMiddleware, processResponseData, processErrorResponse, table, methodOverride }: ICreate): void;
203
- get({ resource, fields, filter, format, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table }: IGet): void;
204
- getById({ resource, fields, idField, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, filter }: IGetById): void;
233
+ get({ resource, fields, filter, format, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, joins }: IGet): void;
234
+ getById({ resource, fields, idField, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, filter, joins }: IGetById): void;
205
235
  updateById({ resource, params, idField, message, middleware, pathOverride, exitMiddleware, methodOverride, table, filter, processErrorResponse, processResponseData }: IUpdateById): void;
206
236
  update({ resource, params, filter, message, middleware, pathOverride, exitMiddleware, methodOverride, table, processErrorResponse, processResponseData }: IUpdate): void;
207
237
  upsertById({ resource, params, idField, message, middleware, pathOverride, exitMiddleware, methodOverride, table, processErrorResponse, processResponseData }: IUpsertById): void;
208
238
  upsert({ resource, params, message, middleware, pathOverride, exitMiddleware, methodOverride, conflictTarget, table, processErrorResponse, processResponseData }: IUpsert): void;
209
239
  deleteById({ resource, message, middleware, pathOverride, exitMiddleware, methodOverride, idField, filter, table, processErrorResponse }: IDeleteById): void;
210
240
  delete({ resource, message, middleware, pathOverride, exitMiddleware, methodOverride, filter, table, processErrorResponse }: IDelete): void;
241
+ query({ resource, query, middleware, pathOverride, exitMiddleware, methodOverride, processErrorResponse, processResponseData }: IQuery): void;
211
242
  }
212
243
  export const validateRequestData: (schema: ObjectSchema, location?: 'body' | 'params' | 'query' | 'headers' | 'cookies', options?: ValidationOptions) => Middleware;
213
244
  export function createHoney(port: string, dbOptions: string | DBOptions, metadata?: Metadata): Honey;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/src/config/database.ts","src/src/config/index.ts","src/src/utils/error.ts","src/src/interfaces/express.ts","src/src/services/express.ts","src/src/controllers/interfaces.ts","src/src/shared/interface.ts","src/src/utils/helpers.ts","src/src/utils/db.ts","src/src/utils/postgres.ts","src/src/services/postgres.ts","src/src/interfaces/crud.ts","src/src/utils/formatter.ts","src/src/controllers/create.ts","src/src/controllers/read.ts","src/src/controllers/update.ts","src/src/controllers/upsert.ts","src/src/controllers/delete.ts","src/src/controllers/index.ts","src/src/services/honey.ts","src/src/utils/port.ts","src/src/utils/validation.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { QueryTypes as QTypes } from 'sequelize';\n\nimport Config from './config';\nimport { DBOptions } from './config/database';\nimport ExpressApp from './services/express';\nimport Honey from './services/honey';\nimport Postgres from './services/postgres';\nimport { normalizePort } from './utils/port';\nimport { Metadata } from './interfaces/express';\n\nprocess.on('SIGINT', () => {\n // process reload ongoing\n // close connections, clear cache, etc\n // by default, you have 1600ms\n process.exit(0);\n});\n\nexport function createHoney(\n port: string,\n dbOptions: string | DBOptions,\n metadata?: Metadata\n) {\n new Config(dbOptions);\n\n const portVal = normalizePort(port || process.env.PORT || '3000');\n const express = new ExpressApp(portVal, metadata);\n const postgres = new Postgres();\n const honey = new Honey(express, postgres);\n\n return honey;\n}\n\nexport const defineModel = Config.defineModel.bind(Config);\n\nfunction getQueryTypes() {\n const { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT } = QTypes;\n\n const exposedTypes = { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT };\n return exposedTypes;\n}\n\nconst QueryTypes = getQueryTypes();\n\nexport { QueryTypes };\nexport { default as runDbQuery, createModel } from './utils/db';\nexport { default as HttpError, handleHttpError } from './utils/error';\nexport { default as Honey } from './services/honey';\nexport type {\n Middleware,\n ExitMiddleware,\n Request,\n Response\n} from './interfaces/express';\nexport * from 'sequelize';\nexport { validateRequestData } from './utils/validation';\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["src/src/config/database.ts","src/src/config/index.ts","src/src/utils/error.ts","src/src/interfaces/express.ts","src/src/services/express.ts","src/src/controllers/interfaces.ts","src/src/shared/interface.ts","src/src/utils/helpers.ts","src/src/utils/db.ts","src/src/utils/postgres.ts","src/src/services/postgres.ts","src/src/interfaces/crud.ts","src/src/utils/formatter.ts","src/src/controllers/create.ts","src/src/controllers/read.ts","src/src/controllers/update.ts","src/src/controllers/upsert.ts","src/src/controllers/delete.ts","src/src/controllers/query.ts","src/src/controllers/index.ts","src/src/services/honey.ts","src/src/utils/port.ts","src/src/utils/validation.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { QueryTypes as QTypes } from 'sequelize';\n\nimport Config from './config';\nimport { DBOptions } from './config/database';\nimport ExpressApp from './services/express';\nimport Honey from './services/honey';\nimport Postgres from './services/postgres';\nimport { normalizePort } from './utils/port';\nimport { Metadata } from './interfaces/express';\n\nprocess.on('SIGINT', () => {\n // process reload ongoing\n // close connections, clear cache, etc\n // by default, you have 1600ms\n process.exit(0);\n});\n\nexport function createHoney(\n port: string,\n dbOptions: string | DBOptions,\n metadata?: Metadata\n) {\n new Config(dbOptions);\n\n const portVal = normalizePort(port || process.env.PORT || '3000');\n const express = new ExpressApp(portVal, metadata);\n const postgres = new Postgres();\n const honey = new Honey(express, postgres);\n\n return honey;\n}\n\nexport const defineModel = Config.defineModel.bind(Config);\n\nfunction getQueryTypes() {\n const { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT } = QTypes;\n\n const exposedTypes = { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT };\n return exposedTypes;\n}\n\nconst QueryTypes = getQueryTypes();\n\nexport { QueryTypes };\nexport { default as runDbQuery, createModel } from './utils/db';\nexport { default as HttpError, handleHttpError } from './utils/error';\nexport { default as Honey } from './services/honey';\nexport type {\n Middleware,\n ExitMiddleware,\n Request,\n Response\n} from './interfaces/express';\nexport * from 'sequelize';\nexport { validateRequestData } from './utils/validation';\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../"}
package/dist/index.js CHANGED
@@ -309,7 +309,7 @@ function $e6033bad46ade8f8$export$2e2bcd8739ae039({ db: db, resource: resource,
309
309
 
310
310
 
311
311
 
312
- function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource, fields: fields, idField: idField = 'id', processResponseData: processResponseData, processErrorResponse: processErrorResponse, filterQuery: filterQuery = {} }) {
312
+ function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource, fields: fields, idField: idField = 'id', processResponseData: processResponseData, processErrorResponse: processErrorResponse, filterQuery: filterQuery = {}, joins: joins }) {
313
313
  return async function(req, res, next) {
314
314
  try {
315
315
  const id = req.params.id;
@@ -320,7 +320,7 @@ function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource,
320
320
  operator: '='
321
321
  },
322
322
  ...filter
323
- });
323
+ }, undefined, undefined, joins);
324
324
  if (!data?.length) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)('Record does not exist', 404);
325
325
  res.send({
326
326
  data: processResponseData ? await processResponseData(data[0], req) : data[0]
@@ -338,7 +338,7 @@ function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource,
338
338
  }
339
339
  };
340
340
  }
341
- function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource, fields: fields, filterQuery: filterQuery, format: format, processResponseData: processResponseData, processErrorResponse: processErrorResponse }) {
341
+ function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource, fields: fields, filterQuery: filterQuery, format: format, processResponseData: processResponseData, processErrorResponse: processErrorResponse, joins: joins }) {
342
342
  return async function(req, res, next) {
343
343
  try {
344
344
  const page = Number(req.query.page);
@@ -348,7 +348,7 @@ function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource,
348
348
  limit: limit || 10
349
349
  } : undefined;
350
350
  const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.query, filterQuery, req);
351
- let data = await db.read(resource, fields, filter, paginate, format);
351
+ let data = await db.read(resource, fields, filter, paginate, format, joins);
352
352
  let total = 0;
353
353
  if (paginate) {
354
354
  total = Number(data[0]?.['honey_total_count'] || 0);
@@ -561,6 +561,78 @@ function $877c51bd1d8c8e63$export$4208857769c75f40({ db: db, resource: resource,
561
561
 
562
562
 
563
563
 
564
+ class $eb35754384d9f185$export$d8ee7b97a871dca3 {
565
+ static{
566
+ this.instances = new Map();
567
+ }
568
+ static getInstance(identifier, initFn) {
569
+ if (!this.instances.has(identifier) && initFn) this.instances.set(identifier, initFn());
570
+ return this.instances.get(identifier);
571
+ }
572
+ }
573
+ function $eb35754384d9f185$export$2e2bcd8739ae039(identifier, initFn) {
574
+ return $eb35754384d9f185$export$d8ee7b97a871dca3.getInstance(identifier, initFn);
575
+ }
576
+
577
+
578
+ function $6eae9231903e3dbe$export$2e2bcd8739ae039(query, params) {
579
+ params = params || {};
580
+ return (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
581
+ ...params,
582
+ raw: true
583
+ });
584
+ }
585
+ class $6eae9231903e3dbe$var$ModelCreator {
586
+ static{
587
+ this.model = {};
588
+ }
589
+ static createModel(modelName, attributes, options) {
590
+ if (!this.model[modelName]) this.model[modelName] = (0, $279104bade16c452$export$2e2bcd8739ae039).db.define(modelName, attributes, options);
591
+ return this.model[modelName];
592
+ }
593
+ }
594
+ function $6eae9231903e3dbe$export$2f453c7f7b0d002b(modelName, attributes, options) {
595
+ return $6eae9231903e3dbe$var$ModelCreator.createModel.bind($6eae9231903e3dbe$var$ModelCreator)(modelName, attributes, options);
596
+ }
597
+ const $6eae9231903e3dbe$export$a858f29c02f648c6 = ()=>(0, $eb35754384d9f185$export$2e2bcd8739ae039)('knex', ()=>{
598
+ return (0, ($parcel$interopDefault($3IFKa$knex)))({
599
+ client: 'pg'
600
+ });
601
+ });
602
+
603
+
604
+ function $bc096dcbba7ac3ae$export$d1ec1b5a0afb5051({ db: db, query: query, processErrorResponse: processErrorResponse, processResponseData: processResponseData }) {
605
+ return async (req, res, next)=>{
606
+ try {
607
+ const page = Number(req.query.page);
608
+ const limit = Number(req.query.limit);
609
+ const paginate = limit || page ? {
610
+ page: page || 1,
611
+ limit: limit || 10
612
+ } : undefined;
613
+ const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
614
+ let queryBuilder = query(knex, req);
615
+ if (paginate) queryBuilder = queryBuilder.limit(paginate.limit).offset(paginate.limit * (paginate.page - 1));
616
+ const { sql: sql, bindings: bindings } = queryBuilder.toSQL();
617
+ const result = await db.query(sql, [
618
+ ...bindings
619
+ ]);
620
+ if (processResponseData) return res.send({
621
+ data: processResponseData(result, req)
622
+ });
623
+ return res.send({
624
+ data: result
625
+ });
626
+ } catch (e) {
627
+ if (processErrorResponse) return next(processErrorResponse(e));
628
+ return next(e);
629
+ }
630
+ };
631
+ }
632
+
633
+
634
+
635
+
564
636
  // eslint-disable-next-line
565
637
  const $e551a6691d3acd09$var$defaultExitMiddleware = (data, req, res, next)=>{
566
638
  if (process.env.NODE_ENV !== 'production') console.log('Response:', data);
@@ -612,7 +684,7 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
612
684
  exitMiddleware: exitMiddleware
613
685
  });
614
686
  }
615
- get({ resource: resource, fields: fields, filter: filter, format: format, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table }) {
687
+ get({ resource: resource, fields: fields, filter: filter, format: format, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, joins: joins }) {
616
688
  const path = pathOverride || `/${resource}`;
617
689
  resource = table || resource;
618
690
  const controller = (0, $b1328f4a111bb650$export$7b48d281d65870ad)({
@@ -622,7 +694,8 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
622
694
  filterQuery: filter,
623
695
  format: format,
624
696
  processResponseData: processResponseData,
625
- processErrorResponse: processErrorResponse
697
+ processErrorResponse: processErrorResponse,
698
+ joins: joins
626
699
  });
627
700
  this.crud({
628
701
  method: methodOverride || 'get',
@@ -632,7 +705,7 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
632
705
  exitMiddleware: exitMiddleware
633
706
  });
634
707
  }
635
- getById({ resource: resource, fields: fields, idField: idField, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, filter: filter }) {
708
+ getById({ resource: resource, fields: fields, idField: idField, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, filter: filter, joins: joins }) {
636
709
  const path = pathOverride || `/${resource}/:id`;
637
710
  resource = table || resource;
638
711
  const controller = (0, $b1328f4a111bb650$export$7b6dde2038c44e91)({
@@ -642,7 +715,8 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
642
715
  idField: idField || 'id',
643
716
  processResponseData: processResponseData,
644
717
  processErrorResponse: processErrorResponse,
645
- filterQuery: filter
718
+ filterQuery: filter,
719
+ joins: joins
646
720
  });
647
721
  this.crud({
648
722
  method: methodOverride || 'get',
@@ -770,50 +844,25 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
770
844
  exitMiddleware: exitMiddleware
771
845
  });
772
846
  }
773
- }
774
-
775
-
776
-
777
-
778
-
779
- class $eb35754384d9f185$export$d8ee7b97a871dca3 {
780
- static{
781
- this.instances = new Map();
782
- }
783
- static getInstance(identifier, initFn) {
784
- if (!this.instances.has(identifier) && initFn) this.instances.set(identifier, initFn());
785
- return this.instances.get(identifier);
847
+ query({ resource: resource, query: query, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processErrorResponse: processErrorResponse, processResponseData: processResponseData }) {
848
+ const path = pathOverride || `/${resource}`;
849
+ const controller = (0, $bc096dcbba7ac3ae$export$d1ec1b5a0afb5051)({
850
+ db: this.postgres,
851
+ query: query,
852
+ processErrorResponse: processErrorResponse,
853
+ processResponseData: processResponseData
854
+ });
855
+ this.crud({
856
+ method: methodOverride || 'get',
857
+ path: path,
858
+ controller: controller,
859
+ middleware: middleware,
860
+ exitMiddleware: exitMiddleware
861
+ });
786
862
  }
787
863
  }
788
- function $eb35754384d9f185$export$2e2bcd8739ae039(identifier, initFn) {
789
- return $eb35754384d9f185$export$d8ee7b97a871dca3.getInstance(identifier, initFn);
790
- }
791
864
 
792
865
 
793
- function $6eae9231903e3dbe$export$2e2bcd8739ae039(query, params) {
794
- params = params || {};
795
- return (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
796
- ...params,
797
- raw: true
798
- });
799
- }
800
- class $6eae9231903e3dbe$var$ModelCreator {
801
- static{
802
- this.model = {};
803
- }
804
- static createModel(modelName, attributes, options) {
805
- if (!this.model[modelName]) this.model[modelName] = (0, $279104bade16c452$export$2e2bcd8739ae039).db.define(modelName, attributes, options);
806
- return this.model[modelName];
807
- }
808
- }
809
- function $6eae9231903e3dbe$export$2f453c7f7b0d002b(modelName, attributes, options) {
810
- return $6eae9231903e3dbe$var$ModelCreator.createModel.bind($6eae9231903e3dbe$var$ModelCreator)(modelName, attributes, options);
811
- }
812
- const $6eae9231903e3dbe$export$a858f29c02f648c6 = ()=>(0, $eb35754384d9f185$export$2e2bcd8739ae039)('knex', ()=>{
813
- return (0, ($parcel$interopDefault($3IFKa$knex)))({
814
- client: 'pg'
815
- });
816
- });
817
866
 
818
867
 
819
868
  const $6fe5fb6fcb62dbab$export$1b001418845b471c = (query, filter = {})=>{
@@ -848,7 +897,7 @@ const $6fe5fb6fcb62dbab$export$53b231d60a00019b = (table, data)=>{
848
897
  replacements: replacements
849
898
  };
850
899
  };
851
- const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate, format)=>{
900
+ const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate, format, joins)=>{
852
901
  const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
853
902
  let q = knex(table).select(fields);
854
903
  // Add total count if pagination is needed
@@ -862,6 +911,35 @@ const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate
862
911
  fields[0]
863
912
  ])
864
913
  ]);
914
+ // Apply joins
915
+ if (joins && joins.length > 0) joins.forEach((join)=>{
916
+ const joinTable = join.alias ? `${join.table} as ${join.alias}` : join.table;
917
+ const joinType = join.type || 'inner';
918
+ const operator = join.on.operator || '=';
919
+ switch(joinType){
920
+ case 'left':
921
+ q.leftJoin(joinTable, join.on.left, operator, join.on.right);
922
+ break;
923
+ case 'right':
924
+ q.rightJoin(joinTable, join.on.left, operator, join.on.right);
925
+ break;
926
+ case 'full':
927
+ q.fullOuterJoin(joinTable, join.on.left, operator, join.on.right);
928
+ break;
929
+ case 'cross':
930
+ q.crossJoin(join.alias ? knex.raw('?? as ??', [
931
+ join.table,
932
+ join.alias
933
+ ]) : knex.raw('??', [
934
+ join.table
935
+ ]));
936
+ break;
937
+ case 'inner':
938
+ default:
939
+ q.innerJoin(joinTable, join.on.left, operator, join.on.right);
940
+ break;
941
+ }
942
+ });
865
943
  // Apply filters
866
944
  if (filter) q = $6fe5fb6fcb62dbab$export$1b001418845b471c(q, filter);
867
945
  // Apply sorting
@@ -941,8 +1019,18 @@ const $6fe5fb6fcb62dbab$export$65b914f34962db1e = (table, data, conflictTarget)=
941
1019
 
942
1020
 
943
1021
  class $43b99269306b3d62$export$2e2bcd8739ae039 {
944
- async read(table, fields, filter, paginate, format) {
945
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$60d67f341ad4c4)(table, fields, filter, paginate, format);
1022
+ async read(table, fields, filter, paginate, format, joins) {
1023
+ const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$60d67f341ad4c4)(table, fields, filter, paginate, format, joins);
1024
+ const result = await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
1025
+ type: (0, $3IFKa$sequelize.QueryTypes).SELECT,
1026
+ raw: true,
1027
+ replacements: [
1028
+ ...replacements
1029
+ ]
1030
+ });
1031
+ return result;
1032
+ }
1033
+ async query(query, replacements) {
946
1034
  const result = await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
947
1035
  type: (0, $3IFKa$sequelize.QueryTypes).SELECT,
948
1036
  raw: true,