@trayio/commons 0.0.1-beta

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 (113) hide show
  1. package/LICENSE.txt +22 -0
  2. package/dist/base64/Base64.d.ts +18 -0
  3. package/dist/base64/Base64.d.ts.map +1 -0
  4. package/dist/base64/Base64.js +52 -0
  5. package/dist/base64/Base64.unit.test.d.ts +2 -0
  6. package/dist/base64/Base64.unit.test.d.ts.map +1 -0
  7. package/dist/base64/Base64.unit.test.js +50 -0
  8. package/dist/buffer/BufferExtensions.d.ts +9 -0
  9. package/dist/buffer/BufferExtensions.d.ts.map +1 -0
  10. package/dist/buffer/BufferExtensions.js +68 -0
  11. package/dist/buffer/BufferExtensions.unit.test.d.ts +2 -0
  12. package/dist/buffer/BufferExtensions.unit.test.d.ts.map +1 -0
  13. package/dist/buffer/BufferExtensions.unit.test.js +47 -0
  14. package/dist/callsite/CallSite.d.ts +9 -0
  15. package/dist/callsite/CallSite.d.ts.map +1 -0
  16. package/dist/callsite/CallSite.js +50 -0
  17. package/dist/cli/CliLogging.d.ts +11 -0
  18. package/dist/cli/CliLogging.d.ts.map +1 -0
  19. package/dist/cli/CliLogging.js +9 -0
  20. package/dist/codec/Codec.abstract.test.d.ts +8 -0
  21. package/dist/codec/Codec.abstract.test.d.ts.map +1 -0
  22. package/dist/codec/Codec.abstract.test.js +42 -0
  23. package/dist/codec/Codec.d.ts +6 -0
  24. package/dist/codec/Codec.d.ts.map +1 -0
  25. package/dist/codec/Codec.js +2 -0
  26. package/dist/codec/CompositeCodec.d.ts +11 -0
  27. package/dist/codec/CompositeCodec.d.ts.map +1 -0
  28. package/dist/codec/CompositeCodec.js +44 -0
  29. package/dist/codec/RemoveNullValuesCodec.d.ts +12 -0
  30. package/dist/codec/RemoveNullValuesCodec.d.ts.map +1 -0
  31. package/dist/codec/RemoveNullValuesCodec.js +76 -0
  32. package/dist/codec/TypeCodec.d.ts +16 -0
  33. package/dist/codec/TypeCodec.d.ts.map +1 -0
  34. package/dist/codec/TypeCodec.js +58 -0
  35. package/dist/codec/TypeCodec.unit.test.d.ts +2 -0
  36. package/dist/codec/TypeCodec.unit.test.d.ts.map +1 -0
  37. package/dist/codec/TypeCodec.unit.test.js +97 -0
  38. package/dist/dynamictype/DynamicType.d.ts +20 -0
  39. package/dist/dynamictype/DynamicType.d.ts.map +1 -0
  40. package/dist/dynamictype/DynamicType.js +49 -0
  41. package/dist/error/Error.d.ts +2 -0
  42. package/dist/error/Error.d.ts.map +1 -0
  43. package/dist/error/Error.js +13 -0
  44. package/dist/file/FakeFileStorage.d.ts +12 -0
  45. package/dist/file/FakeFileStorage.d.ts.map +1 -0
  46. package/dist/file/FakeFileStorage.integration.test.d.ts +2 -0
  47. package/dist/file/FakeFileStorage.integration.test.d.ts.map +1 -0
  48. package/dist/file/FakeFileStorage.integration.test.js +7 -0
  49. package/dist/file/FakeFileStorage.js +60 -0
  50. package/dist/file/File.d.ts +29 -0
  51. package/dist/file/File.d.ts.map +1 -0
  52. package/dist/file/File.js +36 -0
  53. package/dist/file/FileStorage.abstract.test.d.ts +3 -0
  54. package/dist/file/FileStorage.abstract.test.d.ts.map +1 -0
  55. package/dist/file/FileStorage.abstract.test.js +109 -0
  56. package/dist/file/NodeFsFileStorage.d.ts +12 -0
  57. package/dist/file/NodeFsFileStorage.d.ts.map +1 -0
  58. package/dist/file/NodeFsFileStorage.integration.test.d.ts +2 -0
  59. package/dist/file/NodeFsFileStorage.integration.test.d.ts.map +1 -0
  60. package/dist/file/NodeFsFileStorage.integration.test.js +7 -0
  61. package/dist/file/NodeFsFileStorage.js +82 -0
  62. package/dist/http/Http.d.ts +55 -0
  63. package/dist/http/Http.d.ts.map +1 -0
  64. package/dist/http/Http.js +64 -0
  65. package/dist/http/HttpClient.abstract.test.d.ts +3 -0
  66. package/dist/http/HttpClient.abstract.test.d.ts.map +1 -0
  67. package/dist/http/HttpClient.abstract.test.js +354 -0
  68. package/dist/http/HttpClient.d.ts +6 -0
  69. package/dist/http/HttpClient.d.ts.map +1 -0
  70. package/dist/http/HttpClient.js +2 -0
  71. package/dist/http/HttpController.d.ts +11 -0
  72. package/dist/http/HttpController.d.ts.map +1 -0
  73. package/dist/http/HttpController.js +2 -0
  74. package/dist/logging/Logging.d.ts +10 -0
  75. package/dist/logging/Logging.d.ts.map +1 -0
  76. package/dist/logging/Logging.js +2 -0
  77. package/dist/record/Record.d.ts +4 -0
  78. package/dist/record/Record.d.ts.map +1 -0
  79. package/dist/record/Record.js +35 -0
  80. package/dist/result/Result.d.ts +31 -0
  81. package/dist/result/Result.d.ts.map +1 -0
  82. package/dist/result/Result.js +68 -0
  83. package/dist/serialization/JsonSerialization.d.ts +10 -0
  84. package/dist/serialization/JsonSerialization.d.ts.map +1 -0
  85. package/dist/serialization/JsonSerialization.js +49 -0
  86. package/dist/serialization/JsonSerialization.unit.test.d.ts +2 -0
  87. package/dist/serialization/JsonSerialization.unit.test.d.ts.map +1 -0
  88. package/dist/serialization/JsonSerialization.unit.test.js +5 -0
  89. package/dist/serialization/Serialization.abstract.test.d.ts +3 -0
  90. package/dist/serialization/Serialization.abstract.test.d.ts.map +1 -0
  91. package/dist/serialization/Serialization.abstract.test.js +54 -0
  92. package/dist/serialization/Serialization.d.ts +10 -0
  93. package/dist/serialization/Serialization.d.ts.map +1 -0
  94. package/dist/serialization/Serialization.js +7 -0
  95. package/dist/string/StringConversions.d.ts +6 -0
  96. package/dist/string/StringConversions.d.ts.map +1 -0
  97. package/dist/string/StringConversions.js +16 -0
  98. package/dist/string/StringConversions.unit.test.d.ts +2 -0
  99. package/dist/string/StringConversions.unit.test.d.ts.map +1 -0
  100. package/dist/string/StringConversions.unit.test.js +36 -0
  101. package/dist/string/StringExtensions.d.ts +6 -0
  102. package/dist/string/StringExtensions.d.ts.map +1 -0
  103. package/dist/string/StringExtensions.js +8 -0
  104. package/dist/string/StringExtensions.unit.test.d.ts +2 -0
  105. package/dist/string/StringExtensions.unit.test.d.ts.map +1 -0
  106. package/dist/string/StringExtensions.unit.test.js +39 -0
  107. package/dist/task/Task.d.ts +7 -0
  108. package/dist/task/Task.d.ts.map +1 -0
  109. package/dist/task/Task.js +14 -0
  110. package/dist/try/Try.d.ts +3 -0
  111. package/dist/try/Try.d.ts.map +1 -0
  112. package/dist/try/Try.js +37 -0
  113. package/package.json +41 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.addValuesToRecordIfPresent = exports.addValueToRecordIfPresent = void 0;
