@cryptexlabs/codex-nodejs-common 0.6.6 → 0.6.7

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/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from "@nestjs/common";
2
+ export declare class CustomParseBoolPipe implements PipeTransform<string | undefined | boolean | number, boolean> {
3
+ private readonly options?;
4
+ constructor(options?: {
5
+ required?: boolean;
6
+ });
7
+ transform(value: string | undefined | boolean | number): boolean | undefined;
8
+ }
@@ -0,0 +1,40 @@
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.CustomParseBoolPipe = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ let CustomParseBoolPipe = class CustomParseBoolPipe {
18
+ constructor(options) {
19
+ this.options = options;
20
+ }
21
+ transform(value) {
22
+ var _a;
23
+ if (["TRUE", "true", "YES", "yes", "1", true, 1].includes(value)) {
24
+ return true;
25
+ }
26
+ else if (["FALSE", "false", "NO", "no", "0", false, 0].includes(value)) {
27
+ return false;
28
+ }
29
+ else if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.required) !== false) {
30
+ throw new common_1.BadRequestException("Invalid boolean value");
31
+ }
32
+ }
33
+ };
34
+ CustomParseBoolPipe = __decorate([
35
+ common_1.Injectable(),
36
+ __param(0, common_1.Optional()),
37
+ __metadata("design:paramtypes", [Object])
38
+ ], CustomParseBoolPipe);
39
+ exports.CustomParseBoolPipe = CustomParseBoolPipe;
40
+ //# sourceMappingURL=custom.parse-bool.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.parse-bool.pipe.js","sourceRoot":"","sources":["../../../src/pipe/custom.parse-bool.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AAGxB,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAE9B,YAAyC,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAC7E,SAAS,CAAC,KAA4C;;QACpD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxE,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,OAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,EAAE;YAC3C,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;SACxD;IACH,CAAC;CACF,CAAA;AAZY,mBAAmB;IAD/B,mBAAU,EAAE;IAGE,WAAA,iBAAQ,EAAE,CAAA;;GAFZ,mBAAmB,CAY/B;AAZY,kDAAmB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -0,0 +1,108 @@
1
+ import { CustomParseBoolPipe } from "./custom.parse-bool.pipe";
2
+ import { BadRequestException } from "@nestjs/common";
3
+
4
+ describe(CustomParseBoolPipe.name, () => {
5
+ let pipe: CustomParseBoolPipe;
6
+
7
+ beforeEach(() => {
8
+ pipe = new CustomParseBoolPipe();
9
+ });
10
+
11
+ it("Should parse 1", () => {
12
+ expect(pipe.transform(1)).toEqual(true);
13
+ });
14
+
15
+ it("Should parse 0", () => {
16
+ expect(pipe.transform(0)).toEqual(false);
17
+ });
18
+
19
+ it("Should parse true", () => {
20
+ expect(pipe.transform(true)).toEqual(true);
21
+ });
22
+
23
+ it("Should parse false", () => {
24
+ expect(pipe.transform(false)).toEqual(false);
25
+ });
26
+
27
+ it("Should parse 'true'", () => {
28
+ expect(pipe.transform("true")).toEqual(true);
29
+ });
30
+
31
+ it("Should parse 'false'", () => {
32
+ expect(pipe.transform("false")).toEqual(false);
33
+ });
34
+
35
+ it("Should parse '1'", () => {
36
+ expect(pipe.transform("1")).toEqual(true);
37
+ });
38
+
39
+ it("Should parse '0'", () => {
40
+ expect(pipe.transform("0")).toEqual(false);
41
+ });
42
+
43
+ it("Should parse 'TRUE'", () => {
44
+ expect(pipe.transform("TRUE")).toEqual(true);
45
+ });
46
+
47
+ it("Should parse 'FALSE'", () => {
48
+ expect(pipe.transform("FALSE")).toEqual(false);
49
+ });
50
+
51
+ it("Should not parse 'False'", () => {
52
+ expect(() => {
53
+ pipe.transform("False");
54
+ }).toThrow(BadRequestException);
55
+ });
56
+
57
+ it("Should not parse 'True'", () => {
58
+ expect(() => {
59
+ pipe.transform("True");
60
+ }).toThrow(BadRequestException);
61
+ });
62
+
63
+ it("Should parse 'yes'", () => {
64
+ expect(pipe.transform("yes")).toEqual(true);
65
+ });
66
+
67
+ it("Should parse 'no'", () => {
68
+ expect(pipe.transform("no")).toEqual(false);
69
+ });
70
+
71
+ it("Should parse 'YES'", () => {
72
+ expect(pipe.transform("YES")).toEqual(true);
73
+ });
74
+
75
+ it("Should parse 'NO'", () => {
76
+ expect(pipe.transform("NO")).toEqual(false);
77
+ });
78
+
79
+ it("Should not parse 'No'", () => {
80
+ expect(() => {
81
+ pipe.transform("No");
82
+ }).toThrow(BadRequestException);
83
+ });
84
+
85
+ it("Should not parse 'Yes'", () => {
86
+ expect(() => {
87
+ pipe.transform("Yes");
88
+ }).toThrow(BadRequestException);
89
+ });
90
+
91
+ it("Should require a value by default", () => {
92
+ expect(() => {
93
+ pipe.transform(undefined);
94
+ }).toThrow(BadRequestException);
95
+ });
96
+
97
+ it("Should not require if option specifies to not require it", () => {
98
+ expect(
99
+ new CustomParseBoolPipe({ required: false }).transform(undefined)
100
+ ).toBeUndefined();
101
+ });
102
+
103
+ it("Should require if option specifies to require it", () => {
104
+ expect(() => {
105
+ new CustomParseBoolPipe({ required: true }).transform(undefined);
106
+ }).toThrow(BadRequestException);
107
+ });
108
+ });
@@ -0,0 +1,21 @@
1
+ import {
2
+ BadRequestException,
3
+ Injectable,
4
+ Optional,
5
+ PipeTransform,
6
+ } from "@nestjs/common";
7
+
8
+ @Injectable()
9
+ export class CustomParseBoolPipe
10
+ implements PipeTransform<string | undefined | boolean | number, boolean> {
11
+ constructor(@Optional() private readonly options?: { required?: boolean }) {}
12
+ transform(value: string | undefined | boolean | number): boolean | undefined {
13
+ if (["TRUE", "true", "YES", "yes", "1", true, 1].includes(value)) {
14
+ return true;
15
+ } else if (["FALSE", "false", "NO", "no", "0", false, 0].includes(value)) {
16
+ return false;
17
+ } else if (this.options?.required !== false) {
18
+ throw new BadRequestException("Invalid boolean value");
19
+ }
20
+ }
21
+ }