@creator.co/wapi 1.7.5-alpha1 → 1.7.5-alpha3

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.d.ts CHANGED
@@ -2,7 +2,7 @@ import { HttpMethod } from './src/API/Request.js';
2
2
  import Response, { ResponseErrorType } from './src/API/Response.js';
3
3
  import EventProcessor from './src/BaseEvent/EventProcessor.js';
4
4
  import Process from './src/BaseEvent/Process.js';
5
- import Transaction from './src/BaseEvent/Transaction.js';
5
+ import Transaction, { TransactionConfig } from './src/BaseEvent/Transaction.js';
6
6
  import Redis from './src/Cache/Redis.js';
7
7
  import Configuration from './src/Config/Configuration.js';
8
8
  import Crypto from './src/Crypto/Crypto.js';
@@ -34,4 +34,4 @@ import Utils from './src/Util/Utils.js';
34
34
  * Database,
35
35
  * }
36
36
  */
37
- export { Transaction, Process, EventProcessor, Router, Mailer, Crypto, JWT, Configuration, Redis, Response, Utils, AsyncSingleton, Route, ResponseErrorType, HttpMethod, Database, };
37
+ export { Transaction, Process, EventProcessor, Router, Mailer, Crypto, JWT, Configuration, Redis, Response, Utils, AsyncSingleton, Route, TransactionConfig, ResponseErrorType, HttpMethod, Database, };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,QAA+B,MAAM,uBAAuB,CAAA;AACnE,OAAO,cAAc,MAAM,mCAAmC,CAAA;AAC9D,OAAO,OAAO,MAAM,4BAA4B,CAAA;AAChD,OAAO,WAAW,MAAM,gCAAgC,CAAA;AACxD,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,GAAG,MAAM,qBAAqB,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,MAAiB,MAAM,wBAAwB,CAAA;AACtD,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO;AACL,cAAc;AACd,WAAW,EACX,OAAO,EACP,cAAc,EACd,MAAM;AACN,iCAAiC;AACjC,MAAM,EACN,MAAM,EACN,GAAG,EACH,aAAa,EACb,KAAK;AACL,MAAM;AACN,QAAQ;AACR,UAAU;AACV,KAAK,EACL,cAAc,EAId,UAAU,EACV,QAAQ,GACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,QAA+B,MAAM,uBAAuB,CAAA;AACnE,OAAO,cAAc,MAAM,mCAAmC,CAAA;AAC9D,OAAO,OAAO,MAAM,4BAA4B,CAAA;AAChD,OAAO,WAAkC,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,GAAG,MAAM,qBAAqB,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,MAAiB,MAAM,wBAAwB,CAAA;AACtD,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO;AACL,cAAc;AACd,WAAW,EACX,OAAO,EACP,cAAc,EACd,MAAM;AACN,iCAAiC;AACjC,MAAM,EACN,MAAM,EACN,GAAG,EACH,aAAa,EACb,KAAK;AACL,MAAM;AACN,QAAQ;AACR,UAAU;AACV,KAAK,EACL,cAAc,EAKd,UAAU,EACV,QAAQ,GACT,CAAA"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.7.5-alpha1",
3
+ "version": "1.7.5-alpha3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@creator.co/wapi",
9
- "version": "1.7.5-alpha1",
9
+ "version": "1.7.5-alpha3",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-dynamodb": "^3.574.0",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.7.5-alpha1",
3
+ "version": "1.7.5-alpha3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -2,7 +2,6 @@ import { Database } from './Database.js';
2
2
  import { DatabaseManager } from './DatabaseManager.js';
3
3
  import { DatabaseTransaction } from './DatabaseTransaction.js';
4
4
  import { DynamoDatabase } from './integrations/dynamo/DynamoDatabase.js';
5
- import { DynamoTransaction } from './integrations/dynamo/DynamoTransaction.js';
6
5
  import { KnexDatabase } from './integrations/knex/KnexDatabase.js';
7
6
  import { KnexTransaction } from './integrations/knex/KnexTransaction.js';
8
7
  import { KyselyDatabase } from './integrations/kysely/KyselyDatabase.js';
@@ -10,4 +9,4 @@ import { KyselyTransaction } from './integrations/kysely/KyselyTransaction.js';
10
9
  import { PostgresDatabase } from './integrations/pgsql/PostgresDatabase.js';
11
10
  import { PostgresTransaction } from './integrations/pgsql/PostgresTransaction.js';
12
11
  import { DbConfig } from './types.js';