27
+ const O = __importStar(require("fp-ts/Option"));
28
+ const A = __importStar(require("fp-ts/Array"));
29
+ const addValueToRecordIfPresent = (record, key, valueOpt) => O.getOrElse(() => record)(O.map((value) => {
30
+ record[key] = value;
31
+ return record;
32
+ })(valueOpt));
33
+ exports.addValueToRecordIfPresent = addValueToRecordIfPresent;
34
+ const addValuesToRecordIfPresent = (record, valuesToAdd) => A.reduce(record, (acc, key) => (0, exports.addValueToRecordIfPresent)(acc, key, valuesToAdd[key]))(Object.keys(valuesToAdd));
35
+ exports.addValuesToRecordIfPresent = addValuesToRecordIfPresent;
@@ -0,0 +1,31 @@
1
+ import * as E from 'fp-ts/Either';
2
+ export type Failure<E> = {
3
+ readonly _tag: 'Failure';
4
+ readonly isSuccess: false;
5
+ readonly isFailure: true;
6
+ readonly error: E;
7
+ };
8
+ export type Success<T> = {
9
+ readonly _tag: 'Success';
10
+ readonly isSuccess: true;
11
+ readonly isFailure: false;
12
+ readonly value: T;
13
+ };
14
+ export type Result<E, T> = Failure<E> | Success<T>;
15
+ export declare class ResultFailureError<E> extends Error {
16
+ failureCause: E;
17
+ constructor(failureCause: E);
18
+ }
19
+ export interface ResultInterface {
20
+ success: <E, T>(value: T) => Result<E, T>;
21
+ failure: <E, T>(error: E) => Result<E, T>;
22
+ getSuccessfulValueOrFail: <E, T>(result: Result<E, T>) => T;
23
+ map: <E, T, R>(result: Result<E, T>, mapping: (value: T) => R) => Result<E, R>;
24
+ }
25
+ export declare const Result: ResultInterface;
26
+ export interface ResultInternalInterface {
27
+ fromEitherWithSimpleError: <T>(either: E.Either<Error, T>) => Result<Error, T>;
28
+ fromEitherWithSimpleErrorAndUnknown: <T>(either: E.Either<Error, unknown>) => Result<Error, T>;
29
+ }
30
+ export declare const ResultInternal: ResultInternalInterface;
31
+ //# sourceMappingURL=Result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/result/Result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,KAAK;IAC5B,YAAY,EAAE,CAAC;gBAAf,YAAY,EAAE,CAAC;CAOlC;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACZ,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KACpB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,EAAE,eAgCpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACvC,yBAAyB,EAAE,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KACtB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtB,mCAAmC,EAAE,CAAC,CAAC,EACtC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAC5B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,uBAgB5B,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ResultInternal = exports.Result = exports.ResultFailureError = void 0;
27
+ const E = __importStar(require("fp-ts/Either"));
28
+ class ResultFailureError extends Error {
29
+ constructor(failureCause) {
30
+ super(`Result could not be read because it is a failure: ${JSON.stringify(failureCause)}`);
31
+ this.failureCause = failureCause;
32
+ }
33
+ }
34
+ exports.ResultFailureError = ResultFailureError;
35
+ exports.Result = {
36
+ success: (value) => ({
37
+ _tag: 'Success',
38
+ isSuccess: true,
39
+ isFailure: false,
40
+ value,
41
+ }),
42
+ failure: (error) => ({
43
+ _tag: 'Failure',
44
+ isSuccess: false,
45
+ isFailure: true,
46
+ error,
47
+ }),
48
+ getSuccessfulValueOrFail(result) {
49
+ switch (result.isSuccess) {
50
+ case true:
51
+ return result.value;
52
+ case false:
53
+ throw new ResultFailureError(result.error);
54
+ }
55
+ },
56
+ map: (result, mapping) => {
57
+ switch (result.isSuccess) {
58
+ case true:
59
+ return exports.Result.success(mapping(result.value));
60
+ case false:
61
+ return exports.Result.failure(result.error);
62
+ }
63
+ },
64
+ };
65
+ exports.ResultInternal = {
66
+ fromEitherWithSimpleError: (either) => E.match((error) => exports.Result.failure(error), (value) => exports.Result.success(value))(either),
67
+ fromEitherWithSimpleErrorAndUnknown: (either) => E.match((error) => exports.Result.failure(error), (value) => exports.Result.success(value))(either),
68
+ };
@@ -0,0 +1,10 @@
1
+ import * as E from 'fp-ts/Either';
2
+ import { Serialization, SerializationFormat } from './Serialization';
3
+ export declare class JsonSerialization implements Serialization {
4
+ private textEncoder;
5
+ private textDecoder;
6
+ format: SerializationFormat;
7
+ serialize(value: unknown): ArrayBuffer;
8
+ deserialize(value: ArrayBuffer): E.Either<Error, unknown>;
9
+ }
10
+ //# sourceMappingURL=JsonSerialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSerialization.d.ts","sourceRoot":"","sources":["../../src/serialization/JsonSerialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,qBAAa,iBAAkB,YAAW,aAAa;IACtD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAqB;IAExC,MAAM,EAAE,mBAAmB,CAA4B;IAEvD,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW;IAKtC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;CASzD"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.JsonSerialization = void 0;
27
+ const E = __importStar(require("fp-ts/Either"));
28
+ const util_1 = require("util");
29
+ const function_1 = require("fp-ts/function");
30
+ const Serialization_1 = require("./Serialization");
31
+ const Try_1 = require("../try/Try");
32
+ class JsonSerialization {
33
+ constructor() {
34
+ this.textEncoder = new util_1.TextEncoder();
35
+ this.textDecoder = new util_1.TextDecoder();
36
+ this.format = Serialization_1.SerializationFormat.Json;
37
+ }
38
+ serialize(value) {
39
+ const json = JSON.stringify(value);
40
+ return this.textEncoder.encode(json).buffer;
41
+ }
42
+ deserialize(value) {
43
+ if (value.byteLength === 0) {
44
+ return E.right(undefined);
45
+ }
46
+ return (0, function_1.pipe)((0, Try_1.tryToEither)(() => this.textDecoder.decode(value)), E.chain((str) => (0, Try_1.tryToEither)(() => JSON.parse(str))));
47
+ }
48
+ }
49
+ exports.JsonSerialization = JsonSerialization;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=JsonSerialization.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSerialization.unit.test.d.ts","sourceRoot":"","sources":["../../src/serialization/JsonSerialization.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Serialization_abstract_test_1 = require("./Serialization.abstract.test");
4
+ const JsonSerialization_1 = require("./JsonSerialization");
5
+ (0, Serialization_abstract_test_1.testSerialization)(new JsonSerialization_1.JsonSerialization());
@@ -0,0 +1,3 @@
1
+ import { Serialization } from './Serialization';
2
+ export declare function testSerialization(serialization: Serialization): void;
3
+ //# sourceMappingURL=Serialization.abstract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serialization.abstract.test.d.ts","sourceRoot":"","sources":["../../src/serialization/Serialization.abstract.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,QAyC7D"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.testSerialization = void 0;
27
+ const E = __importStar(require("fp-ts/Either"));
28
+ const O = __importStar(require("fp-ts/Option"));
29
+ const function_1 = require("fp-ts/function");
30
+ function testSerialization(serialization) {
31
+ describe('Serialization Test', () => {
32
+ test('should serialize and deserialize a value', () => {
33
+ const testValue = {
34
+ strField: 'str',
35
+ intField: O.some(123),
36
+ };
37
+ const result = (0, function_1.pipe)(E.right(serialization.serialize(testValue)), E.chain((serialized) => serialization.deserialize(serialized)));
38
+ expect(result).toStrictEqual(E.right(testValue));
39
+ });
40
+ test('should serialize undefined', () => {
41
+ const undefinedType = undefined;
42
+ const result = serialization.serialize(undefinedType);
43
+ const expected = new ArrayBuffer(0);
44
+ expect(result).toStrictEqual(expected);
45
+ });
46
+ test('should deserialize undefined', () => {
47
+ const undefinedSerialised = new ArrayBuffer(0);
48
+ const result = serialization.deserialize(undefinedSerialised);
49
+ const expected = E.right(undefined);
50
+ expect(result).toStrictEqual(expected);
51
+ });
52
+ });
53
+ }
54
+ exports.testSerialization = testSerialization;
@@ -0,0 +1,10 @@
1
+ import * as E from 'fp-ts/Either';
2
+ export declare enum SerializationFormat {
3
+ Json = "Json"
4
+ }
5
+ export interface Serialization {
6
+ format: SerializationFormat;
7
+ serialize(value: unknown): ArrayBuffer;
8
+ deserialize(value: ArrayBuffer): E.Either<Error, unknown>;
9
+ }
10
+ //# sourceMappingURL=Serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serialization.d.ts","sourceRoot":"","sources":["../../src/serialization/Serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,oBAAY,mBAAmB;IAC9B,IAAI,SAAS;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAE5B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC;IAEvC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializationFormat = void 0;
4
+ var SerializationFormat;
5
+ (function (SerializationFormat) {
6
+ SerializationFormat["Json"] = "Json";
7
+ })(SerializationFormat || (exports.SerializationFormat = SerializationFormat = {}));
@@ -0,0 +1,6 @@
1
+ export interface StringConversionsInterface {
2
+ toBoolean: (str: string) => boolean;
3
+ toNumber: (str: string) => number;
4
+ }
5
+ export declare const StringConversions: StringConversionsInterface;
6
+ //# sourceMappingURL=StringConversions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringConversions.d.ts","sourceRoot":"","sources":["../../src/string/StringConversions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,iBAAiB,EAAE,0BAY/B,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringConversions = void 0;
4
+ exports.StringConversions = {
5
+ toBoolean: (string) => {
6
+ switch (string.toLowerCase().trim()) {
7
+ case 'true':
8
+ return true;
9
+ case 'false':
10
+ return false;
11
+ default:
12
+ return Boolean(string);
13
+ }
14
+ },
15
+ toNumber: (string) => parseInt(string, 10),
16
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StringConversions.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringConversions.unit.test.d.ts","sourceRoot":"","sources":["../../src/string/StringConversions.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const StringConversions_1 = require("./StringConversions");
4
+ describe('StringConversions', () => {
5
+ describe('toBoolean', () => {
6
+ it('should convert "true" string to boolean true', () => {
7
+ expect(StringConversions_1.StringConversions.toBoolean('true')).toBe(true);
8
+ });
9
+ it('should convert "false" string to boolean false', () => {
10
+ expect(StringConversions_1.StringConversions.toBoolean('false')).toBe(false);
11
+ });
12
+ it('should convert non-boolean string to boolean', () => {
13
+ expect(StringConversions_1.StringConversions.toBoolean('hello')).toBe(true);
14
+ expect(StringConversions_1.StringConversions.toBoolean('')).toBe(false);
15
+ });
16
+ it('should handle case insensitivity', () => {
17
+ expect(StringConversions_1.StringConversions.toBoolean('TrUe')).toBe(true);
18
+ expect(StringConversions_1.StringConversions.toBoolean('FaLsE')).toBe(false);
19
+ });
20
+ it('should handle leading/trailing spaces', () => {
21
+ expect(StringConversions_1.StringConversions.toBoolean(' true ')).toBe(true);
22
+ expect(StringConversions_1.StringConversions.toBoolean(' false ')).toBe(false);
23
+ });
24
+ });
25
+ describe('toNumber', () => {
26
+ it('should convert string to number', () => {
27
+ expect(StringConversions_1.StringConversions.toNumber('123')).toBe(123);
28
+ });
29
+ it('should handle non-numeric string', () => {
30
+ expect(StringConversions_1.StringConversions.toNumber('hello')).toBeNaN();
31
+ });
32
+ it('should handle empty string', () => {
33
+ expect(StringConversions_1.StringConversions.toNumber('')).toBeNaN();
34
+ });
35
+ });
36
+ });
@@ -0,0 +1,6 @@
1
+ export interface StringExtensionsInterface {
2
+ pascalCase: (str: string) => string;
3
+ titleCase: (str: string) => string;
4
+ }
5
+ export declare const StringExtensions: StringExtensionsInterface;
6
+ //# sourceMappingURL=StringExtensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringExtensions.d.ts","sourceRoot":"","sources":["../../src/string/StringExtensions.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,gBAAgB,EAAE,yBAI9B,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringExtensions = void 0;
4
+ const lodash_1 = require("lodash");
5
+ exports.StringExtensions = {
6
+ pascalCase: (str) => (0, lodash_1.upperFirst)((0, lodash_1.camelCase)(str)),
7
+ titleCase: (value) => (0, lodash_1.capitalize)((0, lodash_1.startCase)(value).replace(/_|-/g, ' ')),
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StringExtensions.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringExtensions.unit.test.d.ts","sourceRoot":"","sources":["../../src/string/StringExtensions.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const StringExtensions_1 = require("./StringExtensions");
4
+ describe('StringExtensions', () => {
5
+ describe('pascalCase', () => {
6
+ it('should convert lowercase string to pascal case', () => {
7
+ expect(StringExtensions_1.StringExtensions.pascalCase('helloWorld')).toBe('HelloWorld');
8
+ });
9
+ it('should convert snake_case string to pascal case', () => {
10
+ expect(StringExtensions_1.StringExtensions.pascalCase('snake_case_example')).toBe('SnakeCaseExample');
11
+ });
12
+ it('should convert kebab-case string to pascal case', () => {
13
+ expect(StringExtensions_1.StringExtensions.pascalCase('kebab-case-example')).toBe('KebabCaseExample');
14
+ });
15
+ it('should handle empty string', () => {
16
+ expect(StringExtensions_1.StringExtensions.pascalCase('')).toBe('');
17
+ });
18
+ it('should handle single-letter string', () => {
19
+ expect(StringExtensions_1.StringExtensions.pascalCase('a')).toBe('A');
20
+ });
21
+ });
22
+ describe('titleCase', () => {
23
+ it('should convert lowercase string to title case', () => {
24
+ expect(StringExtensions_1.StringExtensions.titleCase('hello world')).toBe('Hello world');
25
+ });
26
+ it('should convert snake_case string to title case', () => {
27
+ expect(StringExtensions_1.StringExtensions.titleCase('snake_case_example')).toBe('Snake case example');
28
+ });
29
+ it('should convert kebab-case string to title case', () => {
30
+ expect(StringExtensions_1.StringExtensions.titleCase('kebab-case-example')).toBe('Kebab case example');
31
+ });
32
+ it('should handle empty string', () => {
33
+ expect(StringExtensions_1.StringExtensions.titleCase('')).toBe('');
34
+ });
35
+ it('should handle single-letter string', () => {
36
+ expect(StringExtensions_1.StringExtensions.titleCase('a')).toBe('A');
37
+ });
38
+ });
39
+ });
@@ -0,0 +1,7 @@
1
+ import { TaskEither } from 'fp-ts/TaskEither';
2
+ import { Either } from 'fp-ts/lib/Either';
3
+ export declare const createTaskEitherFromPromise: <E, T>(block: () => Promise<T>, errorHandling: (error: Error) => E) => TaskEither<E, T>;
4
+ export declare const createTaskEither: <E, T>(block: () => Promise<Either<E, T>>) => TaskEither<E, T>;
5
+ export declare const createTaskEitherFromEither: <E, T>(either: Either<E, T>) => TaskEither<E, T>;
6
+ export declare const createTaskEitherFromPromiseWithSimpleError: <T>(block: () => Promise<T>) => TaskEither<Error, T>;
7
+ //# sourceMappingURL=Task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAC9B,UAAU,CAAC,CAAC,EAAE,CAAC,CACwC,CAAC;AAE7D,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAC9B,UAAU,CAAC,CAAC,EAAE,CAAC,CAAoB,CAAC;AAGzC,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAChB,UAAU,CAAC,CAAC,EAAE,CAAC,CAC4B,CAAC;AAEjD,eAAO,MAAM,0CAA0C,EAAE,CAAC,CAAC,EAC1D,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,UAAU,CAAC,KAAK,EAAE,CAAC,CACqB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTaskEitherFromPromiseWithSimpleError = exports.createTaskEitherFromEither = exports.createTaskEither = exports.createTaskEitherFromPromise = void 0;
4
+ const TaskEither_1 = require("fp-ts/TaskEither");
5
+ const Error_1 = require("../error/Error");
6
+ const createTaskEitherFromPromise = (block, errorHandling) => (0, TaskEither_1.tryCatch)(block, (error) => errorHandling((0, Error_1.castError)(error)));
7
+ exports.createTaskEitherFromPromise = createTaskEitherFromPromise;
8
+ const createTaskEither = (block) => block;
9
+ exports.createTaskEither = createTaskEither;
10
+ // TODO: Remove, we can use TE.fromEither (double check that the other functions are necessary)
11
+ const createTaskEitherFromEither = (either) => (0, exports.createTaskEither)(() => Promise.resolve(either));
12
+ exports.createTaskEitherFromEither = createTaskEitherFromEither;
13
+ const createTaskEitherFromPromiseWithSimpleError = (block) => (0, TaskEither_1.tryCatch)(block, (error) => (0, Error_1.castError)(error));
14
+ exports.createTaskEitherFromPromiseWithSimpleError = createTaskEitherFromPromiseWithSimpleError;
@@ -0,0 +1,3 @@
1
+ import * as E from 'fp-ts/Either';
2
+ export declare const tryToEither: <T>(block: () => T) => E.Either<Error, T>;
3
+ //# sourceMappingURL=Try.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Try.d.ts","sourceRoot":"","sources":["../../src/try/Try.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAQjE,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.tryToEither = void 0;
27
+ const E = __importStar(require("fp-ts/Either"));
28
+ const Error_1 = require("../error/Error");
29
+ const tryToEither = (block) => {
30
+ try {
31
+ return E.right(block());
32
+ }
33
+ catch (error) {
34
+ return E.left((0, Error_1.castError)(error));
35
+ }
36
+ };
37
+ exports.tryToEither = tryToEither;
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@trayio/commons",
3
+ "version": "0.0.1-beta",
4
+ "description": "Extensions to the standard/core libraries and basic features",
5
+ "exports": {
6
+ "./*": "./dist/*.js"
7
+ },
8
+ "author": "Tray.io",
9
+ "license": "MIT",
10
+ "engines": {
11
+ "node": ">=18.x"
12
+ },
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "dependencies": {
17
+ "@types/formidable": "3.4.5",
18
+ "@types/node": "18.11.9",
19
+ "@types/uuid": "9.0.2",
20
+ "formidable": "^3.5.1",
21
+ "fp-ts": "2.12.3",
22
+ "io-ts": "2.2.20",
23
+ "io-ts-reporters": "2.0.1",
24
+ "io-ts-types": "0.5.19",
25
+ "lodash": "4.17.21",
26
+ "monocle-ts": "2.3.13",
27
+ "newtype-ts": "0.3.5",
28
+ "uuid": "9.0.0"
29
+ },
30
+ "typesVersions": {
31
+ "*": {
32
+ "*": [
33
+ "*",
34
+ "dist/*"
35
+ ]
36
+ }
37
+ },
38
+ "files": [
39
+ "/dist"
40
+ ]
41
+ }