linker-api 1.0.0

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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/dist/lib/config/link-config.js +30 -0
  3. package/dist/lib/config/link-config.js.map +1 -0
  4. package/dist/lib/database/database.js +61 -0
  5. package/dist/lib/database/database.js.map +1 -0
  6. package/dist/lib/database/mssql.js +72 -0
  7. package/dist/lib/database/mssql.js.map +1 -0
  8. package/dist/lib/database/mssql2.js +83 -0
  9. package/dist/lib/database/mssql2.js.map +1 -0
  10. package/dist/lib/database/prepare-call.js +45 -0
  11. package/dist/lib/database/prepare-call.js.map +1 -0
  12. package/dist/lib/database/prepared-stmt.js +92 -0
  13. package/dist/lib/database/prepared-stmt.js.map +1 -0
  14. package/dist/lib/database/schema/common-schema.js +81 -0
  15. package/dist/lib/database/schema/common-schema.js.map +1 -0
  16. package/dist/lib/database/schema/common-service.js +258 -0
  17. package/dist/lib/database/schema/common-service.js.map +1 -0
  18. package/dist/lib/database/schema/table-catelog.js +74 -0
  19. package/dist/lib/database/schema/table-catelog.js.map +1 -0
  20. package/dist/lib/database/transaction.js +18 -0
  21. package/dist/lib/database/transaction.js.map +1 -0
  22. package/dist/lib/dispatcher/health-service.js +135 -0
  23. package/dist/lib/dispatcher/health-service.js.map +1 -0
  24. package/dist/lib/dispatcher/i-dispatcher.js +191 -0
  25. package/dist/lib/dispatcher/i-dispatcher.js.map +1 -0
  26. package/dist/lib/dispatcher/table-catelog.js +74 -0
  27. package/dist/lib/dispatcher/table-catelog.js.map +1 -0
  28. package/dist/lib/factory/factory.js +67 -0
  29. package/dist/lib/factory/factory.js.map +1 -0
  30. package/dist/public-api.js +21 -0
  31. package/dist/public-api.js.map +1 -0
  32. package/package.json +31 -0
  33. package/src/lib/config/link-config.ts +28 -0
  34. package/src/lib/database/database.ts +43 -0
  35. package/src/lib/database/mssql.ts +47 -0
  36. package/src/lib/database/mssql2.ts +57 -0
  37. package/src/lib/database/prepare-call.ts +24 -0
  38. package/src/lib/database/prepared-stmt.ts +65 -0
  39. package/src/lib/database/schema/common-schema.ts +77 -0
  40. package/src/lib/database/schema/common-service.ts +204 -0
  41. package/src/lib/database/schema/table-catelog.ts +70 -0
  42. package/src/lib/database/transaction.ts +12 -0
  43. package/src/lib/dispatcher/health-service.ts +83 -0
  44. package/src/lib/dispatcher/i-dispatcher.ts +165 -0
  45. package/src/lib/dispatcher/table-catelog.ts +70 -0
  46. package/src/lib/factory/factory.ts +14 -0
  47. package/src/public-api.ts +5 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # linker-api
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LinkConfig = void 0;
4
+ const oneDay = 1000 * 60 * 60 * 24;
5
+ exports.LinkConfig = {
6
+ CUSTOMER_ID: 'demo-app',
7
+ CONTEXT_PATH: '/demo-api',
8
+ PROD_DB_CONFIGS: {},
9
+ DATABASE_PROVIDER: { id: 'mssql', configID: 'localProsoftConfig' },
10
+ API_SCAN: ["schemas"],
11
+ SESSION_CONFIG: {
12
+ secret: "thisismysecrctekeyfhrgfgrfrty84fwir767",
13
+ saveUninitialized: true,
14
+ cookie: { maxAge: oneDay },
15
+ resave: false
16
+ },
17
+ IS_OAUTH: true,
18
+ //EXCLUSION_URLS:['/oauth/token'],
19
+ SECURITY_CONFIG: {
20
+ audience: 'wury.co.id',
21
+ algorithm: 'RS256',
22
+ issuer: 'api.wury.auth.com',
23
+ accessTokenExpiry: 1800,
24
+ accessTokenSecret: 'XT6PRpRuehFsyMa2',
25
+ refreshTokenExpiry: 1209600,
26
+ refreshTokenSecret: 'JWPVzFWkqGxoE2C2'
27
+ },
28
+ APPS: []
29
+ };
30
+ //# sourceMappingURL=link-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-config.js","sourceRoot":"","sources":["../../../src/lib/config/link-config.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AACrB,QAAA,UAAU,GAAG;IACtB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,WAAW;IACzB,eAAe,EAAC,EACf;IACD,iBAAiB,EAAE,EAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAC,oBAAoB,EAAC;IAC/D,QAAQ,EAAC,CAAC,SAAS,CAAC;IACpB,cAAc,EAAE;QACZ,MAAM,EAAE,wCAAwC;QAChD,iBAAiB,EAAC,IAAI;QACtB,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC1B,MAAM,EAAE,KAAK;KAChB;IACD,QAAQ,EAAE,IAAI;IACd,kCAAkC;IAClC,eAAe,EACf;QACI,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,mBAAmB;QAC3B,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,kBAAkB;QACrC,kBAAkB,EAAE,OAAO;QAC3B,kBAAkB,EAAE,kBAAkB;KACzC;IACD,IAAI,EAAE,EAAE;CACX,CAAA"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Database = void 0;
13
+ const link_config_1 = require("../config/link-config");
14
+ const mssql_1 = require("./mssql");
15
+ class Database {
16
+ constructor() {
17
+ switch (link_config_1.LinkConfig.DATABASE_PROVIDER.id) {
18
+ case 'mssql':
19
+ this.dbase = new mssql_1.Mssql(link_config_1.LinkConfig.PROD_DB_CONFIGS[link_config_1.LinkConfig.DATABASE_PROVIDER.configID]);
20
+ break;
21
+ case 'mysql':
22
+ this.dbase = new mssql_1.Mssql(link_config_1.LinkConfig.PROD_DB_CONFIGS[link_config_1.LinkConfig.DATABASE_PROVIDER.configID]);
23
+ break;
24
+ default:
25
+ this.dbase = new mssql_1.Mssql(link_config_1.LinkConfig.PROD_DB_CONFIGS[link_config_1.LinkConfig.DATABASE_PROVIDER.configID]);
26
+ }
27
+ }
28
+ static find() {
29
+ if (!this.instance)
30
+ this.instance = new Database();
31
+ return this.instance;
32
+ }
33
+ static statement(transaction) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ return this.instance.dbase.statement(transaction);
36
+ });
37
+ }
38
+ static preparedStatement(query, transaction) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ let stmt = yield this.instance.dbase.preparedStatement(query, transaction);
41
+ return stmt;
42
+ });
43
+ }
44
+ static preparedCall(query, transaction) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ let stmt = yield this.instance.dbase.preparedCall(query, transaction);
47
+ return stmt;
48
+ });
49
+ }
50
+ static findTable(name) {
51
+ return this.instance.dbase.findTable(name);
52
+ }
53
+ static findTransaction() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ return this.instance.dbase.findTransaction();
56
+ });
57
+ }
58
+ }
59
+ exports.Database = Database;
60
+ Database.instance = new Database();
61
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/lib/database/database.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,uDAAmD;AACnD,mCAAgC;AAEhC,MAAa,QAAQ;IAGjB;QACI,QAAO,wBAAU,CAAC,iBAAiB,CAAC,EAAE,EAAC,CAAC;YACpC,KAAK,OAAO;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,wBAAU,CAAC,eAAe,CAAC,wBAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1F,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,wBAAU,CAAC,eAAe,CAAC,wBAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1F,MAAM;YACV;gBACI,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,wBAAU,CAAC,eAAe,CAAC,wBAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClG,CAAC;IACL,CAAC;IACD,MAAM,CAAC,IAAI;QACP,IAAG,CAAC,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,MAAM,CAAO,SAAS,CAAC,WAAgB;;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;KAAA;IACD,MAAM,CAAO,iBAAiB,CAAC,KAAY,EAAE,WAAgB;;YACzD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IACD,MAAM,CAAO,YAAY,CAAC,KAAY,EAAE,WAAgB;;YACpD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IACD,MAAM,CAAC,SAAS,CAAC,IAAW;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,CAAO,eAAe;;YACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACjD,CAAC;KAAA;;AApCL,4BAqCC;AApCkB,iBAAQ,GAAY,IAAI,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Mssql = void 0;
16
+ const mssql_1 = __importDefault(require("mssql"));
17
+ const prepare_call_1 = require("./prepare-call");
18
+ const prepared_stmt_1 = require("./prepared-stmt");
19
+ class Mssql {
20
+ constructor(config) {
21
+ this.config = config;
22
+ this.pool = new mssql_1.default.ConnectionPool(config);
23
+ }
24
+ findTransaction() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (!this.pool)
27
+ this.pool = new mssql_1.default.ConnectionPool(this.config);
28
+ yield this.pool.connect();
29
+ const transaction = new mssql_1.default.Transaction(this.pool);
30
+ yield transaction.begin();
31
+ return transaction;
32
+ });
33
+ }
34
+ statement(transaction) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ if (!this.pool)
37
+ this.pool = new mssql_1.default.ConnectionPool(this.config);
38
+ if (!transaction)
39
+ yield this.pool.connect();
40
+ let req = new mssql_1.default.Statement(this.pool);
41
+ return req;
42
+ });
43
+ }
44
+ preparedStatement(query, transaction) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ if (!this.pool)
47
+ this.pool = new mssql_1.default.ConnectionPool(this.config);
48
+ if (!transaction)
49
+ yield this.pool.connect();
50
+ const req = new mssql_1.default.PreparedStatement(this.pool);
51
+ return new prepared_stmt_1.PreparedStmt(req, query, mssql_1.default);
52
+ });
53
+ }
54
+ preparedCall(query, transaction) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ if (!this.pool)
57
+ this.pool = new mssql_1.default.ConnectionPool(this.config);
58
+ let req;
59
+ if (transaction)
60
+ req = new mssql_1.default.Request(transaction.transact);
61
+ else
62
+ req = new mssql_1.default.Request(this.pool);
63
+ return new prepare_call_1.PrepareCall(req, query, mssql_1.default);
64
+ });
65
+ }
66
+ findTable(name) {
67
+ const table = new mssql_1.default.Table(name);
68
+ return table;
69
+ }
70
+ }
71
+ exports.Mssql = Mssql;
72
+ //# sourceMappingURL=mssql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../../src/lib/database/mssql.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAuF;AACvF,iDAA6C;AAC7C,mDAA+C;AAC/C,MAAa,KAAK;IAEd,YAAoB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,eAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACK,eAAe;;YACjB,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,eAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAgB,IAAI,eAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC;QACvB,CAAC;KAAA;IACK,SAAS,CAAC,WAAgB;;YAC5B,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,eAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,IAAG,CAAC,WAAW;gBACX,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,GAAG,GAAa,IAAI,eAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IACK,iBAAiB,CAAC,KAAY,EAAE,WAAgB;;YAClD,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,eAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,IAAG,CAAC,WAAW;gBACX,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAsB,IAAI,eAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,IAAI,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,eAAG,CAAC,CAAC;QAC7C,CAAC;KAAA;IACK,YAAY,CAAC,KAAY,EAAE,WAAgB;;YAC7C,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,eAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,GAAG,CAAC;YACZ,IAAG,WAAW;gBACV,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;gBAE5C,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,IAAI,0BAAW,CAAC,GAAG,EAAE,KAAK,EAAE,eAAG,CAAC,CAAC;QAC5C,CAAC;KAAA;IACD,SAAS,CAAC,IAAW;QACjB,MAAM,KAAK,GAAG,IAAI,eAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA3CD,sBA2CC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Mssql = void 0;
16
+ const mssql_1 = __importDefault(require("mssql"));
17
+ const prepare_call_1 = require("./prepare-call");
18
+ const prepared_stmt_1 = require("./prepared-stmt");
19
+ const transaction_1 = require("./transaction");
20
+ class Mssql {
21
+ constructor(config) {
22
+ this.config = config;
23
+ }
24
+ findTransaction() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (!this.pool)
27
+ this.pool = yield mssql_1.default.connect(this.config);
28
+ let trans = new Promise((myResolve, myReject) => {
29
+ const transaction = new mssql_1.default.Transaction(this.pool);
30
+ transaction.begin(err => {
31
+ if (err) {
32
+ myReject(err);
33
+ return;
34
+ }
35
+ myResolve(new transaction_1.Transaction(transaction));
36
+ });
37
+ });
38
+ return yield trans;
39
+ });
40
+ }
41
+ statement(transaction) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (!this.pool)
44
+ this.pool = yield mssql_1.default.connect(this.config);
45
+ let req;
46
+ if (transaction)
47
+ req = new mssql_1.default.Request(transaction);
48
+ else
49
+ req = new mssql_1.default.Request(this.pool);
50
+ return req;
51
+ });
52
+ }
53
+ preparedStatement(query, transaction) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ if (!this.pool)
56
+ this.pool = yield mssql_1.default.connect(this.config);
57
+ let req;
58
+ if (transaction)
59
+ req = new mssql_1.default.PreparedStatement(transaction.transact);
60
+ else
61
+ req = new mssql_1.default.PreparedStatement(this.pool);
62
+ return new prepared_stmt_1.PreparedStmt(req, query, mssql_1.default);
63
+ });
64
+ }
65
+ preparedCall(query, transaction) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ if (!this.pool)
68
+ this.pool = yield mssql_1.default.connect(this.config);
69
+ let req;
70
+ if (transaction)
71
+ req = new mssql_1.default.Request(transaction.transact);
72
+ else
73
+ req = new mssql_1.default.Request(this.pool);
74
+ return new prepare_call_1.PrepareCall(req, query, mssql_1.default);
75
+ });
76
+ }
77
+ findTable(name) {
78
+ const table = new mssql_1.default.Table(name);
79
+ return table;
80
+ }
81
+ }
82
+ exports.Mssql = Mssql;
83
+ //# sourceMappingURL=mssql2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mssql2.js","sourceRoot":"","sources":["../../../src/lib/database/mssql2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAwB;AACxB,iDAA6C;AAC7C,mDAA+C;AAC/C,+CAA4C;AAC5C,MAAa,KAAK;IAEd,YAAoB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;IAAE,CAAC;IAC3B,eAAe;;YACjB,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,MAAM,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAC,EAAE;gBAC3C,MAAM,WAAW,GAAG,IAAI,eAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACpB,IAAG,GAAG,EAAC,CAAC;wBACJ,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;oBACX,CAAC;oBACD,SAAS,CAAC,IAAI,yBAAW,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,KAAK,CAAC;QACvB,CAAC;KAAA;IACK,SAAS,CAAC,WAAgB;;YAC5B,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,MAAM,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,GAAG,CAAC;YACR,IAAG,WAAW;gBACV,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;;gBAEnC,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IACK,iBAAiB,CAAC,KAAY,EAAE,WAAgB;;YAClD,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,MAAM,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,GAAG,CAAC;YACR,IAAG,WAAW;gBACV,GAAG,GAAG,IAAI,eAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;gBAEtD,GAAG,GAAG,IAAI,eAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,eAAG,CAAC,CAAC;QAC7C,CAAC;KAAA;IACK,YAAY,CAAC,KAAY,EAAE,WAAgB;;YAC7C,IAAG,CAAC,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,GAAG,MAAM,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC;YACZ,IAAG,WAAW;gBACV,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;gBAE5C,GAAG,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,IAAI,0BAAW,CAAC,GAAG,EAAE,KAAK,EAAE,eAAG,CAAC,CAAC;QAC5C,CAAC;KAAA;IACD,SAAS,CAAC,IAAW;QACjB,MAAM,KAAK,GAAG,IAAI,eAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AApDD,sBAoDC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PrepareCall = void 0;
13
+ class PrepareCall {
14
+ constructor(stmt, query, provider) {
15
+ this.stmt = stmt;
16
+ this.query = query;
17
+ this.provider = provider;
18
+ }
19
+ execute(input, outputMap, types) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ try {
22
+ Object.keys(input).forEach((key) => {
23
+ this.stmt.input(key, this.provider.VarChar, input[key]);
24
+ });
25
+ if (outputMap) {
26
+ Object.keys(outputMap).forEach((key) => {
27
+ this.stmt = this.stmt.output(key);
28
+ });
29
+ }
30
+ else {
31
+ this.stmt = this.stmt.output('RESULT');
32
+ }
33
+ let resultset = yield this.stmt.execute(this.query);
34
+ console.log(resultset.output);
35
+ return resultset.output;
36
+ }
37
+ catch (err) {
38
+ console.log(err.toString());
39
+ throw err;
40
+ }
41
+ });
42
+ }
43
+ }
44
+ exports.PrepareCall = PrepareCall;
45
+ //# sourceMappingURL=prepare-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-call.js","sourceRoot":"","sources":["../../../src/lib/database/prepare-call.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAa,WAAW;IACpB,YAAoB,IAAQ,EAAU,KAAY,EAAU,QAAY;QAApD,SAAI,GAAJ,IAAI,CAAI;QAAU,UAAK,GAAL,KAAK,CAAO;QAAU,aAAQ,GAAR,QAAQ,CAAI;IACxE,CAAC;IACK,OAAO,CAAC,KAAS,EAAE,SAAc,EAAE,KAAU;;YAC/C,IAAG,CAAC;gBACA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAU,EAAC,EAAE;oBACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;gBACH,IAAG,SAAS,EAAC,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAU,EAAC,EAAE;wBACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACP,CAAC;qBAAI,CAAC;oBACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,SAAS,CAAC,MAAM,CAAC;YAC5B,CAAC;YAAA,OAAM,GAAG,EAAC,CAAC;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;KAAA;CACJ;AAvBD,kCAuBC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PreparedStmt = void 0;
13
+ class PreparedStmt {
14
+ constructor(stmt, query, provider) {
15
+ this.stmt = stmt;
16
+ this.query = query;
17
+ this.provider = provider;
18
+ }
19
+ execute(input, types) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ var _a, _b;
22
+ try {
23
+ let logQuery = this.query;
24
+ Object.keys(input).forEach((key) => {
25
+ let dataType = this.findDataType(input[key]);
26
+ if (!['attributes'].includes(key) && this.query.indexOf(`@${key}`) > -1 && dataType != -1) {
27
+ if (dataType === -2) {
28
+ var paramsObj = input[key].reduce((obj, val, idx) => {
29
+ obj[`id${idx}`] = val;
30
+ input[`id${idx}`] = val;
31
+ this.stmt.input(`id${idx}`, this.provider.VarChar(200));
32
+ return obj;
33
+ }, {});
34
+ let inQuery = `${Object.keys(paramsObj).map((o) => { return `@${o}`; }).join(',')}`;
35
+ let sQuery = this.query;
36
+ this.query = sQuery.replaceAll(`@${key}`, inQuery);
37
+ //logQuery = this.query;
38
+ }
39
+ else
40
+ this.stmt.input(key, dataType);
41
+ new Promise((resolve, reject) => {
42
+ let regEx = new RegExp(`@${key}`, "g");
43
+ logQuery = logQuery.replaceAll(regEx, `'${input[key]}'`);
44
+ });
45
+ }
46
+ });
47
+ new Promise((resolve, reject) => {
48
+ console.log(logQuery);
49
+ });
50
+ yield this.stmt.prepare(this.query);
51
+ let resultset = yield this.stmt.execute(input);
52
+ return resultset.recordset;
53
+ }
54
+ catch (err) {
55
+ console.log(err.toString());
56
+ if ((_a = err.originalError) === null || _a === void 0 ? void 0 : _a.errors) {
57
+ (_b = err.originalError) === null || _b === void 0 ? void 0 : _b.errors.forEach((item) => {
58
+ console.log(item.toString());
59
+ throw new Error(item);
60
+ });
61
+ }
62
+ throw err;
63
+ }
64
+ finally {
65
+ try {
66
+ yield this.stmt.unprepare();
67
+ }
68
+ catch (iErr) {
69
+ //Do Nothing
70
+ }
71
+ }
72
+ });
73
+ }
74
+ findDataType(data) {
75
+ let resultType = this.provider.VarChar;
76
+ if (data instanceof Number) {
77
+ resultType = this.provider.Decimal;
78
+ }
79
+ else if (typeof data === 'number') {
80
+ resultType = this.provider.Decimal;
81
+ }
82
+ else if (data instanceof Array) {
83
+ resultType = -2;
84
+ }
85
+ else if (data != null && typeof data === 'object') {
86
+ resultType = -1;
87
+ }
88
+ return resultType;
89
+ }
90
+ }
91
+ exports.PreparedStmt = PreparedStmt;
92
+ //# sourceMappingURL=prepared-stmt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared-stmt.js","sourceRoot":"","sources":["../../../src/lib/database/prepared-stmt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommonSchema = void 0;
4
+ exports.CommonSchema = [
5
+ {
6
+ id: 'FIND_FIN_YR',
7
+ Query: `SELECT FinYear FIND_FIN_YR FROM Mst_AccYear WHERE OpenStatus='O' AND CurrentFinancialYear='Y'`
8
+ },
9
+ {
10
+ id: 'USP_GENERATE_DOCNO',
11
+ Query: `DECLARE @RESULT VARCHAR(100);EXEC USP_GENERATECOUNT @DOCREFNO, @CLNGCODE, @RESULT OUTPUT SELECT @RESULT RESULT`
12
+ },
13
+ {
14
+ id: 'ADD_NOTIFY',
15
+ Query: `insert into TM_NOTIFICATIONS(CLNORGCODE, TRNUMBER, NOTIFICATION, READSTATUS, STATUS, CREATED_ON, MOBILE) values(@clnorgcode, @trnumber, @message,'0','0', getdate(), @mobile)`
16
+ },
17
+ {
18
+ id: 'USP_GENERATE_DOCNO_RESULT',
19
+ Query: `DECLARE @RESULT VARCHAR(100);EXEC USP_GENERATECOUNT @DOCREFNO, @CLNGCODE, @RESULT OUTPUT SELECT @RESULT RESULT`
20
+ },
21
+ {
22
+ id: 'sendSMSTransport',
23
+ url: `https://sms.zestwings.com/smpp.sms?`,
24
+ },
25
+ {
26
+ id: 'getStoredProcDetails',
27
+ Query: `SELECT SUBSTRING(p.name, 2, LEN(p.name)) AS ParameterName, t.name AS ParameterType, p.max_length AS ParameterLength, p.is_output
28
+ FROM sys.parameters AS p
29
+ JOIN sys.types AS t ON t.user_type_id = p.user_type_id
30
+ WHERE object_id = OBJECT_ID(@table)`
31
+ },
32
+ {
33
+ id: 'getTableDetails',
34
+ Query: `select cl.COLUMN_NAME, cl.DATA_TYPE,
35
+ CASE
36
+ WHEN COLUMNPROPERTY(object_id(TABLE_SCHEMA+'.'+TABLE_NAME), cl.COLUMN_NAME, 'IsIdentity') = 1
37
+ THEN 1
38
+ ELSE 0
39
+ END AS IS_IDENTITY_KEY,
40
+ ISNULL(cu.IS_PRIMARY_KEY, 0) IS_PRIMARY_KEY
41
+ from INFORMATION_SCHEMA.COLUMNS cl
42
+ left join (select C.COLUMN_NAME, 1 as IS_PRIMARY_KEY FROM
43
+ INFORMATION_SCHEMA.TABLE_CONSTRAINTS T
44
+ JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE C
45
+ ON C.CONSTRAINT_NAME=T.CONSTRAINT_NAME
46
+ WHERE
47
+ C.TABLE_NAME=@table
48
+ and T.CONSTRAINT_TYPE='PRIMARY KEY') cu on cu.COLUMN_NAME = cl.COLUMN_NAME
49
+ where TABLE_NAME = @table`,
50
+ //postProcessor: CommonService.addPrimaryKeys.bind(CommonService)
51
+ },
52
+ /*{
53
+ id: 'getTableData',
54
+ executor: CommonService.getTableData.bind(CommonService)
55
+ }*/ ,
56
+ /*{
57
+ id: 'insertTableData',
58
+ executor: CommonService.insertTableData.bind(CommonService)
59
+ }*/ ,
60
+ /*{
61
+ id: 'updateTableData',
62
+ executor: CommonService.updateTableData.bind(CommonService)
63
+ },
64
+ {
65
+ id: 'deleteTableData',
66
+ executor: CommonService.deleteTableData.bind(CommonService)
67
+ }*/ ,
68
+ {
69
+ id: 'status-filter',
70
+ filter: `STATUS='A'`
71
+ },
72
+ {
73
+ id: 'rec-status-filter',
74
+ filter: `REC_STATUS='A'`
75
+ },
76
+ {
77
+ id: 'hims-filter',
78
+ filter: `CLNORGCODE = @Hospital_Id and STATUS='A'`
79
+ }
80
+ ];
81
+ //# sourceMappingURL=common-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-schema.js","sourceRoot":"","sources":["../../../../src/lib/database/schema/common-schema.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IACxB;QACI,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,+FAA+F;KACzG;IACD;QACI,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,gHAAgH;KAC1H;IACD;QACI,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,gLAAgL;KAC1L;IACD;QACI,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,gHAAgH;KAC1H;IACD;QACI,EAAE,EAAE,kBAAkB;QACtB,GAAG,EAAE,qCAAqC;KAC7C;IACD;QACI,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE;;;oDAGqC;KAC/C;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE;;;;;;;;;;;;;;;0CAe2B;QAClC,yEAAyE;KAC5E;IAIE,AAHH;;;OAGG;IAIA,AAHH;;;OAGG;IAQA,AAPH;;;;;;;OAOG;IACH;QACI,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,YAAY;KACvB;IACD;QACI,EAAE,EAAE,mBAAmB;QACvB,MAAM,EAAE,gBAAgB;KAC3B;IACD;QACI,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,0CAA0C;KACrD;CACJ,CAAA"}