@sellout/service 0.0.383 → 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.
- package/{src/BaseService.ts → BaseService.ts} +7 -18
- package/{src/NatsConnectionManager.ts → NatsConnectionManager.ts} +3 -1
- package/{src/PbAsyncMessageHandler.ts → PbAsyncMessageHandler.ts} +1 -2
- package/{src/PbBroadcastProxy.ts → PbBroadcastProxy.ts} +4 -2
- package/{src/Tracer.ts → Tracer.ts} +2 -7
- package/{src/env.ts → env.ts} +2 -0
- package/interfaces.ts +100 -0
- package/package.json +3 -23
- package/{.dist/build → service-build}/tsconfig.json +0 -1
- package/.dist/BaseService.d.ts +0 -27
- package/.dist/BaseService.js +0 -95
- package/.dist/BaseService.js.map +0 -1
- package/.dist/ConsoleLogManager.d.ts +0 -9
- package/.dist/ConsoleLogManager.js +0 -18
- package/.dist/ConsoleLogManager.js.map +0 -1
- package/.dist/MongoConnectionManager.d.ts +0 -9
- package/.dist/MongoConnectionManager.js +0 -52
- package/.dist/MongoConnectionManager.js.map +0 -1
- package/.dist/NatsConnectionManager.d.ts +0 -117
- package/.dist/NatsConnectionManager.js +0 -215
- package/.dist/NatsConnectionManager.js.map +0 -1
- package/.dist/PbAsyncMessageHandler.d.ts +0 -15
- package/.dist/PbAsyncMessageHandler.js +0 -27
- package/.dist/PbAsyncMessageHandler.js.map +0 -1
- package/.dist/PbBroadcastProxy.d.ts +0 -25
- package/.dist/PbBroadcastProxy.js +0 -41
- package/.dist/PbBroadcastProxy.js.map +0 -1
- package/.dist/PbMessageHandler.d.ts +0 -27
- package/.dist/PbMessageHandler.js +0 -47
- package/.dist/PbMessageHandler.js.map +0 -1
- package/.dist/PbServiceProxy.d.ts +0 -38
- package/.dist/PbServiceProxy.js +0 -65
- package/.dist/PbServiceProxy.js.map +0 -1
- package/.dist/Segment.d.ts +0 -12
- package/.dist/Segment.js +0 -34
- package/.dist/Segment.js.map +0 -1
- package/.dist/Tracer.d.ts +0 -22
- package/.dist/Tracer.js +0 -55
- package/.dist/Tracer.js.map +0 -1
- package/.dist/TracerExpress.d.ts +0 -1
- package/.dist/TracerExpress.js +0 -44
- package/.dist/TracerExpress.js.map +0 -1
- package/.dist/env.d.ts +0 -5
- package/.dist/env.js +0 -9
- package/.dist/env.js.map +0 -1
- package/.dist/interfaces.d.ts +0 -32
- package/.dist/interfaces.js +0 -3
- package/.dist/interfaces.js.map +0 -1
- package/.dist/joiToErrors.d.ts +0 -3
- package/.dist/joiToErrors.js +0 -45
- package/.dist/joiToErrors.js.map +0 -1
- package/.dist/schemas.d.ts +0 -0
- package/.dist/schemas.js +0 -1
- package/.dist/schemas.js.map +0 -1
- package/src/MongoConnectionManager.ts +0 -50
- package/src/build/tsconfig.json +0 -33
- package/src/build/tslint.json +0 -17
- package/src/interfaces.ts +0 -47
- package/tsconfig.json +0 -29
- package/tslint.json +0 -21
- /package/{src/ConsoleLogManager.ts → ConsoleLogManager.ts} +0 -0
- /package/{src/PbMessageHandler.ts → PbMessageHandler.ts} +0 -0
- /package/{src/PbServiceProxy.ts → PbServiceProxy.ts} +0 -0
- /package/{src/Segment.ts → Segment.ts} +0 -0
- /package/{src/TracerExpress.ts → TracerExpress.ts} +0 -0
- /package/{src/joiToErrors.ts → joiToErrors.ts} +0 -0
- /package/{src/schemas.ts → schemas.ts} +0 -0
- /package/{.dist/build → service-build}/tslint.json +0 -0
package/.dist/Tracer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tracer.js","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":";;AAAA,iDAA8D;AAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAExD,0DAA0D;AAE1D,MAAqB,MAAM;IAMzB,YAAY,WAAmB,EAAE,SAAc,OAAO,EAAE,UAAmB,IAAI;QAC7E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACxC,IAAI;YACF,IAAI,CAAC,MAAM,GAAG,IAAA,0BAAU,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAChE;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;SACnB;IACH,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC;aACT;YACD,QAAQ,EAAE;gBACR,6BAA6B;gBAC7B,SAAS,EAAE,iBAAiB;gBAC5B,uBAAuB;gBACvB,0DAA0D;gBAC1D,QAAQ,EAAE,OAAO;aAClB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,UAA0C;QAChE,IAAI,OAAO,CAAC;QAEZ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,OAAO,GAAG,2BAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM,IAAI,UAAU,YAAY,oBAAI,EAAE;YACrC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SAChC;aAAM,IAAI,UAAU,YAAY,2BAAW,EAAE;YAC5C,OAAO,GAAG,UAAU,CAAC;SACtB;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAtDD,yBAsDC"}
|
package/.dist/TracerExpress.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const tracerExpress: (serviceName: string) => (req: any, res: any, next: any) => Promise<void>;
|
package/.dist/TracerExpress.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
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.tracerExpress = void 0;
|
|
13
|
-
const Tracer_1 = require("./Tracer");
|
|
14
|
-
const url = require("url");
|
|
15
|
-
const traceHTTP = (req, res, tracer) => {
|
|
16
|
-
const pathname = url.parse(req.url).pathname;
|
|
17
|
-
const span = tracer.startSpan(pathname);
|
|
18
|
-
span.logEvent('request_recieved');
|
|
19
|
-
span.setTag('span.kind', 'server');
|
|
20
|
-
span.setTag('http.method', req.method);
|
|
21
|
-
span.setTag('http.url', req.url);
|
|
22
|
-
res.setHeader('uver-trace-id', span.context().toString());
|
|
23
|
-
req.span = span;
|
|
24
|
-
req.tracer = tracer;
|
|
25
|
-
const finish = () => {
|
|
26
|
-
span.logEvent('request_finished');
|
|
27
|
-
span.setTag('http.status_code', res.statusCode);
|
|
28
|
-
if (res.statusCode >= 500) {
|
|
29
|
-
span.setTag('error', true);
|
|
30
|
-
span.setTag('sampling.priority', 1);
|
|
31
|
-
}
|
|
32
|
-
span.finish();
|
|
33
|
-
};
|
|
34
|
-
res.on("finish", finish);
|
|
35
|
-
};
|
|
36
|
-
const tracerExpress = (serviceName) => {
|
|
37
|
-
const tracer = new Tracer_1.default(serviceName);
|
|
38
|
-
return (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
-
traceHTTP(req, res, tracer);
|
|
40
|
-
next();
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
exports.tracerExpress = tracerExpress;
|
|
44
|
-
//# sourceMappingURL=TracerExpress.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TracerExpress.js","sourceRoot":"","sources":["../src/TracerExpress.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA8B;AAC9B,2BAA2B;AAE3B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAQ,EAAE;IAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAS,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1D,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAEpB,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAG,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAiB,EAAE;QAC7C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC;IACT,CAAC,CAAA,CAAA;AACH,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/.dist/env.d.ts
DELETED
package/.dist/env.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NODE_ENV = exports.SENTRY_DSN = exports.SEGMENT_IO_WRITE_KEY = exports.LOAD_TEST_ENABLED = exports.DISABLE_PROMETHEUS = void 0;
|
|
4
|
-
exports.DISABLE_PROMETHEUS = process.env.DISABLE_PROMETHEUS || false;
|
|
5
|
-
exports.LOAD_TEST_ENABLED = process.env.LOAD_TEST_ENABLED === '1';
|
|
6
|
-
exports.SEGMENT_IO_WRITE_KEY = process.env.SEGMENT_IO_WRITE_KEY;
|
|
7
|
-
exports.SENTRY_DSN = process.env.SENTRY_DSN;
|
|
8
|
-
exports.NODE_ENV = process.env.NODE_ENV || 'development';
|
|
9
|
-
//# sourceMappingURL=env.js.map
|
package/.dist/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC;AAC7D,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAC1D,QAAA,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACxD,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC"}
|
package/.dist/interfaces.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
export interface ISubscriptionRoutes {
|
|
4
|
-
[routeName: string]: IMessageHandler;
|
|
5
|
-
}
|
|
6
|
-
export interface IConnectionManager {
|
|
7
|
-
connect(): any;
|
|
8
|
-
close(): any;
|
|
9
|
-
on(event: string, cb: (...args: any[]) => void): any;
|
|
10
|
-
send(serviceId: string, method: string, req: Buffer, cb: (error: any, reply: any) => void, timeout?: number): any;
|
|
11
|
-
sendAsync(serviceId: string, method: string, req: Buffer, cb: (error: any, reply: any) => void, timeout?: number): any;
|
|
12
|
-
sendBroadcast(messageId: string, req: Buffer, cb: (error: any, reply: any) => void): any;
|
|
13
|
-
subscribe(serviceId: string, queue: string, routes: ISubscriptionRoutes): any;
|
|
14
|
-
subscribeBroadcast(serviceId: string, routes: ISubscriptionRoutes): any;
|
|
15
|
-
}
|
|
16
|
-
export interface ILogManager {
|
|
17
|
-
info(msg: string, ...params: string[]): void;
|
|
18
|
-
warn(msg: string, ...params: string[]): void;
|
|
19
|
-
error(msg: string, ...params: string[]): void;
|
|
20
|
-
}
|
|
21
|
-
export interface ILogManagerOpts {
|
|
22
|
-
serviceName: string;
|
|
23
|
-
}
|
|
24
|
-
export interface IMessageHandler {
|
|
25
|
-
process(req: Buffer): Promise<Buffer>;
|
|
26
|
-
}
|
|
27
|
-
export interface IServiceOpts {
|
|
28
|
-
serviceName: string;
|
|
29
|
-
connectionMgr: IConnectionManager;
|
|
30
|
-
logManager: ILogManager;
|
|
31
|
-
storageManager?: any;
|
|
32
|
-
}
|
package/.dist/interfaces.js
DELETED
package/.dist/interfaces.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
|
package/.dist/joiToErrors.d.ts
DELETED
package/.dist/joiToErrors.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.joiToErrorMessages = void 0;
|
|
4
|
-
/*
|
|
5
|
-
* Converts Joi error objects to a { key, message } type object (pb.Error, Object, etc.)
|
|
6
|
-
*/
|
|
7
|
-
const joiToErrors = (joiErrors, errorClass) => {
|
|
8
|
-
const errors = joiErrors.details.map(detail => {
|
|
9
|
-
const key = detail.path[0];
|
|
10
|
-
const type = detail.type;
|
|
11
|
-
// Note, these messages eventually need to be symbolic, and also localized / translated.
|
|
12
|
-
// Right now, we're mainly using the English strings returned by the Joi validators.
|
|
13
|
-
const defaultMessage = detail.message;
|
|
14
|
-
const message = publicErrorMessage(key, type, defaultMessage);
|
|
15
|
-
return new errorClass({ key, message });
|
|
16
|
-
}, {});
|
|
17
|
-
return errors;
|
|
18
|
-
};
|
|
19
|
-
/*
|
|
20
|
-
* Override default Joi messages, which aren't always safe to show to our users.
|
|
21
|
-
*/
|
|
22
|
-
const publicErrorMessage = (key, type, defaultMessage) => {
|
|
23
|
-
let message = defaultMessage;
|
|
24
|
-
switch (type) {
|
|
25
|
-
case "string.regex.base": {
|
|
26
|
-
// regex errors echo back the value, which is dangerous for passwords
|
|
27
|
-
message = `"${key}" does not meet the requirements`;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return message;
|
|
31
|
-
};
|
|
32
|
-
/*
|
|
33
|
-
* Function used for more detailed key info and custom error messages
|
|
34
|
-
*/
|
|
35
|
-
const joiToErrorMessages = (joiErrors, errorClass) => {
|
|
36
|
-
const errors = joiErrors.details.map(detail => {
|
|
37
|
-
const key = detail.context.label;
|
|
38
|
-
const message = detail.message;
|
|
39
|
-
return new errorClass({ key, message });
|
|
40
|
-
}, {});
|
|
41
|
-
return errors;
|
|
42
|
-
};
|
|
43
|
-
exports.joiToErrorMessages = joiToErrorMessages;
|
|
44
|
-
exports.default = joiToErrors;
|
|
45
|
-
//# sourceMappingURL=joiToErrors.js.map
|
package/.dist/joiToErrors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"joiToErrors.js","sourceRoot":"","sources":["../src/joiToErrors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,wFAAwF;QACxF,oFAAoF;QACpF,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE9D,OAAO,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;IACvD,IAAI,OAAO,GAAG,cAAc,CAAC;IAE7B,QAAQ,IAAI,EAAE;QACZ,KAAK,mBAAmB,CAAC,CAAC;YACxB,qEAAqE;YACrE,OAAO,GAAG,IAAI,GAAG,kCAAkC,CAAC;SACrD;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,OAAO,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B;AAEF,kBAAe,WAAW,CAAC"}
|
package/.dist/schemas.d.ts
DELETED
|
File without changes
|
package/.dist/schemas.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=schemas.js.map
|
package/.dist/schemas.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":""}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import wait from '@sellout/utils/.dist/wait';
|
|
2
|
-
|
|
3
|
-
export default class MongoConnectionManager {
|
|
4
|
-
public connected: boolean;
|
|
5
|
-
public mongoConnectionString: string;
|
|
6
|
-
public isReplicaSet: boolean;
|
|
7
|
-
private mongoose: any;
|
|
8
|
-
private mongoConnectionStringInternal: string;
|
|
9
|
-
|
|
10
|
-
constructor(mongoose: any, mongoConnectionString: string, username: string = '', password: string = '') {
|
|
11
|
-
const parsed = new URL(mongoConnectionString);
|
|
12
|
-
|
|
13
|
-
parsed.username = username;
|
|
14
|
-
parsed.password = password;
|
|
15
|
-
parsed.pathname = '/admin';
|
|
16
|
-
|
|
17
|
-
this.connected = false;
|
|
18
|
-
this.mongoConnectionStringInternal = parsed.toString();
|
|
19
|
-
this.isReplicaSet = parsed.protocol === 'mongodb+srv:';
|
|
20
|
-
|
|
21
|
-
// redact username/password from publicly available connection string
|
|
22
|
-
parsed.username = '__user__';
|
|
23
|
-
parsed.password = '__pass__';
|
|
24
|
-
this.mongoConnectionString = parsed.toString();
|
|
25
|
-
this.mongoose = mongoose;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public async connect() {
|
|
29
|
-
while(!this.connected) {
|
|
30
|
-
console.log('Attempting to connect to Mongo...');
|
|
31
|
-
this.mongoose.connect(this.mongoConnectionStringInternal, {
|
|
32
|
-
ssl: false,
|
|
33
|
-
useUnifiedTopology: true,
|
|
34
|
-
useNewUrlParser: true,
|
|
35
|
-
})
|
|
36
|
-
.then(() => {
|
|
37
|
-
this.connected = true;
|
|
38
|
-
console.log(`Connected to MongoDB: ${this.mongoConnectionString}`);
|
|
39
|
-
})
|
|
40
|
-
.catch((e: any) => {
|
|
41
|
-
console.error(`There was an error connecting to MongoDB: ${this.mongoConnectionString}`);
|
|
42
|
-
console.error(e);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// wait five seconds before trying again
|
|
46
|
-
await wait(5000);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
package/src/build/tsconfig.json
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compileOnSave": true,
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"inlineSourceMap": true,
|
|
5
|
-
"baseUrl": ".",
|
|
6
|
-
"moduleResolution": "node",
|
|
7
|
-
"target": "es6",
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"lib": ["es6", "dom", "esnext.asynciterable"],
|
|
10
|
-
"module": "commonjs",
|
|
11
|
-
"outDir": "./.dist/",
|
|
12
|
-
"declaration": true,
|
|
13
|
-
"jsx": "react",
|
|
14
|
-
// "sourceMap": true,
|
|
15
|
-
// "strictNullChecks": true,
|
|
16
|
-
"noUnusedLocals": true,
|
|
17
|
-
"paths": {},
|
|
18
|
-
"types": [
|
|
19
|
-
"node",
|
|
20
|
-
"long",
|
|
21
|
-
"mocha"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"include": [
|
|
25
|
-
"src/**/*.ts",
|
|
26
|
-
"src/templates",
|
|
27
|
-
],
|
|
28
|
-
"exclude": [
|
|
29
|
-
"node_modules",
|
|
30
|
-
"test/*",
|
|
31
|
-
"dist/*"
|
|
32
|
-
]
|
|
33
|
-
}
|
package/src/build/tslint.json
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "tslint-config-airbnb",
|
|
3
|
-
"rules": {
|
|
4
|
-
"quotemark": [
|
|
5
|
-
true,
|
|
6
|
-
"single"
|
|
7
|
-
],
|
|
8
|
-
"import-name": false,
|
|
9
|
-
"variable-name": false,
|
|
10
|
-
"max-line-length": false,
|
|
11
|
-
"no-console": false,
|
|
12
|
-
"ban": false
|
|
13
|
-
},
|
|
14
|
-
"jsRules": {
|
|
15
|
-
"max-line-length": false
|
|
16
|
-
}
|
|
17
|
-
}
|
package/src/interfaces.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export interface ISubscriptionRoutes {
|
|
2
|
-
[routeName: string]: IMessageHandler;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export interface IConnectionManager {
|
|
6
|
-
connect();
|
|
7
|
-
close();
|
|
8
|
-
on(event: string, cb: (...args: any[]) => void);
|
|
9
|
-
send(
|
|
10
|
-
serviceId: string,
|
|
11
|
-
method: string,
|
|
12
|
-
req: Buffer,
|
|
13
|
-
cb: (error, reply) => void,
|
|
14
|
-
timeout?: number
|
|
15
|
-
);
|
|
16
|
-
sendAsync(
|
|
17
|
-
serviceId: string,
|
|
18
|
-
method: string,
|
|
19
|
-
req: Buffer,
|
|
20
|
-
cb: (error, reply) => void,
|
|
21
|
-
timeout?: number
|
|
22
|
-
);
|
|
23
|
-
sendBroadcast(messageId: string, req: Buffer, cb: (error, reply) => void);
|
|
24
|
-
subscribe(serviceId: string, queue: string, routes: ISubscriptionRoutes);
|
|
25
|
-
subscribeBroadcast(serviceId: string, routes: ISubscriptionRoutes);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface ILogManager {
|
|
29
|
-
info(msg: string, ...params: string[]): void;
|
|
30
|
-
warn(msg: string, ...params: string[]): void;
|
|
31
|
-
error(msg: string, ...params: string[]): void;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface ILogManagerOpts {
|
|
35
|
-
serviceName: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface IMessageHandler {
|
|
39
|
-
process(req: Buffer): Promise<Buffer>;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface IServiceOpts {
|
|
43
|
-
serviceName: string;
|
|
44
|
-
connectionMgr: IConnectionManager;
|
|
45
|
-
logManager: ILogManager;
|
|
46
|
-
storageManager?: any;
|
|
47
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compileOnSave": true,
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"target": "es6",
|
|
7
|
-
"module": "commonjs",
|
|
8
|
-
"outDir": "./.dist/",
|
|
9
|
-
"declaration": true,
|
|
10
|
-
"jsx": "react",
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"strictNullChecks": true,
|
|
13
|
-
"noUnusedLocals": false,
|
|
14
|
-
"paths": {},
|
|
15
|
-
"types": [
|
|
16
|
-
"node",
|
|
17
|
-
"long"
|
|
18
|
-
]
|
|
19
|
-
},
|
|
20
|
-
"typeRoots": [
|
|
21
|
-
"node_modules/@types"
|
|
22
|
-
],
|
|
23
|
-
"include": [
|
|
24
|
-
"./src/**/*.ts"
|
|
25
|
-
],
|
|
26
|
-
"exclude": [
|
|
27
|
-
"node_modules"
|
|
28
|
-
]
|
|
29
|
-
}
|
package/tslint.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "tslint-config-airbnb",
|
|
3
|
-
"rules": {
|
|
4
|
-
"max-line-length": {
|
|
5
|
-
"options": [120]
|
|
6
|
-
},
|
|
7
|
-
"no-console": false,
|
|
8
|
-
"ban": [
|
|
9
|
-
true,
|
|
10
|
-
{
|
|
11
|
-
"name": ["Math", "random"],
|
|
12
|
-
"message": "Use a better RNG, perhaps UUID?"
|
|
13
|
-
}
|
|
14
|
-
]
|
|
15
|
-
},
|
|
16
|
-
"jsRules": {
|
|
17
|
-
"max-line-length": {
|
|
18
|
-
"options": [120]
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|