@creator.co/wapi 1.2.10 → 1.2.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.2.10",
3
+ "version": "1.2.12",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,6 +34,7 @@
34
34
  "json-stringify-safe": "^5.0.1",
35
35
  "jsonwebtoken": "^9.0.2",
36
36
  "knex": "^3.0.1",
37
+ "knex-stringcase": "^1.4.6",
37
38
  "node-cache": "^5.1.2",
38
39
  "object-hash": "^3.0.0",
39
40
  "parse-duration": "^1.1.0",
@@ -15,10 +15,10 @@ export default class Utils {
15
15
  static isValidString(string: string): boolean;
16
16
  /**
17
17
  * Parses a string into an integer and returns null if the string is not a valid number.
18
- * @param {string} string - The string to parse into an integer.
18
+ * @param {string} str - The string to parse into an integer.
19
19
  * @returns {number | null} - The parsed integer or null if the string is not a valid number.
20
20
  */
21
- static parseIntNullIfNaN(string: string): number | null;
21
+ static parseIntNullIfNaN(str?: string): number | null;
22
22
  /**
23
23
  * Parses a JSON string and returns the resulting object. If the string is empty or
24
24
  * cannot be parsed, null is returned.
@@ -23,11 +23,11 @@ var Utils = /** @class */ (function () {
23
23
  };
24
24
  /**
25
25
  * Parses a string into an integer and returns null if the string is not a valid number.
26
- * @param {string} string - The string to parse into an integer.
26
+ * @param {string} str - The string to parse into an integer.
27
27
  * @returns {number | null} - The parsed integer or null if the string is not a valid number.
28
28
  */
29
- Utils.parseIntNullIfNaN = function (string) {
30
- var n = parseInt(string);
29
+ Utils.parseIntNullIfNaN = function (str) {
30
+ var n = parseInt(str || '');
31
31
  return isNaN(n) ? null : n;
32
32
  };
33
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/API/Utils.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH;IAAA;IAwEA,CAAC;IAvEC;;;OAGG;IACW,2BAAqB,GAAnC;QACE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACW,mBAAa,GAA3B,UAA4B,MAAc;QACxC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;;OAIG;IACW,uBAAiB,GAA/B,UAAgC,MAAc;QAC5C,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACW,4BAAsB,GAApC,UAAqC,MAA0B;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI;YACF,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAA;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,WAAW;SACZ;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;OAIG;IACW,mBAAa,GAA3B,UAA4B,MAAc;QACxC,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI;YACF,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;SAClD;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACW,iCAA2B,GAAzC,UAA0C,GAAQ,EAAE,GAAW;QAC7D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAArC,CAAqC,CAAC,CAAA;QACxF,IAAI,cAAc,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IACH,YAAC;AAAD,CAAC,AAxED,IAwEC"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/API/Utils.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH;IAAA;IAwEA,CAAC;IAvEC;;;OAGG;IACW,2BAAqB,GAAnC;QACE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACW,mBAAa,GAA3B,UAA4B,MAAc;QACxC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;;OAIG;IACW,uBAAiB,GAA/B,UAAgC,GAAY;QAC1C,IAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACW,4BAAsB,GAApC,UAAqC,MAA0B;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI;YACF,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAA;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,WAAW;SACZ;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;OAIG;IACW,mBAAa,GAA3B,UAA4B,MAAc;QACxC,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI;YACF,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;SAClD;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACW,iCAA2B,GAAzC,UAA0C,GAAQ,EAAE,GAAW;QAC7D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAArC,CAAqC,CAAC,CAAA;QACxF,IAAI,cAAc,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IACH,YAAC;AAAD,CAAC,AAxED,IAwEC"}
@@ -52,7 +52,7 @@ export default class EnvironmentVar<T> {
52
52
  * Resolves the value based on the environment type.
53
53
  * @returns {Promise<any>} - The resolved value.
54
54
  */
55
- resolve(): Promise<T>;
55
+ resolve(): Promise<T | undefined>;
56
56
  /**
57
57
  * Retrieves the value of a local environment variable.
58
58
  * @returns {T} - The value of the local environment variable.
@@ -26,7 +26,7 @@ export default class JWT {
26
26
  * The default expiration time for a cache entry.
27
27
  * @type {string}
28
28
  */
29
- private readonly defaultExpiration;
29
+ private readonly defaultExpiration?;
30
30
  /**
31
31
  * Constructs a new instance of the class.
32
32
  * @param {string} tokenSecret - The secret used to sign the tokens.
@@ -14,6 +14,7 @@ export declare class KnexDatabase extends Database<KnexTransaction> {
14
14
  * @returns None
15
15
  */
16
16
  constructor(config: DbConfig<'knex'>);
17
+ private constructConfig;
17
18
  /**
18
19
  * Initiates a transaction using the underlying database client.
19
20
  * @returns {Promise<KnexTransaction>} A promise that resolves to a KnexTransaction object representing the transaction.
@@ -53,6 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.KnexDatabase = void 0;
55
55
  var knex_1 = require("knex");
56
+ var knexStringcase = require("knex-stringcase");
56
57
  var KnexTransaction_1 = require("./KnexTransaction");
57
58
  var Database_1 = require("../../Database");
58
59
  /**
@@ -68,7 +69,11 @@ var KnexDatabase = /** @class */ (function (_super) {
68
69
  */
69
70
  function KnexDatabase(config) {
70
71
  var _this = _super.call(this, config) || this;
71
- _this.client = KnexDatabase.knexProvider({
72
+ _this.client = KnexDatabase.knexProvider(_this.constructConfig(config));
73
+ return _this;
74
+ }
75
+ KnexDatabase.prototype.constructConfig = function (config) {
76
+ var knexConfig = {
72
77
  client: config.driver,
73
78
  connection: {
74
79
  host: config.host,
@@ -81,9 +86,9 @@ var KnexDatabase = /** @class */ (function (_super) {
81
86
  min: 1,
82
87
  max: config.maxConnections,
83
88
  },
84
- });
85
- return _this;
86
- }
89
+ };
90
+ return config.convertCamelToSnake ? knexStringcase(knexConfig) : knexConfig;
91
+ };
87
92
  /**
88
93
  * Initiates a transaction using the underlying database client.
89
94
  * @returns {Promise<KnexTransaction>} A promise that resolves to a KnexTransaction object representing the transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"KnexDatabase.js","sourceRoot":"","sources":["../../../../../src/Database/integrations/knex/KnexDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAiC;AAEjC,qDAAwE;AACxE,2CAAyC;AAGzC;;;GAGG;AACH;IAAkC,gCAAyB;IAKzD;;;;OAIG;IACH,sBAAmB,MAAwB;QAA3C,YACE,kBAAM,MAAM,CAAC,SAed;QAdC,KAAI,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,MAAM,CAAC,cAAc;aAC3B;SACF,CAAC,CAAA;;IACJ,CAAC;IAED;;;OAGG;IACmB,kCAAW,GAAjC;;;;;4BACmB,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAA;;wBAA1C,QAAQ,GAAG,SAA+B;wBAChD,sBAAO,qCAAmB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;;;KACxD;IAlCc,yBAAY,GAAiE,cAAI,CAAA;IAmClG,mBAAC;CAAA,AApCD,CAAkC,mBAAQ,GAoCzC;AApCY,oCAAY"}
1
+ {"version":3,"file":"KnexDatabase.js","sourceRoot":"","sources":["../../../../../src/Database/integrations/knex/KnexDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAiC;AACjC,gDAAiD;AAEjD,qDAAwE;AACxE,2CAAyC;AAGzC;;;GAGG;AACH;IAAkC,gCAAyB;IAKzD;;;;OAIG;IACH,sBAAmB,MAAwB;QAA3C,YACE,kBAAM,MAAM,CAAC,SAGd;QADC,KAAI,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;;IACvE,CAAC;IAEO,sCAAe,GAAvB,UAAwB,MAAwB;QAC9C,IAAM,UAAU,GAAG;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,MAAM,CAAC,cAAc;aAC3B;SACF,CAAA;QAED,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC7E,CAAC;IAED;;;OAGG;IACmB,kCAAW,GAAjC;;;;;4BACmB,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAA;;wBAA1C,QAAQ,GAAG,SAA+B;wBAChD,sBAAO,qCAAmB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;;;KACxD;IAzCc,yBAAY,GAAiE,cAAI,CAAA;IA0ClG,mBAAC;CAAA,AA3CD,CAAkC,mBAAQ,GA2CzC;AA3CY,oCAAY"}
@@ -32,7 +32,7 @@ export default class Mailer {
32
32
  * @param {string} [optionalReplyTo] - The optional reply-to address for the email.
33
33
  * @param {any[]} [optionalAttachments] - The optional attachments to include
34
34
  */
35
- sendRawEmail(to: string | Array<string>, htmlMessage: string, subject: string, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<any>;
35
+ sendRawEmail(to: string | Array<string>, htmlMessage: string, subject: string, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<null>;
36
36
  /**
37
37
  * Sends a templated email to the specified recipients.
38
38
  * @param {string | Array<string>} to - The email address(es) of the recipient(s).
@@ -43,7 +43,7 @@ export default class Mailer {
43
43
  * @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
44
44
  * @param {any[]} [optionalAttachments] - An array
45
45
  */
46
- sendTemplatedEmail(to: string | Array<string>, templates: string | Array<string>, data: object, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<any>;
46
+ sendTemplatedEmail(to: string | Array<string>, templates: string | Array<string>, data: object, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<null>;
47
47
  /**
48
48
  * Creates a new SMTP transporter for sending emails using NodeMailer.
49
49
  * @param {string} host - The SMTP server host.
@@ -1 +1 @@
1
- {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["../../../src/Server/RouteResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["../../../src/Server/RouteResolver.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,4 @@ export declare function parseMultiValueQueryStringParameters(url: string): any;
11
11
  */
12
12
  export declare function parseQueryStringParameters(url: any): {
13
13
  [k: string]: string;
14
- };
14
+ } | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.2.10",
3
+ "version": "1.2.12",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,6 +34,7 @@
34
34
  "json-stringify-safe": "^5.0.1",
35
35
  "jsonwebtoken": "^9.0.2",
36
36
  "knex": "^3.0.1",
37
+ "knex-stringcase": "^1.4.6",
37
38
  "node-cache": "^5.1.2",
38
39
  "object-hash": "^3.0.0",
39
40
  "parse-duration": "^1.1.0",
package/src/API/Utils.ts CHANGED
@@ -21,11 +21,11 @@ export default class Utils {
21
21
 
22
22
  /**
23
23
  * Parses a string into an integer and returns null if the string is not a valid number.
24
- * @param {string} string - The string to parse into an integer.
24
+ * @param {string} str - The string to parse into an integer.
25
25
  * @returns {number | null} - The parsed integer or null if the string is not a valid number.
26
26
  */
27
- public static parseIntNullIfNaN(string: string): number | null {
28
- const n = parseInt(string)
27
+ public static parseIntNullIfNaN(str?: string): number | null {
28
+ const n = parseInt(str || '')
29
29
  return isNaN(n) ? null : n
30
30
  }
31
31
 
package/src/Crypto/JWT.ts CHANGED
@@ -27,7 +27,7 @@ export default class JWT {
27
27
  * The default expiration time for a cache entry.
28
28
  * @type {string}
29
29
  */
30
- private readonly defaultExpiration: string
30
+ private readonly defaultExpiration?: string
31
31
 
32
32
  /**
33
33
  * Constructs a new instance of the class.
@@ -1,4 +1,5 @@
1
1
  import knex, { Knex } from 'knex'
2
+ import * as knexStringcase from 'knex-stringcase'
2
3
 
3
4
  import { KnexTransaction, KnexTransactionImpl } from './KnexTransaction'
4
5
  import { Database } from '../../Database'
@@ -20,7 +21,12 @@ export class KnexDatabase extends Database<KnexTransaction> {
20
21
  */
21
22
  public constructor(config: DbConfig<'knex'>) {
22
23
  super(config)
23
- this.client = KnexDatabase.knexProvider({
24
+
25
+ this.client = KnexDatabase.knexProvider(this.constructConfig(config))
26
+ }
27
+
28
+ private constructConfig(config: DbConfig<'knex'>) {
29
+ const knexConfig = {
24
30
  client: config.driver,
25
31
  connection: {
26
32
  host: config.host,
@@ -33,7 +39,9 @@ export class KnexDatabase extends Database<KnexTransaction> {
33
39
  min: 1,
34
40
  max: config.maxConnections,
35
41
  },
36
- })
42
+ }
43
+
44
+ return config.convertCamelToSnake ? knexStringcase(knexConfig) : knexConfig
37
45
  }
38
46
 
39
47
  /**
@@ -34,9 +34,10 @@ export type DatabaseTransactionType<Type extends DatabaseType> =
34
34
  * @property {string} database - The name of the database to connect to.
35
35
  * @property {boolean} autoCommit - Whether or not to automatically commit transactions.
36
36
  * @property {number} maxConnections - The maximum number of connections to the database.
37
+ * @property {boolean} [convertCamelToSnake] - Whether or not to convert camel case to snake case for column names.
37
38
  * @returns The transaction type associated with the specified database type.
38
39
  */
39
- export interface DbConfig<S extends DatabaseType> {
40
+ export type DbConfig<S extends DatabaseType> = {
40
41
  type: S
41
42
  driver: string
42
43
  host: string
@@ -46,4 +47,8 @@ export interface DbConfig<S extends DatabaseType> {
46
47
  database: string
47
48
  autoCommit: boolean
48
49
  maxConnections: number
49
- }
50
+ } & (S extends 'knex'
51
+ ? {
52
+ convertCamelToSnake?: boolean
53
+ }
54
+ : any)
@@ -205,7 +205,7 @@ export default class Mailer {
205
205
  * @returns {Promise<boolean>} - A promise that resolves to true if the template was rendered successfully, false otherwise.
206
206
  */
207
207
  public static async renderTemplate(template: string, data: object): Promise<any> {
208
- let validRenderResp = null
208
+ let validRenderResp: string | null = null
209
209
  try {
210
210
  const email = new Email()
211
211
  validRenderResp = await email.render(`${template}`, data)
@@ -113,7 +113,7 @@ export default class RouteResolver {
113
113
  for (const route of config.routes) {
114
114
  const parts = route.path.split('/').filter(p => p.length)
115
115
  this.routes[route.method] = this.routes[route.method] || new Routes()
116
- this.routes[route.method].addRoute(route, parts)
116
+ this.routes[route.method]!.addRoute(route, parts)
117
117
  }
118
118
  }
119
119
  }
@@ -50,4 +50,27 @@ describe('KnexDatabase', () => {
50
50
  expect(trans).toBeInstanceOf(KnexTransactionImpl)
51
51
  expect(trans['delegate']).toBe(mockTrans)
52
52
  })
53
+
54
+ test('KnexDatabase - convert camel to snake', async () => {
55
+ const mockTrans = { a: 'b' } as any
56
+ const mockClient = jest.fn(
57
+ () =>
58
+ ({
59
+ transaction: async () => mockTrans,
60
+ }) as Knex
61
+ )
62
+ KnexDatabase['knexProvider'] = mockClient
63
+
64
+ const underTest = new KnexDatabase({ ...config, convertCamelToSnake: true })
65
+ expect(mockClient).toBeCalledWith({
66
+ ...expectedImplConfig,
67
+ postProcessResponse: expect.any(Function),
68
+ wrapIdentifier: expect.any(Function),
69
+ })
70
+
71
+ const trans = await underTest.transaction()
72
+
73
+ expect(trans).toBeInstanceOf(KnexTransactionImpl)
74
+ expect(trans['delegate']).toBe(mockTrans)
75
+ })
53
76
  })
package/tsconfig.json CHANGED
@@ -14,6 +14,7 @@
14
14
  "sourceMap": true,
15
15
  "target": "es5",
16
16
  "outDir": "dist",
17
- "declaration": true
17
+ "declaration": true,
18
+ "strictNullChecks": true
18
19
  }
19
20
  }