@promind/honey 1.38.1 → 1.38.2

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/dist/index.js DELETED
@@ -1,1043 +0,0 @@
1
- var $3IFKa$sequelize = require("sequelize");
2
- var $3IFKa$path = require("path");
3
- var $3IFKa$dotenv = require("dotenv");
4
- var $3IFKa$cookieparser = require("cookie-parser");
5
- var $3IFKa$express = require("express");
6
- var $3IFKa$morgan = require("morgan");
7
- var $3IFKa$cors = require("cors");
8
- var $3IFKa$expressoasgenerator = require("express-oas-generator");
9
- var $3IFKa$knex = require("knex");
10
-
11
-
12
- function $parcel$exportWildcard(dest, source) {
13
- Object.keys(source).forEach(function(key) {
14
- if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {
15
- return;
16
- }
17
-
18
- Object.defineProperty(dest, key, {
19
- enumerable: true,
20
- get: function get() {
21
- return source[key];
22
- }
23
- });
24
- });
25
-
26
- return dest;
27
- }
28
-
29
- function $parcel$export(e, n, v, s) {
30
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
31
- }
32
-
33
- function $parcel$interopDefault(a) {
34
- return a && a.__esModule ? a.default : a;
35
- }
36
-
37
- $parcel$export(module.exports, "createHoney", () => $c742f52b4af459bc$export$f375e35cdf499ccf);
38
- $parcel$export(module.exports, "defineModel", () => $c742f52b4af459bc$export$acd55aa037e791bb);
39
- $parcel$export(module.exports, "QueryTypes", () => $c742f52b4af459bc$export$9e0271c08bde0a49);
40
- $parcel$export(module.exports, "runDbQuery", () => $6eae9231903e3dbe$export$2e2bcd8739ae039);
41
- $parcel$export(module.exports, "createModel", () => $6eae9231903e3dbe$export$2f453c7f7b0d002b);
42
- $parcel$export(module.exports, "HttpError", () => $2a1659c6c3bea4d7$export$2e2bcd8739ae039);
43
- $parcel$export(module.exports, "handleHttpError", () => $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d);
44
- $parcel$export(module.exports, "Honey", () => $e551a6691d3acd09$export$2e2bcd8739ae039);
45
- $parcel$export(module.exports, "validateRequestData", () => $e0429c84bb00f9a2$export$3b8deecb09f1ff23);
46
-
47
-
48
-
49
-
50
- function $7f54ec05d534b110$export$2e2bcd8739ae039(options) {
51
- let uri = '';
52
- if (typeof options === 'string') uri = options;
53
- else uri = `postgres://${options.user}:${options.password}@${options.host}:${options.port}/${options.database}`;
54
- const sequelize = new (0, $3IFKa$sequelize.Sequelize)(uri, {
55
- logging: false
56
- });
57
- sequelize.authenticate().then(()=>{
58
- console.log('DB Connection established successfully');
59
- }).catch((err)=>{
60
- console.log('DB Connection failed');
61
- console.error(err);
62
- });
63
- return sequelize;
64
- }
65
-
66
-
67
-
68
- var $279104bade16c452$var$$parcel$__dirname = $3IFKa$path.resolve(__dirname, "../src/config");
69
- (0, ($parcel$interopDefault($3IFKa$dotenv))).config();
70
- (0, ($parcel$interopDefault($3IFKa$dotenv))).config({
71
- path: (0, ($parcel$interopDefault($3IFKa$path))).join($279104bade16c452$var$$parcel$__dirname, '.env')
72
- });
73
- class $279104bade16c452$export$2e2bcd8739ae039 {
74
- static{
75
- this.getEnv = (key)=>{
76
- return process.env[key];
77
- };
78
- }
79
- constructor(options){
80
- $279104bade16c452$export$2e2bcd8739ae039.db = (0, $7f54ec05d534b110$export$2e2bcd8739ae039)(options);
81
- }
82
- static get isLive() {
83
- return process.env.NODE_ENV === 'production';
84
- }
85
- static defineModel(modelName, attributes, options) {
86
- return this.db.define(modelName, attributes, options);
87
- }
88
- }
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
- class $2a1659c6c3bea4d7$export$2e2bcd8739ae039 extends Error {
98
- constructor(message, status){
99
- super(message || 'Something went wrong'), this.status = status;
100
- }
101
- }
102
- const $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d = (err, res)=>{
103
- return res.status(err.status || 500).send({
104
- message: err.message || 'Something went wrong'
105
- });
106
- };
107
-
108
-
109
- /**
110
- * Event listener for HTTP server "error" event.
111
- */ const $55ceba8bebac8f81$var$onError = (port)=>{
112
- return (error)=>{
113
- if (error.syscall !== 'listen') throw error;
114
- const bind = typeof port === 'string' ? `Pipe ${port}` : `Port ${port}`;
115
- // handle specific listen errors with friendly messages
116
- switch(error.code){
117
- case 'EACCES':
118
- console.error(`${bind} requires elevated privileges`);
119
- process.exit(1);
120
- case 'EADDRINUSE':
121
- console.error(`${bind} is already in use`);
122
- process.exit(1);
123
- default:
124
- throw error;
125
- }
126
- };
127
- };
128
- /**
129
- * Event listener for HTTP server "listening" event.
130
- */ const $55ceba8bebac8f81$var$onListening = (server)=>{
131
- return ()=>{
132
- const addr = server.address();
133
- const bind = typeof addr === 'string' ? `pipe ${addr}` : `port ${addr.port}`;
134
- console.log(`%c Honey Server started on ${bind} `, 'background: #222; color: #bada55; font-size: 32px');
135
- };
136
- };
137
- class $55ceba8bebac8f81$var$ExpressApp {
138
- constructor(port, metadata){
139
- this.metadata = metadata;
140
- this.app = (0, ($parcel$interopDefault($3IFKa$express)))();
141
- this.appRoutes = (0, ($parcel$interopDefault($3IFKa$express))).Router();
142
- this.fallbackErrMessage = 'Endpoint does not exist';
143
- this.routePrefix = '/api';
144
- this.fallbackErrMessage = this.metadata?.fallbackErrorMessage || this.fallbackErrMessage;
145
- this.routePrefix = this.metadata?.routePrefix || this.routePrefix;
146
- this.initMiddlewares();
147
- this.setupErrorFallback();
148
- this.app.set('port', port);
149
- }
150
- listen() {
151
- (0, ($parcel$interopDefault($3IFKa$expressoasgenerator))).handleRequests();
152
- const port = Number(this.app.get('port'));
153
- const server = this.app.listen(port);
154
- server.on('error', $55ceba8bebac8f81$var$onError(port));
155
- server.on('listening', $55ceba8bebac8f81$var$onListening(server));
156
- }
157
- initMiddlewares() {
158
- const corsOptions = {
159
- origin: '*',
160
- methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
161
- allowedHeaders: '*',
162
- exposedHeaders: '*',
163
- credentials: true,
164
- optionsSuccessStatus: 204
165
- };
166
- (0, ($parcel$interopDefault($3IFKa$expressoasgenerator))).handleResponses(this.app, {});
167
- this.app.use((0, ($parcel$interopDefault($3IFKa$morgan)))('dev'));
168
- this.app.use((0, ($parcel$interopDefault($3IFKa$cors)))(corsOptions));
169
- this.app.use((0, ($parcel$interopDefault($3IFKa$express))).json({
170
- limit: '50mb',
171
- verify (req, _res, buf) {
172
- req.rawBody = buf;
173
- }
174
- }));
175
- this.app.use((0, ($parcel$interopDefault($3IFKa$express))).urlencoded({
176
- limit: '50mb',
177
- extended: false
178
- }));
179
- this.app.use((0, ($parcel$interopDefault($3IFKa$cookieparser)))());
180
- this.app.use(this.routePrefix, this.appRoutes);
181
- }
182
- setupErrorFallback() {
183
- this.app.use((_, res)=>{
184
- const err = new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)(this.fallbackErrMessage, 404);
185
- return res.status(err.status).json({
186
- message: err.message
187
- });
188
- });
189
- // error handler
190
- this.app.use((err, _, res)=>{
191
- return res.status(err.status || 500).send({
192
- message: 'Something went wrong'
193
- });
194
- });
195
- }
196
- }
197
- var $55ceba8bebac8f81$export$2e2bcd8739ae039 = $55ceba8bebac8f81$var$ExpressApp;
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
- const $016b89c2f40cad11$var$formatters = {
206
- string: String,
207
- number: Number,
208
- boolean: Boolean,
209
- json: JSON.stringify,
210
- object: JSON.stringify
211
- };
212
- const $016b89c2f40cad11$export$957212fbd899d523 = (body, params)=>{
213
- const result = {};
214
- Object.entries(params).forEach(([key, value])=>{
215
- if (value === '@updatedAt') {
216
- result[key] = new Date();
217
- return;
218
- }
219
- if (!Object.keys(body).includes(key)) return;
220
- const formatter = $016b89c2f40cad11$var$formatters[value];
221
- result[key] = formatter && ![
222
- null,
223
- undefined
224
- ].includes(body[key]) ? formatter(body[key]) : body[key];
225
- });
226
- return result;
227
- };
228
- const $016b89c2f40cad11$export$3fde508750f4a353 = (body, params)=>{
229
- const result = Object.entries(params).reduce((acc, [key, value])=>{
230
- if (!Object.keys(body).includes(key) && value !== '@updatedAt') return {
231
- ...acc
232
- };
233
- let formattedValue;
234
- if (value === '@updatedAt') formattedValue = new Date();
235
- else formattedValue = ![
236
- null,
237
- undefined
238
- ].includes(body[key]) ? $016b89c2f40cad11$var$formatters[typeof body[key]](body[key]) : body[key];
239
- return {
240
- ...acc,
241
- [key]: {
242
- value: formattedValue,
243
- operator: value === '@updatedAt' ? 'replace' : value
244
- }
245
- };
246
- }, {});
247
- return result;
248
- };
249
- const $016b89c2f40cad11$var$retrieveParamFromLocation = (req, location, key)=>{
250
- if (location === 'request') return req[key];
251
- return req[location][key];
252
- };
253
- const $016b89c2f40cad11$export$390602d0ccf68ce6 = (filterParams, filter, req)=>{
254
- const result = {};
255
- Object.entries(filter).forEach(([key, param])=>{
256
- if (key === '$or') {
257
- const val = $016b89c2f40cad11$export$390602d0ccf68ce6(filterParams, param, req);
258
- result[key] = val;
259
- } else {
260
- let valueToUse;
261
- if (param.overrideValue) {
262
- if (typeof param.overrideValue === 'function') valueToUse = param.overrideValue(req);
263
- else valueToUse = param.overrideValue;
264
- } else if (!!param.location) valueToUse = $016b89c2f40cad11$var$retrieveParamFromLocation(req, param.location, key);
265
- else valueToUse = filterParams[key];
266
- if (!valueToUse) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)('Missing filter parameter', 400);
267
- const valueFormatter = $016b89c2f40cad11$var$formatters[param.value];
268
- result[key] = {
269
- operator: param.operator,
270
- value: valueFormatter(valueToUse)
271
- };
272
- }
273
- });
274
- return result;
275
- };
276
-
277
-
278
- function $e6033bad46ade8f8$export$2e2bcd8739ae039({ db: db, resource: resource, params: params, message: message, processResponseData: processResponseData, processErrorResponse: processErrorResponse }) {
279
- return async function(req, res, next) {
280
- try {
281
- const body = (0, $016b89c2f40cad11$export$957212fbd899d523)(req.body, params);
282
- const data = await db.create(resource, body);
283
- const id = data[0].id;
284
- res.send({
285
- message: message,
286
- data: req.body.dataOverride || (processResponseData ? await processResponseData({
287
- id: id
288
- }, req) : {
289
- id: id
290
- })
291
- });
292
- next({
293
- message: message,
294
- data: {
295
- id: id
296
- }
297
- });
298
- } catch (error) {
299
- if (processErrorResponse) error = processErrorResponse(error);
300
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
301
- next({
302
- ...error,
303
- isError: true
304
- });
305
- }
306
- };
307
- }
308
-
309
-
310
-
311
-
312
- function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource, fields: fields, idField: idField = 'id', processResponseData: processResponseData, processErrorResponse: processErrorResponse, filterQuery: filterQuery = {} }) {
313
- return async function(req, res, next) {
314
- try {
315
- const id = req.params.id;
316
- const filter = (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.query, filterQuery, req);
317
- const data = await db.read(resource, fields, {
318
- [idField]: {
319
- value: id,
320
- operator: '='
321
- },
322
- ...filter
323
- });
324
- if (!data?.length) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)('Record does not exist', 404);
325
- res.send({
326
- data: processResponseData ? await processResponseData(data[0], req) : data[0]
327
- });
328
- next({
329
- data: data
330
- });
331
- } catch (error) {
332
- if (processErrorResponse) error = processErrorResponse(error);
333
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
334
- next({
335
- ...error,
336
- isError: true
337
- });
338
- }
339
- };
340
- }
341
- function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource, fields: fields, filterQuery: filterQuery, format: format, processResponseData: processResponseData, processErrorResponse: processErrorResponse }) {
342
- return async function(req, res, next) {
343
- try {
344
- const page = Number(req.query.page);
345
- const limit = Number(req.query.limit);
346
- const paginate = limit || page ? {
347
- page: page || 1,
348
- limit: limit || 10
349
- } : undefined;
350
- const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.query, filterQuery, req);
351
- let data = await db.read(resource, fields, filter, paginate, format);
352
- let total = 0;
353
- if (paginate) {
354
- total = Number(data[0]?.['honey_total_count'] || 0);
355
- data = data.map((item)=>{
356
- delete item['honey_total_count'];
357
- return item;
358
- });
359
- }
360
- if (processResponseData) data = await processResponseData(data, req);
361
- else if (!data?.length) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)('No records found', 404);
362
- const response = {
363
- data: data,
364
- meta: {
365
- ...!!paginate && {
366
- pagination: {
367
- total: total,
368
- pageSize: limit,
369
- page: page,
370
- pageCount: Math.ceil(total / limit)
371
- }
372
- }
373
- }
374
- };
375
- res.send(response);
376
- next(response);
377
- } catch (error) {
378
- if (processErrorResponse) error = processErrorResponse(error);
379
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
380
- next({
381
- ...error,
382
- isError: true
383
- });
384
- }
385
- };
386
- }
387
-
388
-
389
-
390
-
391
- function $1d3f139d2d29337d$export$94bae363557b314a({ db: db, resource: resource, params: params, message: message, idField: idField = 'id', processErrorResponse: processErrorResponse, filterQuery: filterQuery = {} }) {
392
- return async function(req, res, next) {
393
- try {
394
- const body = (0, $016b89c2f40cad11$export$3fde508750f4a353)(req.body, params);
395
- const additionalFilter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.body, filterQuery, req);
396
- const filter = {
397
- [idField]: {
398
- operator: '=',
399
- value: req.params.id
400
- },
401
- ...additionalFilter
402
- };
403
- await db.update(resource, body, filter);
404
- res.send({
405
- message: message
406
- });
407
- next({
408
- message: message
409
- });
410
- } catch (error) {
411
- if (processErrorResponse) error = processErrorResponse(error);
412
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
413
- next({
414
- ...error,
415
- isError: true
416
- });
417
- }
418
- };
419
- }
420
- function $1d3f139d2d29337d$export$805408382b623838({ db: db, resource: resource, params: params, message: message, filterQuery: filterQuery, processErrorResponse: processErrorResponse }) {
421
- return async function(req, res, next) {
422
- try {
423
- const body = (0, $016b89c2f40cad11$export$3fde508750f4a353)(req.body, params);
424
- const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.body, filterQuery, req);
425
- await db.update(resource, body, filter);
426
- res.send({
427
- message: message
428
- });
429
- next({
430
- message: message
431
- });
432
- } catch (error) {
433
- if (processErrorResponse) error = processErrorResponse(error);
434
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
435
- next({
436
- ...error,
437
- isError: true
438
- });
439
- }
440
- };
441
- }
442
-
443
-
444
-
445
-
446
- function $389a0330ed47be73$export$d5a9f256d3442907({ db: db, resource: resource, params: params, message: message, idField: idField = 'id', processErrorResponse: processErrorResponse }) {
447
- return async function(req, res, next) {
448
- try {
449
- req.body[idField] = req.params.id;
450
- params = {
451
- ...params,
452
- [idField]: 'replace'
453
- };
454
- const body = (0, $016b89c2f40cad11$export$3fde508750f4a353)(req.body, params);
455
- await db.upsert(resource, body, [
456
- idField
457
- ]);
458
- res.send({
459
- message: message
460
- });
461
- next({
462
- message: message
463
- });
464
- } catch (error) {
465
- if (processErrorResponse) error = processErrorResponse(error);
466
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
467
- next({
468
- ...error,
469
- isError: true
470
- });
471
- }
472
- };
473
- }
474
- function $389a0330ed47be73$export$e94809b3c2751b8b({ db: db, resource: resource, params: params, message: message, conflictTarget: conflictTarget, processErrorResponse: processErrorResponse }) {
475
- return async function(req, res, next) {
476
- try {
477
- const body = (0, $016b89c2f40cad11$export$3fde508750f4a353)(req.body, params);
478
- await db.upsert(resource, body, conflictTarget);
479
- res.send({
480
- message: message
481
- });
482
- next({
483
- message: message
484
- });
485
- } catch (error) {
486
- if (processErrorResponse) error = processErrorResponse(error);
487
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
488
- next({
489
- ...error,
490
- isError: true
491
- });
492
- }
493
- };
494
- }
495
-
496
-
497
-
498
-
499
- function $877c51bd1d8c8e63$export$18d25c756727a4e9({ db: db, resource: resource, message: message, idField: idField = 'id', processErrorResponse: processErrorResponse, filterQuery: filterQuery = {} }) {
500
- return async (req, res, next)=>{
501
- try {
502
- const id = req.params[idField || 'id'];
503
- const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.body, filterQuery, req);
504
- await db.delete(resource, {
505
- [idField]: {
506
- value: id,
507
- operator: '='
508
- },
509
- ...filter
510
- });
511
- res.send({
512
- message: message
513
- });
514
- next({
515
- message: message
516
- });
517
- } catch (error) {
518
- if (processErrorResponse) error = processErrorResponse(error);
519
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
520
- next({
521
- ...error,
522
- isError: true
523
- });
524
- }
525
- };
526
- }
527
- function $877c51bd1d8c8e63$export$4208857769c75f40({ db: db, resource: resource, message: message, processErrorResponse: processErrorResponse, filterQuery: filterQuery }) {
528
- return async (req, res, next)=>{
529
- try {
530
- const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.body, filterQuery, req);
531
- await db.delete(resource, filter);
532
- res.send({
533
- message: message
534
- });
535
- next({
536
- message: message
537
- });
538
- } catch (error) {
539
- if (processErrorResponse) error = processErrorResponse(error);
540
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
541
- next({
542
- ...error,
543
- isError: true
544
- });
545
- }
546
- };
547
- }
548
-
549
-
550
-
551
-
552
- // eslint-disable-next-line
553
- const $e551a6691d3acd09$var$defaultExitMiddleware = (data, req, res, next)=>{
554
- if (process.env.NODE_ENV !== 'production') console.log('Response:', data);
555
- };
556
- class $e551a6691d3acd09$export$2e2bcd8739ae039 {
557
- constructor(express, postgres){
558
- this.express = express;
559
- this.postgres = postgres;
560
- }
561
- get routes() {
562
- return this.express.appRoutes;
563
- }
564
- get db() {
565
- return (0, $279104bade16c452$export$2e2bcd8739ae039).db;
566
- }
567
- crud({ method: method, path: path, controller: controller, middleware: middleware = [], exitMiddleware: exitMiddleware = [
568
- $e551a6691d3acd09$var$defaultExitMiddleware
569
- ] }) {
570
- const dbCheck = async (req, res, next)=>{
571
- if (!(0, $279104bade16c452$export$2e2bcd8739ae039).db) return res.status(503).send({
572
- message: 'DB Initialization in progress'
573
- });
574
- else next();
575
- };
576
- this.express.appRoutes[method](path, dbCheck, ...middleware, controller, ...exitMiddleware);
577
- }
578
- addMiddleware(middleware) {
579
- this.express.appRoutes.use(...middleware);
580
- }
581
- startServer() {
582
- this.express.listen();
583
- }
584
- create({ resource: resource, params: params, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, methodOverride: methodOverride }) {
585
- const path = pathOverride || `/${resource}`;
586
- resource = table || resource;
587
- const controller = (0, $e6033bad46ade8f8$export$2e2bcd8739ae039)({
588
- db: this.postgres,
589
- resource: resource,
590
- params: params,
591
- message: message,
592
- processResponseData: processResponseData,
593
- processErrorResponse: processErrorResponse
594
- });
595
- this.crud({
596
- method: methodOverride || 'post',
597
- path: path,
598
- controller: controller,
599
- middleware: middleware,
600
- exitMiddleware: exitMiddleware
601
- });
602
- }
603
- get({ resource: resource, fields: fields, filter: filter, format: format, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table }) {
604
- const path = pathOverride || `/${resource}`;
605
- resource = table || resource;
606
- const controller = (0, $b1328f4a111bb650$export$7b48d281d65870ad)({
607
- db: this.postgres,
608
- resource: resource,
609
- fields: fields,
610
- filterQuery: filter,
611
- format: format,
612
- processResponseData: processResponseData,
613
- processErrorResponse: processErrorResponse
614
- });
615
- this.crud({
616
- method: methodOverride || 'get',
617
- path: path,
618
- controller: controller,
619
- middleware: middleware,
620
- exitMiddleware: exitMiddleware
621
- });
622
- }
623
- getById({ resource: resource, fields: fields, idField: idField, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, filter: filter }) {
624
- const path = pathOverride || `/${resource}/:id`;
625
- resource = table || resource;
626
- const controller = (0, $b1328f4a111bb650$export$7b6dde2038c44e91)({
627
- db: this.postgres,
628
- resource: resource,
629
- fields: fields,
630
- idField: idField || 'id',
631
- processResponseData: processResponseData,
632
- processErrorResponse: processErrorResponse,
633
- filterQuery: filter
634
- });
635
- this.crud({
636
- method: methodOverride || 'get',
637
- path: path,
638
- controller: controller,
639
- middleware: middleware,
640
- exitMiddleware: exitMiddleware
641
- });
642
- }
643
- updateById({ resource: resource, params: params, idField: idField, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, table: table, filter: filter, processErrorResponse: processErrorResponse }) {
644
- const path = pathOverride || `/${resource}/:id`;
645
- resource = table || resource;
646
- const controller = (0, $1d3f139d2d29337d$export$94bae363557b314a)({
647
- db: this.postgres,
648
- resource: resource,
649
- params: params,
650
- message: message,
651
- idField: idField,
652
- filterQuery: filter,
653
- processErrorResponse: processErrorResponse
654
- });
655
- this.crud({
656
- method: methodOverride || 'put',
657
- path: path,
658
- controller: controller,
659
- middleware: middleware,
660
- exitMiddleware: exitMiddleware
661
- });
662
- }
663
- update({ resource: resource, params: params, filter: filter, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, table: table, processErrorResponse: processErrorResponse }) {
664
- const path = pathOverride || `/${resource}`;
665
- resource = table || resource;
666
- const controller = (0, $1d3f139d2d29337d$export$805408382b623838)({
667
- db: this.postgres,
668
- resource: resource,
669
- params: params,
670
- message: message,
671
- filterQuery: filter,
672
- processErrorResponse: processErrorResponse
673
- });
674
- this.crud({
675
- method: methodOverride || 'put',
676
- path: path,
677
- controller: controller,
678
- middleware: middleware,
679
- exitMiddleware: exitMiddleware
680
- });
681
- }
682
- upsertById({ resource: resource, params: params, idField: idField, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, table: table, processErrorResponse: processErrorResponse }) {
683
- const path = pathOverride || `/${resource}/:id/upsert`;
684
- resource = table || resource;
685
- const controller = (0, $389a0330ed47be73$export$d5a9f256d3442907)({
686
- db: this.postgres,
687
- resource: resource,
688
- params: params,
689
- message: message,
690
- idField: idField,
691
- processErrorResponse: processErrorResponse
692
- });
693
- this.crud({
694
- method: methodOverride || 'put',
695
- path: path,
696
- controller: controller,
697
- middleware: middleware,
698
- exitMiddleware: exitMiddleware
699
- });
700
- }
701
- upsert({ resource: resource, params: params, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, conflictTarget: conflictTarget, table: table, processErrorResponse: processErrorResponse }) {
702
- const path = pathOverride || `/${resource}/:id/upsert`;
703
- resource = table || resource;
704
- const controller = (0, $389a0330ed47be73$export$e94809b3c2751b8b)({
705
- db: this.postgres,
706
- resource: resource,
707
- params: params,
708
- message: message,
709
- conflictTarget: conflictTarget,
710
- processErrorResponse: processErrorResponse
711
- });
712
- this.crud({
713
- method: methodOverride || 'put',
714
- path: path,
715
- controller: controller,
716
- middleware: middleware,
717
- exitMiddleware: exitMiddleware
718
- });
719
- }
720
- deleteById({ resource: resource, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, idField: idField, filter: filter, table: table, processErrorResponse: processErrorResponse }) {
721
- const path = pathOverride || `/${resource}/:id`;
722
- resource = table || resource;
723
- const controller = (0, $877c51bd1d8c8e63$export$18d25c756727a4e9)({
724
- db: this.postgres,
725
- resource: resource,
726
- message: message,
727
- idField: idField,
728
- filterQuery: filter,
729
- processErrorResponse: processErrorResponse
730
- });
731
- this.crud({
732
- method: methodOverride || 'delete',
733
- path: path,
734
- controller: controller,
735
- middleware: middleware,
736
- exitMiddleware: exitMiddleware
737
- });
738
- }
739
- delete({ resource: resource, message: message, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, filter: filter, table: table, processErrorResponse: processErrorResponse }) {
740
- const path = pathOverride || `/${resource}/:id`;
741
- resource = table || resource;
742
- const controller = (0, $877c51bd1d8c8e63$export$4208857769c75f40)({
743
- db: this.postgres,
744
- resource: resource,
745
- message: message,
746
- filterQuery: filter,
747
- processErrorResponse: processErrorResponse
748
- });
749
- this.crud({
750
- method: methodOverride || 'delete',
751
- path: path,
752
- controller: controller,
753
- middleware: middleware,
754
- exitMiddleware: exitMiddleware
755
- });
756
- }
757
- }
758
-
759
-
760
-
761
-
762
-
763
- class $eb35754384d9f185$export$d8ee7b97a871dca3 {
764
- static{
765
- this.instances = new Map();
766
- }
767
- static getInstance(identifier, initFn) {
768
- if (!this.instances.has(identifier) && initFn) this.instances.set(identifier, initFn());
769
- return this.instances.get(identifier);
770
- }
771
- }
772
- function $eb35754384d9f185$export$2e2bcd8739ae039(identifier, initFn) {
773
- return $eb35754384d9f185$export$d8ee7b97a871dca3.getInstance(identifier, initFn);
774
- }
775
-
776
-
777
- function $6eae9231903e3dbe$export$2e2bcd8739ae039(query, params) {
778
- params = params || {};
779
- return (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
780
- ...params,
781
- raw: true
782
- });
783
- }
784
- class $6eae9231903e3dbe$var$ModelCreator {
785
- static{
786
- this.model = {};
787
- }
788
- static createModel(modelName, attributes, options) {
789
- if (!this.model[modelName]) this.model[modelName] = (0, $279104bade16c452$export$2e2bcd8739ae039).db.define(modelName, attributes, options);
790
- return this.model[modelName];
791
- }
792
- }
793
- function $6eae9231903e3dbe$export$2f453c7f7b0d002b(modelName, attributes, options) {
794
- return $6eae9231903e3dbe$var$ModelCreator.createModel.bind($6eae9231903e3dbe$var$ModelCreator)(modelName, attributes, options);
795
- }
796
- const $6eae9231903e3dbe$export$a858f29c02f648c6 = ()=>(0, $eb35754384d9f185$export$2e2bcd8739ae039)('knex', ()=>{
797
- return (0, ($parcel$interopDefault($3IFKa$knex)))({
798
- client: 'pg'
799
- });
800
- });
801
-
802
-
803
- const $6fe5fb6fcb62dbab$export$1b001418845b471c = (query, filter = {})=>{
804
- Object.entries(filter).forEach(([field, data])=>{
805
- if (field === '$or') query.where((builder)=>{
806
- Object.entries(data).forEach(([orField, orData], index)=>{
807
- const method = index === 0 ? 'where' : 'orWhere';
808
- const orParam = orData;
809
- if ([
810
- 'like',
811
- 'not like'
812
- ].includes(orParam.operator)) builder[method](orField, 'ilike', `%${orParam.value}%`);
813
- else builder[method](orField, orParam.operator, orParam.value);
814
- });
815
- });
816
- else {
817
- const param = data;
818
- if ([
819
- 'like',
820
- 'not like'
821
- ].includes(param.operator)) query.where(field, param.operator === 'like' ? 'ilike' : 'not ilike', `%${param.value}%`);
822
- else query.where(field, param.operator, param.value);
823
- }
824
- });
825
- return query;
826
- };
827
- const $6fe5fb6fcb62dbab$export$53b231d60a00019b = (table, data)=>{
828
- const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
829
- const { sql: query, bindings: replacements } = knex(table).insert(data).returning('id').toSQL();
830
- return {
831
- query: query,
832
- replacements: replacements
833
- };
834
- };
835
- const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate, format)=>{
836
- const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
837
- let q = knex(table).select(fields);
838
- // Add total count if pagination is needed
839
- if (paginate) // Using knex.raw to create the count column with the same name as in original code
840
- q = knex(table).select([
841
- ...fields.map((field)=>knex.raw(`?? as ??`, [
842
- field,
843
- field
844
- ])),
845
- knex.raw('count(??) OVER() AS honey_total_count', [
846
- fields[0]
847
- ])
848
- ]);
849
- // Apply filters
850
- if (filter) q = $6fe5fb6fcb62dbab$export$1b001418845b471c(q, filter);
851
- // Apply sorting
852
- if (format?.sort && format.sortField) q.orderBy(format.sortField, format.sort);
853
- // Apply pagination
854
- if (paginate) q.limit(paginate.limit).offset(paginate.limit * (paginate.page - 1));
855
- const { sql: query, bindings: replacements } = q.toSQL();
856
- return {
857
- query: query,
858
- replacements: replacements
859
- };
860
- };
861
- const $6fe5fb6fcb62dbab$export$9234fcbc1f0d2048 = (table, data, filter)=>{
862
- const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
863
- let q = knex(table);
864
- // Build the update object
865
- const updateData = {};
866
- Object.entries(data).forEach(([field, fieldData])=>{
867
- const param = fieldData;
868
- if (param.operator === 'inc') updateData[field] = knex.raw('?? + ?', [
869
- field,
870
- param.value
871
- ]);
872
- else if (param.operator === 'dec') updateData[field] = knex.raw('?? - ?', [
873
- field,
874
- param.value
875
- ]);
876
- else updateData[field] = param.value;
877
- });
878
- // Apply filter conditions
879
- if (filter) q = $6fe5fb6fcb62dbab$export$1b001418845b471c(q, filter);
880
- const { sql: query, bindings: replacements } = q.update(updateData).toSQL();
881
- console.log(query, replacements);
882
- return {
883
- query: query,
884
- replacements: replacements
885
- };
886
- };
887
- const $6fe5fb6fcb62dbab$export$3303c43960743687 = (table, filter)=>{
888
- const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
889
- let q = knex(table);
890
- if (filter) q = $6fe5fb6fcb62dbab$export$1b001418845b471c(q, filter);
891
- const { sql: query, bindings: replacements } = q.delete().toSQL();
892
- return {
893
- query: query,
894
- replacements: replacements
895
- };
896
- };
897
- const $6fe5fb6fcb62dbab$export$65b914f34962db1e = (table, data, conflictTarget)=>{
898
- const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
899
- // Prepare insert data
900
- const insertData = {};
901
- Object.entries(data).forEach(([field, fieldData])=>{
902
- insertData[field] = fieldData.value;
903
- });
904
- // Prepare update data for conflict resolution
905
- const updateData = {};
906
- Object.entries(data).forEach(([field, fieldData])=>{
907
- const param = fieldData;
908
- if (param.operator === 'inc') updateData[field] = knex.raw('?? + ?', [
909
- `${table}.${field}`,
910
- param.value
911
- ]);
912
- else if (param.operator === 'dec') updateData[field] = knex.raw('?? - ?', [
913
- `${table}.${field}`,
914
- param.value
915
- ]);
916
- else updateData[field] = param.value;
917
- });
918
- const { sql: query, bindings: replacements } = knex(table).insert(insertData).onConflict(conflictTarget).merge(updateData).toSQL();
919
- return {
920
- query: query,
921
- replacements: replacements
922
- };
923
- };
924
-
925
-
926
-
927
- class $43b99269306b3d62$export$2e2bcd8739ae039 {
928
- async read(table, fields, filter, paginate, format) {
929
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$60d67f341ad4c4)(table, fields, filter, paginate, format);
930
- const result = await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
931
- type: (0, $3IFKa$sequelize.QueryTypes).SELECT,
932
- raw: true,
933
- replacements: [
934
- ...replacements
935
- ]
936
- });
937
- return result;
938
- }
939
- async create(table, data) {
940
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$53b231d60a00019b)(table, data);
941
- const res = await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
942
- type: (0, $3IFKa$sequelize.QueryTypes).INSERT,
943
- raw: true,
944
- replacements: [
945
- ...replacements
946
- ]
947
- });
948
- // inserted ids
949
- return res[0];
950
- }
951
- async update(table, data, filter) {
952
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$9234fcbc1f0d2048)(table, data, filter);
953
- await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
954
- type: (0, $3IFKa$sequelize.QueryTypes).UPDATE,
955
- raw: true,
956
- replacements: [
957
- ...replacements
958
- ]
959
- });
960
- }
961
- async delete(table, filter) {
962
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$3303c43960743687)(table, filter);
963
- await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
964
- type: (0, $3IFKa$sequelize.QueryTypes).DELETE,
965
- raw: true,
966
- replacements: [
967
- ...replacements
968
- ]
969
- });
970
- }
971
- async upsert(table, data, conflictTarget) {
972
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$65b914f34962db1e)(table, data, conflictTarget);
973
- await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
974
- type: (0, $3IFKa$sequelize.QueryTypes).INSERT,
975
- raw: true,
976
- replacements: [
977
- ...replacements
978
- ]
979
- });
980
- }
981
- }
982
-
983
-
984
- function $e3f949bd939b0c31$export$21d1ad8451a259af(val) {
985
- const port = parseInt(val, 10);
986
- if (isNaN(port)) // named pipe
987
- return val;
988
- if (port >= 0) // port number
989
- return port;
990
- throw new Error('Invalid port number');
991
- }
992
-
993
-
994
-
995
-
996
-
997
- const $e0429c84bb00f9a2$export$3b8deecb09f1ff23 = (schema, location = 'body', options = {
998
- allowUnknown: true
999
- })=>async (req, res, next)=>{
1000
- try {
1001
- const validationResult = schema.validate(req[location], options);
1002
- const validationError = validationResult.error?.message;
1003
- if (validationError) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)(validationError, 422);
1004
- return next();
1005
- } catch (error) {
1006
- (0, $2a1659c6c3bea4d7$export$cd2b46e1ebe8182d)(error, res);
1007
- }
1008
- };
1009
- var $e0429c84bb00f9a2$export$2e2bcd8739ae039 = $e0429c84bb00f9a2$export$3b8deecb09f1ff23;
1010
-
1011
-
1012
- process.on('SIGINT', ()=>{
1013
- // process reload ongoing
1014
- // close connections, clear cache, etc
1015
- // by default, you have 1600ms
1016
- process.exit(0);
1017
- });
1018
- function $c742f52b4af459bc$export$f375e35cdf499ccf(port, dbOptions, metadata) {
1019
- new (0, $279104bade16c452$export$2e2bcd8739ae039)(dbOptions);
1020
- const portVal = (0, $e3f949bd939b0c31$export$21d1ad8451a259af)(port || process.env.PORT || '3000');
1021
- const express = new (0, $55ceba8bebac8f81$export$2e2bcd8739ae039)(portVal, metadata);
1022
- const postgres = new (0, $43b99269306b3d62$export$2e2bcd8739ae039)();
1023
- const honey = new (0, $e551a6691d3acd09$export$2e2bcd8739ae039)(express, postgres);
1024
- return honey;
1025
- }
1026
- const $c742f52b4af459bc$export$acd55aa037e791bb = (0, $279104bade16c452$export$2e2bcd8739ae039).defineModel.bind((0, $279104bade16c452$export$2e2bcd8739ae039));
1027
- function $c742f52b4af459bc$var$getQueryTypes() {
1028
- const { SELECT: SELECT, INSERT: INSERT, UPDATE: UPDATE, DELETE: DELETE, RAW: RAW, UPSERT: UPSERT } = (0, $3IFKa$sequelize.QueryTypes);
1029
- const exposedTypes = {
1030
- SELECT: SELECT,
1031
- INSERT: INSERT,
1032
- UPDATE: UPDATE,
1033
- DELETE: DELETE,
1034
- RAW: RAW,
1035
- UPSERT: UPSERT
1036
- };
1037
- return exposedTypes;
1038
- }
1039
- const $c742f52b4af459bc$export$9e0271c08bde0a49 = $c742f52b4af459bc$var$getQueryTypes();
1040
- $parcel$exportWildcard(module.exports, $3IFKa$sequelize);
1041
-
1042
-
1043
- //# sourceMappingURL=index.js.map