13
- export { DatabaseTransaction, Database, DatabaseManager, DbConfig, KnexTransaction, KnexDatabase, PostgresTransaction, PostgresDatabase, KyselyTransaction, KyselyDatabase, DynamoTransaction, DynamoDatabase, };
12
+ export { DatabaseTransaction, Database, DatabaseManager, DbConfig, KnexTransaction, KnexDatabase, PostgresTransaction, PostgresDatabase, KyselyTransaction, KyselyDatabase, DynamoDatabase, };
@@ -2,7 +2,7 @@ import { Database } from './Database.js';
2
2
  import { DatabaseManager } from './DatabaseManager.js';
3
3
  import { DatabaseTransaction } from './DatabaseTransaction.js';
4
4
  import { DynamoDatabase } from './integrations/dynamo/DynamoDatabase.js';
5
- import { DynamoTransaction } from './integrations/dynamo/DynamoTransaction.js';
5
+ // import { DynamoTransaction } from './integrations/dynamo/DynamoTransaction.js'
6
6
  import { KnexDatabase } from './integrations/knex/KnexDatabase.js';
7
7
  import { KyselyDatabase } from './integrations/kysely/KyselyDatabase.js';
8
8
  import { PostgresDatabase } from './integrations/pgsql/PostgresDatabase.js';
@@ -12,5 +12,6 @@ DatabaseTransaction, Database,
12
12
  // 'Entrypoints'
13
13
  DatabaseManager, KnexDatabase, PostgresDatabase, KyselyDatabase,
14
14
  // Dynamo
15
- DynamoTransaction, DynamoDatabase, };
15
+ // DynamoTransaction,
16
+ DynamoDatabase, };
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAI3E,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,QAAQ;AACR,gBAAgB;AAChB,eAAe,EAIf,YAAY,EAGZ,gBAAgB,EAGhB,cAAc;AACd,SAAS;AACT,iBAAiB,EACjB,cAAc,GACf,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AACxE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAI3E,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,QAAQ;AACR,gBAAgB;AAChB,eAAe,EAIf,YAAY,EAGZ,gBAAgB,EAGhB,cAAc;AACd,SAAS;AACT,qBAAqB;AACrB,cAAc,GACf,CAAA"}
@@ -1,11 +1,10 @@
1
1
  import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
- import { DynamoTransaction } from './DynamoTransaction.js';
3
2
  import { Database } from '../../Database.js';
4
3
  import type { DbConfig } from '../../types.js';
