@mocko/core 2.0.0-beta.9 → 2.1.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/default.env +1 -1
- package/dist/api/deploy/deploy.controller.js +5 -0
- package/dist/api/deploy/deploy.controller.js.map +1 -1
- package/dist/api/deploy/deploy.router.js +16 -4
- package/dist/api/deploy/deploy.router.js.map +1 -1
- package/dist/api/deploy/deploy.service.js +3 -0
- package/dist/api/deploy/deploy.service.js.map +1 -1
- package/dist/api/flag/data/flag.dto.js +5 -3
- package/dist/api/flag/data/flag.dto.js.map +1 -1
- package/dist/api/flag/flag.memory-repository.js +25 -7
- package/dist/api/flag/flag.memory-repository.js.map +1 -1
- package/dist/api/flag/flag.service.js +7 -1
- package/dist/api/flag/flag.service.js.map +1 -1
- package/dist/api/mock/mock.service.js +5 -4
- package/dist/api/mock/mock.service.js.map +1 -1
- package/dist/definitions/data/mocko-definition.js +13 -2
- package/dist/definitions/data/mocko-definition.js.map +1 -1
- package/dist/definitions/definition.provider.js +33 -5
- package/dist/definitions/definition.provider.js.map +1 -1
- package/dist/definitions/diagnostics.js +32 -0
- package/dist/definitions/diagnostics.js.map +1 -0
- package/dist/route-registrar.js +83 -0
- package/dist/route-registrar.js.map +1 -0
- package/dist/server.js +13 -29
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/validate.js +160 -0
- package/dist/validate.js.map +1 -0
- package/package.json +2 -2
package/default.env
CHANGED
|
@@ -4,7 +4,7 @@ SERVER_ALLOW-CORS=true
|
|
|
4
4
|
|
|
5
5
|
# URL of your actual API which will be proxied by mocko, leave it blank for non-proxied mode
|
|
6
6
|
PROXY_BASE-URI=
|
|
7
|
-
PROXY_TIMEOUT-MILLIS=
|
|
7
|
+
PROXY_TIMEOUT-MILLIS=30000
|
|
8
8
|
|
|
9
9
|
# Enables the internal deploy endpoint used by the UI flow. Disabled by default.
|
|
10
10
|
DEPLOY_ENDPOINT_ENABLED=false
|
|
@@ -28,6 +28,11 @@ let DeployController = class DeployController {
|
|
|
28
28
|
await this.service.deploy(definition);
|
|
29
29
|
return h.response().code(204);
|
|
30
30
|
}
|
|
31
|
+
async remap(request, h) {
|
|
32
|
+
this.service.authorizeDeploy(request.headers.authorization);
|
|
33
|
+
await this.service.remap();
|
|
34
|
+
return h.response().code(204);
|
|
35
|
+
}
|
|
31
36
|
};
|
|
32
37
|
exports.DeployController = DeployController;
|
|
33
38
|
exports.DeployController = DeployController = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.controller.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAmC;AAEnC,8DAA2D;AAC3D,8EAA6E;AAC7E,6CAAiD;AACjD,qDAAiD;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACzB,YACqB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IACvC,CAAC;IAEL,KAAK,CAAC,MAAM,CAAC,OAAqB,EAAE,CAAuB;QACvD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,IAAA,oBAAY,EAAC,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACpF,IAAG,KAAK,EAAE,CAAC;YACP,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEtC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACJ,CAAA;
|
|
1
|
+
{"version":3,"file":"deploy.controller.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAmC;AAEnC,8DAA2D;AAC3D,8EAA6E;AAC7E,6CAAiD;AACjD,qDAAiD;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACzB,YACqB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IACvC,CAAC;IAEL,KAAK,CAAC,MAAM,CAAC,OAAqB,EAAE,CAAuB;QACvD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,IAAA,oBAAY,EAAC,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACpF,IAAG,KAAK,EAAE,CAAC;YACP,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEtC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,CAAuB;QACtD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAE3B,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACJ,CAAA;AAzBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAQ,GAAE;qCAGuB,8BAAa;GAFlC,gBAAgB,CAyB5B"}
|
|
@@ -14,22 +14,34 @@ const config_service_1 = require("../../config/config.service");
|
|
|
14
14
|
const provider_1 = require("../../utils/decorators/provider");
|
|
15
15
|
const deploy_controller_1 = require("./deploy.controller");
|
|
16
16
|
const DEPLOY_ENDPOINT_ENABLED = config_service_1.configProvider.getOptionalBoolean('DEPLOY_ENDPOINT_ENABLED');
|
|
17
|
+
const REMAP_ENDPOINT_ENABLED = config_service_1.configProvider.getOptionalBoolean('REMAP_ENDPOINT_ENABLED');
|
|
17
18
|
let DeployRouter = class DeployRouter {
|
|
18
19
|
constructor(controller) {
|
|
19
20
|
this.controller = controller;
|
|
20
21
|
}
|
|
21
22
|
async getRoutes() {
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
const routes = [];
|
|
24
|
+
if (REMAP_ENDPOINT_ENABLED) {
|
|
25
|
+
routes.push({
|
|
26
|
+
method: 'POST',
|
|
27
|
+
path: '/__mocko__/remap',
|
|
28
|
+
handler: this.controller.remap.bind(this.controller),
|
|
29
|
+
rules: {
|
|
30
|
+
mapSilently: true,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
24
33
|
}
|
|
25
|
-
|
|
34
|
+
if (DEPLOY_ENDPOINT_ENABLED) {
|
|
35
|
+
routes.push({
|
|
26
36
|
method: 'POST',
|
|
27
37
|
path: '/__mocko__/deploy',
|
|
28
38
|
handler: this.controller.deploy.bind(this.controller),
|
|
29
39
|
rules: {
|
|
30
40
|
mapSilently: true,
|
|
31
41
|
},
|
|
32
|
-
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return routes;
|
|
33
45
|
}
|
|
34
46
|
};
|
|
35
47
|
exports.DeployRouter = DeployRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.router.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.router.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gEAA6D;AAC7D,8DAA2D;AAE3D,2DAAuD;AAEvD,MAAM,uBAAuB,GAAG,+BAAc,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.router.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.router.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gEAA6D;AAC7D,8DAA2D;AAE3D,2DAAuD;AAEvD,MAAM,uBAAuB,GAAG,+BAAc,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AAC7F,MAAM,sBAAsB,GAAG,+BAAc,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;AAGpF,IAAM,YAAY,GAAlB,MAAM,YAAY;IACrB,YACqB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAC7C,CAAC;IAEL,KAAK,CAAC,SAAS;QACX,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,IAAG,sBAAsB,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACpD,KAAK,EAAE;oBACH,WAAW,EAAE,IAAI;iBACpB;aACJ,CAAC,CAAC;QACP,CAAC;QAED,IAAG,uBAAuB,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrD,KAAK,EAAE;oBACH,WAAW,EAAE,IAAI;iBACpB;aACJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAhCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAQ,GAAE;qCAG0B,oCAAgB;GAFxC,YAAY,CAgCxB"}
|
|
@@ -75,6 +75,9 @@ let DeployService = class DeployService {
|
|
|
75
75
|
this.definitionProvider.setDeployDefinition(definition);
|
|
76
76
|
await this.remapEventBus.emit();
|
|
77
77
|
}
|
|
78
|
+
async remap() {
|
|
79
|
+
await this.remapEventBus.emit();
|
|
80
|
+
}
|
|
78
81
|
};
|
|
79
82
|
exports.DeployService = DeployService;
|
|
80
83
|
exports.DeployService = DeployService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.service.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAmC;AACnC,4DAAyD;AACzD,gEAA6D;AAC7D,+EAA2E;AAE3E,iEAA4D;AAC5D,6CAAgD;AAEhD,MAAM,uBAAuB,GAAG,+BAAc,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AAC7F,MAAM,aAAa,GAAG,+BAAc,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAClE,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;AAK9C,IAAM,aAAa,GAAnB,MAAM,aAAa;IACtB,YACqB,kBAAsC,EACtC,aAA4B;QAD5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QAE7C,IACI,uBAAuB;YACvB,IAAI,CAAC,kBAAkB,EAAE;YACzB,CAAC,aAAa,EAChB,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QACD,IAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,uBAAuB,KAAK,IAAI,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,aAAiC;QAC7C,IAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,aAAiC;QACjD,IAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,aAAiC;QAC5C,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAEO,kBAAkB;QACtB,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,KAAK,KAAK,CAAC;IAC/E,CAAC;IAEO,sBAAsB;QAC1B,OAAO,oBAAoB,KAAK,KAAK,CAAC;IAC1C,CAAC;IAEO,iBAAiB;QACrB,OAAO,oBAAoB,KAAK,KAAK,CAAC;IAC1C,CAAC;IAEO,YAAY;QAChB,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,KAAK,KAAK,CAAC;IAC/E,CAAC;IAEO,SAAS,CAAC,aAAiC;QAC/C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAG,CAAC,KAAK,IAAI,KAAK,KAAK,UAAU,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAA2B;QACpC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;CACJ,CAAA;
|
|
1
|
+
{"version":3,"file":"deploy.service.js","sourceRoot":"","sources":["../../../src/api/deploy/deploy.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,14 @@ class FlagKeyDto {
|
|
|
14
14
|
}
|
|
15
15
|
exports.FlagKeyDto = FlagKeyDto;
|
|
16
16
|
class FlagListDto {
|
|
17
|
-
constructor(flagKeys, isTruncated) {
|
|
17
|
+
constructor(flagKeys, isTruncated, count, matchCount) {
|
|
18
18
|
this.flagKeys = flagKeys;
|
|
19
19
|
this.isTruncated = isTruncated;
|
|
20
|
+
this.count = count;
|
|
21
|
+
this.matchCount = matchCount;
|
|
20
22
|
}
|
|
21
|
-
static of(flagKeys, isTruncated) {
|
|
22
|
-
return new FlagListDto(flagKeys, isTruncated);
|
|
23
|
+
static of(flagKeys, isTruncated, count, matchCount) {
|
|
24
|
+
return new FlagListDto(flagKeys, isTruncated, count, matchCount);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
exports.FlagListDto = FlagListDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flag.dto.js","sourceRoot":"","sources":["../../../../src/api/flag/data/flag.dto.ts"],"names":[],"mappings":";;;AAIA,MAAa,UAAU;IACnB,YACoB,IAAc,EACd,IAAY,EACZ,KAAc,EACd,UAAmB;QAHnB,SAAI,GAAJ,IAAI,CAAU;QACd,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAS;QACd,eAAU,GAAV,UAAU,CAAS;IACnC,CAAC;IAEL,MAAM,CAAC,EAAE,CACL,IAAc,EACd,IAAY,EACZ,KAAc,EACd,UAAmB;QAEnB,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;CACJ;AAhBD,gCAgBC;AAED,MAAa,WAAW;IACpB,YACoB,QAAsB,EACtB,WAAoB;
|
|
1
|
+
{"version":3,"file":"flag.dto.js","sourceRoot":"","sources":["../../../../src/api/flag/data/flag.dto.ts"],"names":[],"mappings":";;;AAIA,MAAa,UAAU;IACnB,YACoB,IAAc,EACd,IAAY,EACZ,KAAc,EACd,UAAmB;QAHnB,SAAI,GAAJ,IAAI,CAAU;QACd,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAS;QACd,eAAU,GAAV,UAAU,CAAS;IACnC,CAAC;IAEL,MAAM,CAAC,EAAE,CACL,IAAc,EACd,IAAY,EACZ,KAAc,EACd,UAAmB;QAEnB,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;CACJ;AAhBD,gCAgBC;AAED,MAAa,WAAW;IACpB,YACoB,QAAsB,EACtB,WAAoB,EACpB,KAAa,EACb,UAAkB;QAHlB,aAAQ,GAAR,QAAQ,CAAc;QACtB,gBAAW,GAAX,WAAW,CAAS;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAQ;IAClC,CAAC;IAEL,MAAM,CAAC,EAAE,CACL,QAAsB,EACtB,WAAoB,EACpB,KAAa,EACb,UAAkB;QAElB,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;CACJ;AAhBD,kCAgBC;AAED,MAAa,OAAO;IAChB,YACoB,KAAa,EACb,aAAsB,EACtB,gBAAyB,EACzB,YAAqB;QAHrB,UAAK,GAAL,KAAK,CAAQ;QACb,kBAAa,GAAb,aAAa,CAAS;QACtB,qBAAgB,GAAhB,gBAAgB,CAAS;QACzB,iBAAY,GAAZ,YAAY,CAAS;IACrC,CAAC;IAEL,MAAM,CAAC,EAAE,CAAC,KAAa,EAAE,IAAoB;QACzC,OAAO,IAAI,OAAO,CACd,KAAK,EACL,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,EACnB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EACtB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CACrB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAU;QACpB,OAAO,IAAI,OAAO,CACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAC1B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,CACpB,CAAC;IACN,CAAC;CACJ;AAzBD,0BAyBC"}
|
|
@@ -12,28 +12,46 @@ let FlagMemoryRepository = class FlagMemoryRepository {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
this.flags = new Map();
|
|
14
14
|
}
|
|
15
|
-
async set(key, value, _source,
|
|
16
|
-
this.flags.set(key, value);
|
|
15
|
+
async set(key, value, _source, ttlMillis) {
|
|
16
|
+
this.flags.set(key, { value, expiresAt: this.expirationFor(key, ttlMillis) });
|
|
17
17
|
return { value };
|
|
18
18
|
}
|
|
19
19
|
async get(key) {
|
|
20
|
-
|
|
20
|
+
const flag = this.getLive(key);
|
|
21
|
+
if (!flag) {
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
return { value };
|
|
24
|
+
return { value: flag.value };
|
|
25
25
|
}
|
|
26
26
|
async del(key) {
|
|
27
27
|
this.flags.delete(key);
|
|
28
28
|
}
|
|
29
29
|
async has(key) {
|
|
30
|
-
return this.
|
|
30
|
+
return this.getLive(key) !== null;
|
|
31
31
|
}
|
|
32
32
|
async listFlags(prefix) {
|
|
33
33
|
return Array.from(this.flags.keys())
|
|
34
|
-
.filter((key) => key.startsWith(prefix))
|
|
34
|
+
.filter((key) => key.startsWith(prefix) && this.getLive(key))
|
|
35
35
|
.sort((a, b) => a.localeCompare(b));
|
|
36
36
|
}
|
|
37
|
+
expirationFor(key, ttlMillis) {
|
|
38
|
+
var _a;
|
|
39
|
+
if (ttlMillis) {
|
|
40
|
+
return Date.now() + ttlMillis;
|
|
41
|
+
}
|
|
42
|
+
return (_a = this.getLive(key)) === null || _a === void 0 ? void 0 : _a.expiresAt;
|
|
43
|
+
}
|
|
44
|
+
getLive(key) {
|
|
45
|
+
const flag = this.flags.get(key);
|
|
46
|
+
if (!flag) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (flag.expiresAt && flag.expiresAt <= Date.now()) {
|
|
50
|
+
this.flags.delete(key);
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return flag;
|
|
54
|
+
}
|
|
37
55
|
};
|
|
38
56
|
exports.FlagMemoryRepository = FlagMemoryRepository;
|
|
39
57
|
exports.FlagMemoryRepository = FlagMemoryRepository = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flag.memory-repository.js","sourceRoot":"","sources":["../../../src/api/flag/flag.memory-repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4DAAuD;
|
|
1
|
+
{"version":3,"file":"flag.memory-repository.js","sourceRoot":"","sources":["../../../src/api/flag/flag.memory-repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4DAAuD;AAShD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACc,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAmDhE,CAAC;IAjDG,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,OAAmB,EAAE,SAAkB;QACtE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAG,CAAC,IAAI,EAAE,CAAC;YACP,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,SAAkB;;QACjD,IAAG,SAAS,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0CAAE,SAAS,CAAC;IACxC,CAAC;IAEO,OAAO,CAAC,GAAW;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAG,CAAC,IAAI,EAAE,CAAC;YACP,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AApDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,iBAAO,GAAE;GACG,oBAAoB,CAoDhC"}
|
|
@@ -94,7 +94,13 @@ let FlagService = class FlagService {
|
|
|
94
94
|
}),
|
|
95
95
|
...flags.map((name) => flag_dto_1.FlagKeyDto.of('FLAG', name)),
|
|
96
96
|
];
|
|
97
|
-
|
|
97
|
+
let count = 0;
|
|
98
|
+
let matchCount = 0;
|
|
99
|
+
for (const groupCounts of counts.values()) {
|
|
100
|
+
count += groupCounts.total;
|
|
101
|
+
matchCount += groupCounts.matches;
|
|
102
|
+
}
|
|
103
|
+
return flag_dto_1.FlagListDto.of(flagKeys, isTruncated, count, matchCount);
|
|
98
104
|
}
|
|
99
105
|
normalizePrefix(prefix) {
|
|
100
106
|
if (!prefix) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flag.service.js","sourceRoot":"","sources":["../../../src/api/flag/flag.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"flag.service.js","sourceRoot":"","sources":["../../../src/api/flag/flag.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.MockService = void 0;
|
|
16
|
+
exports.isReservedPath = isReservedPath;
|
|
16
17
|
const service_1 = require("../../utils/decorators/service");
|
|
17
18
|
const mock_repository_1 = require("./mock.repository");
|
|
18
19
|
const proxy_controller_1 = require("../proxy/proxy.controller");
|
|
@@ -26,6 +27,9 @@ const FlagHelpers = require("../../helpers/flag");
|
|
|
26
27
|
const definition_provider_1 = require("../../definitions/definition.provider");
|
|
27
28
|
const bigodon_1 = require("bigodon");
|
|
28
29
|
const core_mock_dto_1 = require("./data/core-mock.dto");
|
|
30
|
+
function isReservedPath(path) {
|
|
31
|
+
return path === '/__mocko__' || path.startsWith('/__mocko__/');
|
|
32
|
+
}
|
|
29
33
|
let MockService = class MockService {
|
|
30
34
|
constructor(logger, repository, proxyController, flagService, definitionProvider) {
|
|
31
35
|
this.logger = logger;
|
|
@@ -40,7 +44,7 @@ let MockService = class MockService {
|
|
|
40
44
|
this.registerHelpers();
|
|
41
45
|
return options.mocks
|
|
42
46
|
.filter((mock) => mock.isEnabled)
|
|
43
|
-
.filter((mock) => !
|
|
47
|
+
.filter((mock) => !isReservedPath(mock.path))
|
|
44
48
|
.map((mock) => this.mockToRoute(mock, options.data, options.hosts));
|
|
45
49
|
}
|
|
46
50
|
mockToRoute(mock, data, hosts) {
|
|
@@ -83,9 +87,6 @@ let MockService = class MockService {
|
|
|
83
87
|
const failure = await this.repository.getFailure(id);
|
|
84
88
|
return core_mock_dto_1.CoreMockDetailsDto.of(mock, failure);
|
|
85
89
|
}
|
|
86
|
-
isReservedPath(path) {
|
|
87
|
-
return path === '/__mocko__' || path.startsWith('/__mocko__/');
|
|
88
|
-
}
|
|
89
90
|
registerHelpers() {
|
|
90
91
|
this.bigodon.addHelper('log', LogHelpers.log(this.logger));
|
|
91
92
|
this.bigodon.addHelper('warn', LogHelpers.warn(this.logger));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.service.js","sourceRoot":"","sources":["../../../src/api/mock/mock.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mock.service.js","sourceRoot":"","sources":["../../../src/api/mock/mock.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ const definitionSchema = Joi.object({
|
|
|
13
13
|
.pattern(Joi.string(), Joi.object().pattern(Joi.string(), Joi.any()))
|
|
14
14
|
.optional(),
|
|
15
15
|
});
|
|
16
|
-
const definitionFromConfig = (config, onMockError) => {
|
|
16
|
+
const definitionFromConfig = (config, onMockError, onHostError) => {
|
|
17
17
|
const mergedMocks = (0, utils_1.mergeRecords)(config.mock || []);
|
|
18
18
|
const mocks = Object.entries(mergedMocks)
|
|
19
19
|
.flatMap(([req, resList]) => resList.map(res => [req, res]))
|
|
@@ -30,7 +30,18 @@ const definitionFromConfig = (config, onMockError) => {
|
|
|
30
30
|
const data = config.data && Object.fromEntries(Object.entries(mergedDataBlocks)
|
|
31
31
|
.map(([key, values]) => [key, (0, utils_1.mergeRecords)(values)]));
|
|
32
32
|
const hosts = Object.entries((0, utils_1.mergeRecords)(config.host || []))
|
|
33
|
-
.
|
|
33
|
+
.flatMap(([name, data]) => {
|
|
34
|
+
try {
|
|
35
|
+
return [(0, host_1.hostFromConfig)(name, data)];
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
if (!onHostError) {
|
|
39
|
+
throw e;
|
|
40
|
+
}
|
|
41
|
+
onHostError(e);
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
34
45
|
return { mocks, data, hosts };
|
|
35
46
|
};
|
|
36
47
|
exports.definitionFromConfig = definitionFromConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocko-definition.js","sourceRoot":"","sources":["../../../src/definitions/data/mocko-definition.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mocko-definition.js","sourceRoot":"","sources":["../../../src/definitions/data/mocko-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ const Hoek = require("@hapi/hoek");
|
|
|
26
26
|
const sync_1 = require("@mocko/sync");
|
|
27
27
|
const uuid_1 = require("uuid");
|
|
28
28
|
const utils_1 = require("../utils/utils");
|
|
29
|
+
const diagnostics_1 = require("./diagnostics");
|
|
29
30
|
const debug = require('debug')('mocko:proxy:definition:provider');
|
|
30
31
|
const { readFile, readdir, lstat } = fs_1.promises;
|
|
31
32
|
const MOCKS_DIR = process.env['MOCKS_FOLDER'] || "mocks";
|
|
@@ -34,9 +35,10 @@ const HCL_EXTENSION = ".hcl";
|
|
|
34
35
|
const DOT = ".";
|
|
35
36
|
const FILE_ID_NAMESPACE = '4e88cbd8-4eaf-48c1-a4e9-d958802337e3';
|
|
36
37
|
let DefinitionProvider = class DefinitionProvider {
|
|
37
|
-
constructor(logger, redis) {
|
|
38
|
+
constructor(logger, redis, diagnostics) {
|
|
38
39
|
this.logger = logger;
|
|
39
40
|
this.redis = redis;
|
|
41
|
+
this.diagnostics = diagnostics;
|
|
40
42
|
this.deployDefinition = null;
|
|
41
43
|
}
|
|
42
44
|
async getDefinitions() {
|
|
@@ -142,14 +144,40 @@ let DefinitionProvider = class DefinitionProvider {
|
|
|
142
144
|
async optionsFromFile(path) {
|
|
143
145
|
const content = await readFile(path);
|
|
144
146
|
const [data, error] = (0, hcl_parser_1.parse)(content.toString());
|
|
147
|
+
const file = this.normalizePath(path);
|
|
145
148
|
if (error) {
|
|
146
149
|
this.logger.warn(`Failed to parse file '${path}:${error.Pos.Line}:${error.Pos.Column}'`);
|
|
150
|
+
this.diagnostics.push({
|
|
151
|
+
code: 'hcl-parse-error',
|
|
152
|
+
severity: 'error',
|
|
153
|
+
file,
|
|
154
|
+
message: `syntax error at line ${error.Pos.Line}, column ${error.Pos.Column}`,
|
|
155
|
+
});
|
|
147
156
|
return null;
|
|
148
157
|
}
|
|
149
|
-
const definition = (0, mocko_definition_1.definitionFromConfig)(data, (e) =>
|
|
158
|
+
const definition = (0, mocko_definition_1.definitionFromConfig)(data, (e) => {
|
|
159
|
+
this.logger.warn(`Invalid mock on file '${path}': ${e.message}`);
|
|
160
|
+
this.diagnostics.push({
|
|
161
|
+
code: 'invalid-mock',
|
|
162
|
+
severity: 'error',
|
|
163
|
+
file,
|
|
164
|
+
message: e.message,
|
|
165
|
+
});
|
|
166
|
+
}, (e) => {
|
|
167
|
+
this.logger.warn(`Invalid host on file '${path}': ${e.message}`);
|
|
168
|
+
this.diagnostics.push({
|
|
169
|
+
code: 'invalid-host',
|
|
170
|
+
severity: 'error',
|
|
171
|
+
file,
|
|
172
|
+
message: e.message,
|
|
173
|
+
});
|
|
174
|
+
});
|
|
150
175
|
definition.mocks = this.withFileMetadata(path, definition.mocks);
|
|
151
176
|
return definition;
|
|
152
177
|
}
|
|
178
|
+
normalizePath(filePath) {
|
|
179
|
+
return (0, path_1.relative)(MOCKS_DIR, filePath).replace(/\\/g, '/');
|
|
180
|
+
}
|
|
153
181
|
withSource(mocks, source) {
|
|
154
182
|
return mocks.map((mock) => ({
|
|
155
183
|
...mock,
|
|
@@ -157,8 +185,7 @@ let DefinitionProvider = class DefinitionProvider {
|
|
|
157
185
|
}));
|
|
158
186
|
}
|
|
159
187
|
withFileMetadata(filePath, mocks) {
|
|
160
|
-
const normalizedFilePath =
|
|
161
|
-
.replace(/\\/g, '/');
|
|
188
|
+
const normalizedFilePath = this.normalizePath(filePath);
|
|
162
189
|
const seeds = mocks.map((mock) => this.fileIdSeed(normalizedFilePath, mock));
|
|
163
190
|
const idSeeds = this.disambiguateSeeds(seeds);
|
|
164
191
|
return mocks.map((mock, index) => {
|
|
@@ -199,6 +226,7 @@ __decorate([
|
|
|
199
226
|
exports.DefinitionProvider = DefinitionProvider = __decorate([
|
|
200
227
|
(0, provider_1.Provider)(),
|
|
201
228
|
__param(0, (0, inversify_1.inject)(logger_1.Logger)),
|
|
202
|
-
__metadata("design:paramtypes", [Object, redis_provider_1.RedisProvider
|
|
229
|
+
__metadata("design:paramtypes", [Object, redis_provider_1.RedisProvider,
|
|
230
|
+
diagnostics_1.DiagnosticsCollector])
|
|
203
231
|
], DefinitionProvider);
|
|
204
232
|
//# sourceMappingURL=definition.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.provider.js","sourceRoot":"","sources":["../../src/definitions/definition.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAmC;AACnC,2DAAwD;AACxD,8DAAoG;AACpG,4CAAkD;AAClD,4DAAwD;AACxD,iEAAkE;AAClE,2BAA8B;AAC9B,+BAAsC;AACtC,2CAAiC;AACjC,mCAAmC;AACnC,sCAA0C;AAC1C,+BAAoC;AAGpC,0CAA2C;
|
|
1
|
+
{"version":3,"file":"definition.provider.js","sourceRoot":"","sources":["../../src/definitions/definition.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DiagnosticsCollector = void 0;
|
|
10
|
+
const provider_1 = require("../utils/decorators/provider");
|
|
11
|
+
let DiagnosticsCollector = class DiagnosticsCollector {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.enabled = false;
|
|
14
|
+
this.items = [];
|
|
15
|
+
}
|
|
16
|
+
enable() {
|
|
17
|
+
this.enabled = true;
|
|
18
|
+
}
|
|
19
|
+
push(diagnostic) {
|
|
20
|
+
if (this.enabled) {
|
|
21
|
+
this.items.push(diagnostic);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
get diagnostics() {
|
|
25
|
+
return [...this.items];
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.DiagnosticsCollector = DiagnosticsCollector;
|
|
29
|
+
exports.DiagnosticsCollector = DiagnosticsCollector = __decorate([
|
|
30
|
+
(0, provider_1.Provider)()
|
|
31
|
+
], DiagnosticsCollector);
|
|
32
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/definitions/diagnostics.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2DAAwD;AAajD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACK,YAAO,GAAG,KAAK,CAAC;QACP,UAAK,GAAiB,EAAE,CAAC;IAe9C,CAAC;IAbG,MAAM;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,UAAsB;QACvB,IAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACJ,CAAA;AAjBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAQ,GAAE;GACE,oBAAoB,CAiBhC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RouteRegistrar = void 0;
|
|
16
|
+
const inversify_1 = require("inversify");
|
|
17
|
+
const provider_1 = require("./utils/decorators/provider");
|
|
18
|
+
const logger_1 = require("./utils/logger");
|
|
19
|
+
const diagnostics_1 = require("./definitions/diagnostics");
|
|
20
|
+
const debug = require('debug')('mocko:proxy:server');
|
|
21
|
+
let RouteRegistrar = class RouteRegistrar {
|
|
22
|
+
constructor(logger, diagnostics) {
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
this.diagnostics = diagnostics;
|
|
25
|
+
}
|
|
26
|
+
register(server, route) {
|
|
27
|
+
var _a;
|
|
28
|
+
try {
|
|
29
|
+
const logMessage = `Mapping '${route.vhost ? `(${route.vhost}) ` : ''}${route.method} ${route.path}'`;
|
|
30
|
+
if ((_a = route.rules) === null || _a === void 0 ? void 0 : _a['mapSilently']) {
|
|
31
|
+
debug(logMessage);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.logger.info(logMessage);
|
|
35
|
+
}
|
|
36
|
+
server.route(route);
|
|
37
|
+
this.validateRoutePath(route);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
this.logger.warn(`Failed to map '${route.method} ${route.path}': ${e.message}`);
|
|
41
|
+
const isQueryInPath = route.path.includes('?');
|
|
42
|
+
this.diagnostics.push({
|
|
43
|
+
code: isQueryInPath ? 'query-in-path' : 'route-mapping-failed',
|
|
44
|
+
severity: 'error',
|
|
45
|
+
mock: `${route.method} ${route.path}`,
|
|
46
|
+
message: isQueryInPath
|
|
47
|
+
? "query parameters can't be part of the path"
|
|
48
|
+
: `failed to map the route: ${e.message}`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
validateRoutePath(route) {
|
|
53
|
+
const path = route.path;
|
|
54
|
+
const docsRef = "On Mocko generic parameters are defined with '{param}'. Have a look at our docs:\nhttps://docs.mocko.dev/getting-started/standalone/#method-and-path";
|
|
55
|
+
if (path.match(/\/\*($|\/)/)) {
|
|
56
|
+
this.logger.warn(`The path '${path}' contains a '*'. ${docsRef}`);
|
|
57
|
+
this.pushSuspiciousPath(route, "the path contains a '*' wildcard");
|
|
58
|
+
}
|
|
59
|
+
if (path.match(/\/:./)) {
|
|
60
|
+
this.logger.warn(`The path '${path}' contains a parameter defined with ':param'. ${docsRef}`);
|
|
61
|
+
this.pushSuspiciousPath(route, "the path contains an Express-style ':param' parameter");
|
|
62
|
+
}
|
|
63
|
+
if (path.match(/\/\$\{\w*\}/)) {
|
|
64
|
+
this.logger.warn(`The path '${path}' contains a parameter defined with '\${param}'. ${docsRef}`);
|
|
65
|
+
this.pushSuspiciousPath(route, "the path contains a parameter defined with '${param}'");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
pushSuspiciousPath(route, message) {
|
|
69
|
+
this.diagnostics.push({
|
|
70
|
+
code: 'suspicious-path',
|
|
71
|
+
severity: 'warning',
|
|
72
|
+
mock: `${route.method} ${route.path}`,
|
|
73
|
+
message,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
exports.RouteRegistrar = RouteRegistrar;
|
|
78
|
+
exports.RouteRegistrar = RouteRegistrar = __decorate([
|
|
79
|
+
(0, provider_1.Provider)(),
|
|
80
|
+
__param(0, (0, inversify_1.inject)(logger_1.Logger)),
|
|
81
|
+
__metadata("design:paramtypes", [Object, diagnostics_1.DiagnosticsCollector])
|
|
82
|
+
], RouteRegistrar);
|
|
83
|
+
//# sourceMappingURL=route-registrar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-registrar.js","sourceRoot":"","sources":["../src/route-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAmC;AAGnC,0DAAuD;AACvD,2CAAiD;AACjD,2DAAiE;AAEjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAG9C,IAAM,cAAc,GAApB,MAAM,cAAc;IACvB,YAEqB,MAAe,EACf,WAAiC;QADjC,WAAM,GAAN,MAAM,CAAS;QACf,gBAAW,GAAX,WAAW,CAAsB;IAClD,CAAC;IAEL,QAAQ,CAAC,MAAmB,EAAE,KAAkB;;QAC5C,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAA,CAAC,CAAA,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;YAEpG,IAAG,MAAA,KAAK,CAAC,KAAK,0CAAG,aAAa,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB;gBAC9D,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;gBACrC,OAAO,EAAE,aAAa;oBAClB,CAAC,CAAC,4CAA4C;oBAC9C,CAAC,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE;aAChD,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAkB;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,sJAAsJ,CAAC;QAEvK,IAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,qBAAqB,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;QACvE,CAAC;QACD,IAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,iDAAiD,OAAO,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,uDAAuD,CAAC,CAAC;QAC5F,CAAC;QACD,IAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,oDAAoD,OAAO,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,uDAAuD,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAkB,EAAE,OAAe;QAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;YACrC,OAAO;SACV,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA3DY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAQ,GAAE;IAGF,WAAA,IAAA,kBAAM,EAAC,eAAM,CAAC,CAAA;6CAEe,kCAAoB;GAJ7C,cAAc,CA2D1B"}
|