5
- export declare class DynamoDatabase extends Database<DynamoTransaction> {
4
+ export declare class DynamoDatabase extends Database<any> {
6
5
  private static dynamoProvider;
7
6
  readonly client: DynamoDBClient;
8
7
  constructor(config: DbConfig<'dynamo'>);
9
- transaction(): Promise<DynamoTransaction>;
8
+ transaction(): Promise<any>;
10
9
  private providerFactory;
11
10
  }
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { Agent } from 'https';
11
11
  import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
12
12
  import { NodeHttpHandler } from '@smithy/node-http-handler';
13
- import { DynamoTransaction } from './DynamoTransaction.js';
14
13
  import { Database } from '../../Database.js';
15
14
  export class DynamoDatabase extends Database {
16
15
  constructor(config) {
@@ -19,16 +18,16 @@ export class DynamoDatabase extends Database {
19
18
  }
20
19
  transaction() {
21
20
  return __awaiter(this, void 0, void 0, function* () {
22
- return DynamoTransaction.newTransaction(this.client, this);
21
+ return Promise.resolve(null);
23
22
  });
24
23
  }
25
24
  providerFactory(config) {
26
25
  return new DynamoDatabase.dynamoProvider({
27
26
  region: config.region,
28
- maxAttempts: config.maxAttempts,
27
+ maxAttempts: config.maxAttempts || 3,
29
28
  requestHandler: new NodeHttpHandler({
30
- connectionTimeout: config.connectionTimeout,
31
- socketTimeout: config.connectionTimeout,
29
+ connectionTimeout: config.connectionTimeout || 60,
30
+ socketTimeout: config.connectionTimeout || 60,
32
31
  httpsAgent: new Agent({ keepAlive: false, maxSockets: 50, rejectUnauthorized: true }),
33
32
  }),
34
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DynamoDatabase.js","sourceRoot":"","sources":["../../../../../src/Database/integrations/dynamo/DynamoDatabase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,MAAM,OAAO,cAAe,SAAQ,QAA2B;IAI7D,YAAmB,MAA0B;QAC3C,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAEqB,WAAW;;YAC/B,OAAO,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;KAAA;IAEO,eAAe,CAAC,MAA0B;QAChD,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,IAAI,eAAe,CAAC;gBAClC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,aAAa,EAAE,MAAM,CAAC,iBAAiB;gBACvC,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aACtF,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;;AAtBc,6BAAc,GAAG,cAAc,CAAA"}
1
+ {"version":3,"file":"DynamoDatabase.js","sourceRoot":"","sources":["../../../../../src/Database/integrations/dynamo/DynamoDatabase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,MAAM,OAAO,cAAe,SAAQ,QAAa;IAI/C,YAAmB,MAA0B;QAC3C,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAEqB,WAAW;;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;KAAA;IAEO,eAAe,CAAC,MAA0B;QAChD,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;YACpC,cAAc,EAAE,IAAI,eAAe,CAAC;gBAClC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;gBACjD,aAAa,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;gBAC7C,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aACtF,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;;AAtBc,6BAAc,GAAG,cAAc,CAAA"}
@@ -83,10 +83,18 @@ export default class RouteResolver {
83
83
  * @returns None
84
84
  */
85
85
  buildRoutes(config) {
86
- for (const route of config.routes) {
87
- const parts = route.path.split('/').filter(p => p.length);
86
+ const addRoute = (path, route) => {
87
+ const parts = path.split('/').filter(p => p.length);
88
88
  this.routes[route.method] = this.routes[route.method] || new Routes();
89
89
  this.routes[route.method].addRoute(route, parts);
90
+ };
91
+ for (const route of config.routes) {
92
+ if (Array.isArray(route.path)) {
93
+ for (const path of route.path)
94
+ addRoute(path, route);
95
+ }
96
+ else
97
+ addRoute(route.path, route);
90
98
  }
91
99
  }
92
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["../../../src/Server/RouteResolver.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM;IAkBV;;;OAGG;IACH;QACE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;IAChB,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,KAAe,EAAE,KAAe;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,MAAM,EAAE,CAAA;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAA;gBACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;YAEpF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,KAAe;;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAC7C,CAAC;YACD,OAAO,MAAA,IAAI,CAAC,QAAQ,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAQhC;;;;OAIG;IACH,YAAqB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,MAAkB,EAAE,IAAY;;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,MAAoB;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAA;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["../../../src/Server/RouteResolver.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export interface Route<InputType = never, OutputType = never, PathParamsType = S
22
22
  * @param {string} path - The file path.
23
23
  * @returns None
24
24
  */
25
- path: string;
25
+ path: string | string[];
26
26
  /**
27
27
  * Represents the method used in an API request.
28
28
  * @type {string}
@@ -59,7 +59,7 @@ export default class Server {
59
59
  return validationResp;
60
60
  }
61
61
  // parse before validating
62
- this.parsePathParams(request, route.path);
62
+ this.parsePathParams(request, Array.isArray(route.path) ? route.path[0] : route.path);
63
63
  // Validate path
64
64
  if (route.pathSchema) {
65
65
  const validationResp = Validator.validateSchema(request.getPathParams(), route.pathSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Server/lib/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Server/lib/Server.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -2,7 +2,7 @@ import { HttpMethod } from './src/API/Request.js'
2
2
  import Response, { ResponseErrorType } from './src/API/Response.js'
3
3
  import EventProcessor from './src/BaseEvent/EventProcessor.js'
4
4
  import Process from './src/BaseEvent/Process.js'
5
- import Transaction from './src/BaseEvent/Transaction.js'
5
+ import Transaction, { TransactionConfig } from './src/BaseEvent/Transaction.js'
6
6
  import Redis from './src/Cache/Redis.js'
7
7
  import Configuration from './src/Config/Configuration.js'
8
8
  import Crypto from './src/Crypto/Crypto.js'
@@ -53,6 +53,7 @@ export {
53
53
  Utils,
54
54
  AsyncSingleton,
55
55
  Route,
56
+ TransactionConfig,
56
57
  // Misc types
57
58
  ResponseErrorType,
58
59
  HttpMethod,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.7.5-alpha1",
3
+ "version": "1.7.5-alpha3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -2,7 +2,7 @@ import { Database } from './Database.js'
2
2
  import { DatabaseManager } from './DatabaseManager.js'
3
3
  import { DatabaseTransaction } from './DatabaseTransaction.js'
4
4
  import { DynamoDatabase } from './integrations/dynamo/DynamoDatabase.js'
5
- import { DynamoTransaction } from './integrations/dynamo/DynamoTransaction.js'
5
+ // import { DynamoTransaction } from './integrations/dynamo/DynamoTransaction.js'
6
6
  import { KnexDatabase } from './integrations/knex/KnexDatabase.js'
7
7
  import { KnexTransaction } from './integrations/knex/KnexTransaction.js'
8
8
  import { KyselyDatabase } from './integrations/kysely/KyselyDatabase.js'
@@ -28,6 +28,6 @@ export {
28
28
  KyselyTransaction,
29
29
  KyselyDatabase,
30
30
  // Dynamo
31
- DynamoTransaction,
31
+ // DynamoTransaction,
32
32
  DynamoDatabase,
33
33
  }
@@ -3,11 +3,10 @@ import { Agent } from 'https'
3
3
  import { DynamoDBClient } from '@aws-sdk/client-dynamodb'
4
4
  import { NodeHttpHandler } from '@smithy/node-http-handler'
5
5
 
6
- import { DynamoTransaction } from './DynamoTransaction.js'
7
6
  import { Database } from '../../Database.js'
8
7
  import type { DbConfig } from '../../types.js'
9
8
 
10
- export class DynamoDatabase extends Database<DynamoTransaction> {
9
+ export class DynamoDatabase extends Database<any> {
11
10
  private static dynamoProvider = DynamoDBClient
12
11
  public readonly client: DynamoDBClient
13
12
 
@@ -16,17 +15,17 @@ export class DynamoDatabase extends Database<DynamoTransaction> {
16
15
  this.client = this.providerFactory(config)
17
16
  }
18
17
 
19
- public override async transaction(): Promise<DynamoTransaction> {
20
- return DynamoTransaction.newTransaction(this.client, this)
18
+ public override async transaction(): Promise<any> {
19
+ return Promise.resolve(null)
21
20
  }
22
21
 
23
22
  private providerFactory(config: DbConfig<'dynamo'>) {
24
23
  return new DynamoDatabase.dynamoProvider({
25
24
  region: config.region,
26
- maxAttempts: config.maxAttempts,
25
+ maxAttempts: config.maxAttempts || 3,
27
26
  requestHandler: new NodeHttpHandler({
28
- connectionTimeout: config.connectionTimeout,
29
- socketTimeout: config.connectionTimeout,
27
+ connectionTimeout: config.connectionTimeout || 60,
28
+ socketTimeout: config.connectionTimeout || 60,
30
29
  httpsAgent: new Agent({ keepAlive: false, maxSockets: 50, rejectUnauthorized: true }),
31
30
  }),
32
31
  })
@@ -110,10 +110,15 @@ export default class RouteResolver {
110
110
  * @returns None
111
111
  */
112
112
  private buildRoutes(config: RouterConfig): void {
113
- for (const route of config.routes) {
114
- const parts = route.path.split('/').filter(p => p.length)
113
+ const addRoute = (path: string, route: AnyRoute) => {
114
+ const parts = path.split('/').filter(p => p.length)
115
115
  this.routes[route.method] = this.routes[route.method] || new Routes()
116
116
  this.routes[route.method]!.addRoute(route, parts)
117
117
  }
118
+ for (const route of config.routes) {
119
+ if (Array.isArray(route.path)) {
120
+ for (const path of route.path) addRoute(path, route)
121
+ } else addRoute(route.path, route)
122
+ }
118
123
  }
119
124
  }
@@ -36,7 +36,7 @@ export interface Route<
36
36
  * @param {string} path - The file path.
37
37
  * @returns None
38
38
  */
39
- path: string
39
+ path: string | string[]
40
40
  /**
41
41
  * Represents the method used in an API request.
42
42
  * @type {string}
@@ -76,7 +76,7 @@ export default class Server {
76
76
  }
77
77
 
78
78
  // parse before validating
79
- this.parsePathParams(request, route.path)
79
+ this.parsePathParams(request, Array.isArray(route.path) ? route.path[0] : route.path)
80
80
  // Validate path
81
81
  if (route.pathSchema) {
82
82
  const validationResp = Validator.validateSchema(request.getPathParams(), route.pathSchema)
@@ -1,29 +0,0 @@
1
- import { DynamoDBClient } from '@aws-sdk/client-dynamodb'
2
-
3
- import { DynamoDatabase } from './DynamoDatabase.js'
4
- import { DatabaseTransaction } from '../../DatabaseTransaction.js'
5
-
6
- export class DynamoTransaction extends DatabaseTransaction {
7
- public readonly writer: DynamoDBClient
8
- protected database: DynamoDatabase
9
- private constructor(writer: DynamoDBClient, database: DynamoDatabase) {
10
- super(writer, database)
11
- }
12
-
13
- public static async newTransaction(
14
- writer: DynamoDBClient,
15
- database: DynamoDatabase
16
- ): Promise<DynamoTransaction> {
17
- const tx = new DynamoTransaction(writer, database)
18
- await tx.begin() // defaults to opened
19
- return DatabaseTransaction.proxyInstance(tx) as any
20
- }
21
-
22
- protected doBegin = async () => {}
23
- protected doCommit = () => {
24
- return Promise.resolve()
25
- }
26
- protected doRollback = () => {
27
- return Promise.resolve()
28
- }
29
- }