@trayio/commons 5.35.0-unstable.fd7158a → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/base64/Base64.d.ts +10 -5
  2. package/dist/base64/Base64.d.ts.map +1 -1
  3. package/dist/base64/Base64.js +40 -8
  4. package/dist/base64/Base64.unit.test.js +27 -4
  5. package/dist/buffer/BufferExtensions.d.ts +4 -4
  6. package/dist/buffer/BufferExtensions.d.ts.map +1 -1
  7. package/dist/buffer/BufferExtensions.js +38 -25
  8. package/dist/buffer/BufferExtensions.unit.test.js +45 -22
  9. package/dist/callsite/CallSite.js +7 -17
  10. package/dist/codec/CamelCasePropertyNameCodec.d.ts +2 -2
  11. package/dist/codec/CamelCasePropertyNameCodec.d.ts.map +1 -1
  12. package/dist/codec/CamelCasePropertyNameCodec.js +25 -2
  13. package/dist/codec/Codec.abstract.test.d.ts +2 -2
  14. package/dist/codec/Codec.abstract.test.d.ts.map +1 -1
  15. package/dist/codec/Codec.abstract.test.js +31 -5
  16. package/dist/codec/Codec.d.ts +2 -2
  17. package/dist/codec/Codec.d.ts.map +1 -1
  18. package/dist/codec/CompositeCodec.d.ts +2 -2
  19. package/dist/codec/CompositeCodec.d.ts.map +1 -1
  20. package/dist/codec/CompositeCodec.js +26 -2
  21. package/dist/codec/PartialRedactionCodec.d.ts +2 -2
  22. package/dist/codec/PartialRedactionCodec.d.ts.map +1 -1
  23. package/dist/codec/PartialRedactionCodec.js +25 -2
  24. package/dist/codec/RemoveNullValuesCodec.d.ts +2 -2
  25. package/dist/codec/RemoveNullValuesCodec.d.ts.map +1 -1
  26. package/dist/codec/RemoveNullValuesCodec.js +25 -2
  27. package/dist/codec/RemoveTopLevelTagCodec.d.ts +2 -2
  28. package/dist/codec/RemoveTopLevelTagCodec.d.ts.map +1 -1
  29. package/dist/codec/RemoveTopLevelTagCodec.js +25 -2
  30. package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts +2 -2
  31. package/dist/codec/SensitiveRemoveTagAndRedactCodec.d.ts.map +1 -1
  32. package/dist/codec/SensitiveRemoveTagAndRedactCodec.js +25 -2
  33. package/dist/codec/SensitiveRemoveTagAndRedactCodec.unit.test.js +38 -15
  34. package/dist/codec/SnakeCasePropertyNameCodec.d.ts +2 -2
  35. package/dist/codec/SnakeCasePropertyNameCodec.d.ts.map +1 -1
  36. package/dist/codec/SnakeCasePropertyNameCodec.js +25 -2
  37. package/dist/codec/TypeCodec.d.ts +8 -24
  38. package/dist/codec/TypeCodec.d.ts.map +1 -1
  39. package/dist/codec/TypeCodec.js +48 -40
  40. package/dist/codec/TypeCodec.unit.test.js +38 -12
  41. package/dist/dynamicschema/DynamicSchema.d.ts +12 -6
  42. package/dist/dynamicschema/DynamicSchema.d.ts.map +1 -1
  43. package/dist/dynamicschema/DynamicSchema.js +41 -18
  44. package/dist/dynamicschema/DynamicSchema.unit.test.js +75 -51
  45. package/dist/dynamictype/DynamicType.d.ts +20 -17
  46. package/dist/dynamictype/DynamicType.d.ts.map +1 -1
  47. package/dist/dynamictype/DynamicType.js +35 -48
  48. package/dist/file/FakeFileStorage.d.ts +8 -8
  49. package/dist/file/FakeFileStorage.d.ts.map +1 -1
  50. package/dist/file/FakeFileStorage.js +40 -16
  51. package/dist/file/File.d.ts +14 -10
  52. package/dist/file/File.d.ts.map +1 -1
  53. package/dist/file/File.js +24 -31
  54. package/dist/file/FileStorage.abstract.test.d.ts.map +1 -1
  55. package/dist/file/FileStorage.abstract.test.js +41 -18
  56. package/dist/file/NodeFsFileStorage.d.ts +11 -9
  57. package/dist/file/NodeFsFileStorage.d.ts.map +1 -1
  58. package/dist/file/NodeFsFileStorage.integration.test.js +45 -21
  59. package/dist/file/NodeFsFileStorage.js +29 -37
  60. package/dist/http/Http.d.ts +13 -11
  61. package/dist/http/Http.d.ts.map +1 -1
  62. package/dist/http/Http.js +22 -30
  63. package/dist/http/Http.unit.test.js +26 -3
  64. package/dist/http/HttpClient.abstract.test.d.ts.map +1 -1
  65. package/dist/http/HttpClient.abstract.test.js +108 -104
  66. package/dist/http/HttpClient.d.ts +2 -2
  67. package/dist/http/HttpClient.d.ts.map +1 -1
  68. package/dist/http/HttpController.d.ts +3 -2
  69. package/dist/http/HttpController.d.ts.map +1 -1
  70. package/dist/http/HttpTypeDescriptors.d.ts +11 -0
  71. package/dist/http/HttpTypeDescriptors.d.ts.map +1 -0
  72. package/dist/http/HttpTypeDescriptors.js +59 -0
  73. package/dist/http/MultipartHttpRequestBody.integration.test.js +20 -31
  74. package/dist/http/MultipartHttpRequestBody.unit.test.js +53 -70
  75. package/dist/record/Record.d.ts +3 -3
  76. package/dist/record/Record.d.ts.map +1 -1
  77. package/dist/record/Record.js +30 -9
  78. package/dist/result/Result.d.ts +3 -3
  79. package/dist/result/Result.d.ts.map +1 -1
  80. package/dist/result/Result.js +26 -9
  81. package/dist/schema/JsonSchemaIntrospector.js +7 -17
  82. package/dist/sensitive/Sensitive.d.ts +3 -7
  83. package/dist/sensitive/Sensitive.d.ts.map +1 -1
  84. package/dist/sensitive/Sensitive.js +39 -23
  85. package/dist/sensitive/Sensitive.unit.test.d.ts +4 -4
  86. package/dist/sensitive/Sensitive.unit.test.d.ts.map +1 -1
  87. package/dist/sensitive/Sensitive.unit.test.js +46 -20
  88. package/dist/serialization/FormUrlEncodedSerialization.d.ts +2 -2
  89. package/dist/serialization/FormUrlEncodedSerialization.d.ts.map +1 -1
  90. package/dist/serialization/FormUrlEncodedSerialization.js +28 -5
  91. package/dist/serialization/JsonSerialization.d.ts +2 -2
  92. package/dist/serialization/JsonSerialization.d.ts.map +1 -1
  93. package/dist/serialization/JsonSerialization.js +28 -5
  94. package/dist/serialization/Serialization.abstract.test.d.ts.map +1 -1
  95. package/dist/serialization/Serialization.abstract.test.js +32 -6
  96. package/dist/serialization/Serialization.d.ts +2 -2
  97. package/dist/serialization/Serialization.d.ts.map +1 -1
  98. package/dist/task/Task.d.ts +19 -0
  99. package/dist/task/Task.d.ts.map +1 -0
  100. package/dist/task/Task.js +74 -0
  101. package/dist/task/Task.unit.test.d.ts +2 -0
  102. package/dist/task/Task.unit.test.d.ts.map +1 -0
  103. package/dist/task/Task.unit.test.js +46 -0
  104. package/dist/try/Try.d.ts +2 -2
  105. package/dist/try/Try.d.ts.map +1 -1
  106. package/dist/try/Try.js +32 -2
  107. package/dist/uuid/Uuid.d.ts +10 -11
  108. package/dist/uuid/Uuid.d.ts.map +1 -1
  109. package/dist/uuid/Uuid.js +39 -13
  110. package/dist/uuid/Uuid.unit.test.js +27 -4
  111. package/dist/zod/SchemaParser.abstract.test.d.ts.map +1 -1
  112. package/dist/zod/SchemaParser.abstract.test.js +31 -6
  113. package/dist/zod/SchemaParser.d.ts +2 -2
  114. package/dist/zod/SchemaParser.d.ts.map +1 -1
  115. package/dist/zod/ZodSchemaParser.d.ts +4 -3
  116. package/dist/zod/ZodSchemaParser.d.ts.map +1 -1
  117. package/dist/zod/ZodSchemaParser.js +28 -4
  118. package/dist/zod/ZodSchemaParser.unit.test.js +25 -2
  119. package/package.json +9 -4
  120. package/dist/effect/EffectExtensions.d.ts +0 -29
  121. package/dist/effect/EffectExtensions.d.ts.map +0 -1
  122. package/dist/effect/EffectExtensions.js +0 -30
  123. package/dist/effect/EffectExtensions.unit.test.d.ts +0 -2
  124. package/dist/effect/EffectExtensions.unit.test.d.ts.map +0 -1
  125. package/dist/effect/EffectExtensions.unit.test.js +0 -59
  126. package/dist/effect/Interop.d.ts +0 -53
  127. package/dist/effect/Interop.d.ts.map +0 -1
  128. package/dist/effect/Interop.js +0 -56
  129. package/dist/effect/Interop.unit.test.d.ts +0 -2
  130. package/dist/effect/Interop.unit.test.d.ts.map +0 -1
  131. package/dist/effect/Interop.unit.test.js +0 -134
  132. package/dist/effect/SchemaExtensions.d.ts +0 -11
  133. package/dist/effect/SchemaExtensions.d.ts.map +0 -1
  134. package/dist/effect/SchemaExtensions.js +0 -7
  135. package/dist/effect/SchemaExtensions.unit.test.d.ts +0 -2
  136. package/dist/effect/SchemaExtensions.unit.test.d.ts.map +0 -1
  137. package/dist/effect/SchemaExtensions.unit.test.js +0 -29
  138. package/dist/http/HttpSchemas.d.ts +0 -13
  139. package/dist/http/HttpSchemas.d.ts.map +0 -1
  140. package/dist/http/HttpSchemas.js +0 -23
  141. package/dist/schema/DateFromUnixTime.d.ts +0 -4
  142. package/dist/schema/DateFromUnixTime.d.ts.map +0 -1
  143. package/dist/schema/DateFromUnixTime.js +0 -10
  144. package/dist/schema/DateFromUnixTime.unit.test.d.ts +0 -2
  145. package/dist/schema/DateFromUnixTime.unit.test.d.ts.map +0 -1
  146. package/dist/schema/DateFromUnixTime.unit.test.js +0 -11
@@ -1,12 +1,18 @@
1
- import { Either, Option, Schema } from 'effect';
1
+ import * as E from 'fp-ts/Either';
2
+ import * as O from 'fp-ts/Option';
3
+ import * as t from 'io-ts';
2
4
  import { DynamicObject } from '../dynamictype/DynamicType';
3
- export declare const dynamicSchemaSchema: Schema.brand<Schema.filter<Schema.Schema<DynamicObject, DynamicObject, never>>, "DynamicSchema">;
4
- export type DynamicSchema = typeof dynamicSchemaSchema.Type;
5
+ declare const dynamicSchemaTypeDescriptor: t.BrandC<t.Type<DynamicObject, DynamicObject, unknown>, DynamicSchemaBrand>;
6
+ export type DynamicSchema = t.TypeOf<typeof dynamicSchemaTypeDescriptor>;
7
+ export interface DynamicSchemaBrand {
8
+ readonly DynamicSchema: unique symbol;
9
+ }
5
10
  export interface DynamicSchemaInterface {
6
- fromDynamicObject: (schema: DynamicObject, strict?: Option.Option<boolean>) => Either.Either<DynamicSchema, Error>;
7
- validate: (schema: DynamicSchema | DynamicObject, value: DynamicObject, strict?: Option.Option<boolean>, coerce?: boolean) => Either.Either<DynamicObject, Error>;
8
- fromValue: (value: DynamicObject, schemaUrl: Option.Option<string>) => DynamicObject;
11
+ fromDynamicObject: (schema: DynamicObject, strict?: O.Option<boolean>) => E.Either<Error, DynamicSchema>;
12
+ validate: (schema: DynamicSchema | DynamicObject, value: DynamicObject, strict?: O.Option<boolean>, coerce?: boolean) => E.Either<Error, DynamicObject>;
13
+ fromValue: (value: DynamicObject, schemaUrl: O.Option<string>) => DynamicObject;
9
14
  isValidJsonSchema: (schema: DynamicObject) => boolean;
10
15
  }
11
16
  export declare const DynamicSchema: DynamicSchemaInterface;
17
+ export {};
12
18
  //# sourceMappingURL=DynamicSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicSchema.d.ts","sourceRoot":"","sources":["../../src/dynamicschema/DynamicSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AA+BhF,eAAO,MAAM,mBAAmB,kGAOc,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC;AA8F5D,MAAM,WAAW,sBAAsB;IACtC,iBAAiB,EAAE,CAClB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACzC,QAAQ,EAAE,CACT,MAAM,EAAE,aAAa,GAAG,aAAa,EACrC,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,OAAO,KACZ,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACzC,SAAS,EAAE,CACV,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,aAAa,CAAC;IACnB,iBAAiB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC;CACtD;AAED,eAAO,MAAM,aAAa,EAAE,sBA6C3B,CAAC"}
1
+ {"version":3,"file":"DynamicSchema.d.ts","sourceRoot":"","sources":["../../src/dynamicschema/DynamicSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAG3B,OAAO,EACN,aAAa,EAEb,MAAM,4BAA4B,CAAC;AA+BpC,QAAA,MAAM,2BAA2B,6EAKhC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AA0FzE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACtC,iBAAiB,EAAE,CAClB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KACtB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACpC,QAAQ,EAAE,CACT,MAAM,EAAE,aAAa,GAAG,aAAa,EACrC,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1B,MAAM,CAAC,EAAE,OAAO,KACZ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACpC,SAAS,EAAE,CACV,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KACvB,aAAa,CAAC;IACnB,iBAAiB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC;CACtD;AAED,eAAO,MAAM,aAAa,EAAE,sBAgD3B,CAAC"}
@@ -1,12 +1,38 @@
1
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
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DynamicSchema = exports.dynamicSchemaSchema = void 0;
29
+ exports.DynamicSchema = void 0;
7
30
  const ajv_draft_04_1 = __importDefault(require("ajv-draft-04"));
8
31
  const ajv_formats_1 = __importDefault(require("ajv-formats"));
9
- const effect_1 = require("effect");
32
+ const E = __importStar(require("fp-ts/Either"));
33
+ const O = __importStar(require("fp-ts/Option"));
34
+ const t = __importStar(require("io-ts"));
35
+ const function_1 = require("fp-ts/lib/function");
10
36
  const deep_copy_ts_1 = require("deep-copy-ts");
11
37
  const DynamicType_1 = require("../dynamictype/DynamicType");
12
38
  const TypeCodec_1 = require("../codec/TypeCodec");
@@ -34,14 +60,10 @@ const isDynamicSchema = (o) => {
34
60
  return false;
35
61
  }
36
62
  };
37
- exports.dynamicSchemaSchema = DynamicType_1.dynamicObjectSchema
38
- .pipe(effect_1.Schema.filter(isDynamicSchema, {
39
- message: () => 'Not a valid JSON schema',
40
- }), effect_1.Schema.brand('DynamicSchema'))
41
- .annotations({ identifier: 'DynamicSchema' });
42
- const dynamicSchemaTypeCodec = TypeCodec_1.TypeCodec.fromSchema(exports.dynamicSchemaSchema);
63
+ const dynamicSchemaTypeDescriptor = t.brand(DynamicType_1.dynamicObjectTypeDescriptor, (input) => isDynamicSchema(input), 'DynamicSchema');
64
+ const dynamicSchemaTypeCodec = TypeCodec_1.TypeCodec.fromDescriptor(dynamicSchemaTypeDescriptor);
43
65
  const preprocessSchema = (schema, strict) => {
44
- const hasStrict = effect_1.Option.isSome(strict);
66
+ const hasStrict = O.isSome(strict);
45
67
  delete schema.$schema;
46
68
  if (schema.oneOf || schema.anyOf || schema.allOf) {
47
69
  const schemas = (schema.oneOf ||
@@ -105,17 +127,18 @@ const createSchema = (value) => {
105
127
  return {};
106
128
  };
107
129
  const createSchemaWithSchemaUrl = (schema, schemaUrl) => {
130
+ const hasSchemaUrl = O.isSome(schemaUrl);
108
131
  const schemaObj = createSchema(schema);
109
- schemaObj[schemaProperty] = effect_1.Option.getOrElse(schemaUrl, () => draft04SchemaUrl);
132
+ schemaObj[schemaProperty] = hasSchemaUrl ? schemaUrl.value : draft04SchemaUrl;
110
133
  return schemaObj;
111
134
  };
112
135
  exports.DynamicSchema = {
113
- fromDynamicObject: (schema, strict = effect_1.Option.none()) => {
136
+ fromDynamicObject: (schema, strict = O.none) => {
114
137
  const copiedSchema = (0, deep_copy_ts_1.deepCopy)(schema);
115
138
  preprocessSchema(copiedSchema, strict);
116
- return effect_1.Either.mapLeft(dynamicSchemaTypeCodec.decode(copiedSchema), (e) => new Error(`Failed to create DynamicSchema: ${e}`));
139
+ return (0, function_1.pipe)(dynamicSchemaTypeCodec.decode(copiedSchema), E.mapLeft((e) => new Error(`Failed to create DynamicSchema: ${e}`)));
117
140
  },
118
- validate: (schema, value, strict = effect_1.Option.none(), coerce = false) => {
141
+ validate: (schema, value, strict = O.none, coerce = false) => {
119
142
  const copiedSchema = (0, deep_copy_ts_1.deepCopy)(schema);
120
143
  preprocessSchema(copiedSchema, strict);
121
144
  const copiedValue = (0, deep_copy_ts_1.deepCopy)(value);
@@ -125,16 +148,16 @@ exports.DynamicSchema = {
125
148
  }
126
149
  return ajv.compile(copiedSchema);
127
150
  });
128
- return effect_1.Either.flatMap(validateE, (validate) => {
151
+ return (0, function_1.pipe)(validateE, E.chain((validate) => {
129
152
  if (validate(copiedValue)) {
130
- return effect_1.Either.right(copiedValue);
153
+ return E.right(copiedValue);
131
154
  }
132
155
  const errorText = ajv
133
156
  .errorsText(validate.errors)
134
157
  .replace(/data\//g, '');
135
- return effect_1.Either.left(new Error(errorText));
136
- });
158
+ return E.left(new Error(errorText));
159
+ }));
137
160
  },
138
- fromValue: (value, schemaUrl = effect_1.Option.none()) => createSchemaWithSchemaUrl(value, schemaUrl),
161
+ fromValue: (value, schemaUrl = O.none) => createSchemaWithSchemaUrl(value, schemaUrl),
139
162
  isValidJsonSchema: (schema) => isDynamicSchema(schema),
140
163
  };
@@ -1,6 +1,30 @@
1
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
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const effect_1 = require("effect");
26
+ const E = __importStar(require("fp-ts/Either"));
27
+ const O = __importStar(require("fp-ts/Option"));
4
28
  const DynamicSchema_1 = require("./DynamicSchema");
5
29
  describe('DynamicSchema', () => {
6
30
  let validSchema;
@@ -142,15 +166,15 @@ describe('DynamicSchema', () => {
142
166
  describe('fromDynamicObject', () => {
143
167
  it('should return a Right DynamicSchema when given a valid schema object', () => {
144
168
  const result = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
145
- expect(effect_1.Either.isRight(result)).toBe(true);
146
- if (effect_1.Either.isRight(result)) {
169
+ expect(E.isRight(result)).toBe(true);
170
+ if (E.isRight(result)) {
147
171
  expect(result.right).toEqual(validSchema);
148
172
  }
149
173
  });
150
174
  it('should return a Left Error when given an invalid schema object', () => {
151
175
  const result = DynamicSchema_1.DynamicSchema.fromDynamicObject(invalidSchema);
152
- expect(effect_1.Either.isLeft(result)).toBe(true);
153
- if (effect_1.Either.isLeft(result)) {
176
+ expect(E.isLeft(result)).toBe(true);
177
+ if (E.isLeft(result)) {
154
178
  expect(result.left).toBeInstanceOf(Error);
155
179
  expect(result.left.message).toContain('Failed to create DynamicSchema:');
156
180
  }
@@ -181,8 +205,8 @@ describe('DynamicSchema', () => {
181
205
  },
182
206
  advanced: [],
183
207
  };
184
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.none());
185
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
208
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.none);
209
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
186
210
  });
187
211
  it('should correctly remove empty required arrays and not add additionalProperties when strict is not set', () => {
188
212
  const schema = {
@@ -210,8 +234,8 @@ describe('DynamicSchema', () => {
210
234
  },
211
235
  advanced: [],
212
236
  };
213
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.none());
214
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
237
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.none);
238
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
215
239
  });
216
240
  it('should correctly keep populated required arrays and not add additionalProperties when strict is not set', () => {
217
241
  const schema = {
@@ -240,8 +264,8 @@ describe('DynamicSchema', () => {
240
264
  required: ['age', 'name'],
241
265
  advanced: [],
242
266
  };
243
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.none());
244
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
267
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.none);
268
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
245
269
  });
246
270
  it('should correctly remove empty required and add additionalProperties=true to object schema when strict is set', () => {
247
271
  const schema = {
@@ -270,8 +294,8 @@ describe('DynamicSchema', () => {
270
294
  advanced: [],
271
295
  additionalProperties: true,
272
296
  };
273
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(false));
274
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
297
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(false));
298
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
275
299
  });
276
300
  it('should correctly add additionalProperties=false to object schema', () => {
277
301
  const schema = validSchema;
@@ -311,8 +335,8 @@ describe('DynamicSchema', () => {
311
335
  advanced: [],
312
336
  additionalProperties: false,
313
337
  };
314
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(true));
315
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
338
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(true));
339
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
316
340
  });
317
341
  it('should correctly add additionalProperties=true to complex object schema', () => {
318
342
  const schema = {
@@ -378,15 +402,15 @@ describe('DynamicSchema', () => {
378
402
  },
379
403
  additionalProperties: true,
380
404
  };
381
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(false));
382
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
405
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(false));
406
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
383
407
  });
384
408
  it('should skip mutation if there is no object type schema', () => {
385
409
  const schema = {
386
410
  type: 'string',
387
411
  };
388
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(true));
389
- expect(actualSchemaE).toEqual(effect_1.Either.right(schema));
412
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(true));
413
+ expect(actualSchemaE).toEqual(E.right(schema));
390
414
  });
391
415
  it('should correctly add additionalProperties=true to oneOf schemas', () => {
392
416
  const schema = {
@@ -433,8 +457,8 @@ describe('DynamicSchema', () => {
433
457
  },
434
458
  ],
435
459
  };
436
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(false));
437
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
460
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(false));
461
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
438
462
  });
439
463
  it('should correctly add additionalProperties=true to anyOf schemas', () => {
440
464
  const schema = {
@@ -481,8 +505,8 @@ describe('DynamicSchema', () => {
481
505
  },
482
506
  ],
483
507
  };
484
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(false));
485
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
508
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(false));
509
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
486
510
  });
487
511
  it('should correctly add additionalProperties=true to allOf schemas', () => {
488
512
  const schema = {
@@ -529,67 +553,67 @@ describe('DynamicSchema', () => {
529
553
  },
530
554
  ],
531
555
  };
532
- const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, effect_1.Option.some(false));
533
- expect(actualSchemaE).toEqual(effect_1.Either.right(expectedSchema));
556
+ const actualSchemaE = DynamicSchema_1.DynamicSchema.fromDynamicObject(schema, O.some(false));
557
+ expect(actualSchemaE).toEqual(E.right(expectedSchema));
534
558
  });
535
559
  });
536
560
  describe('validate', () => {
537
561
  it('should return a Right with the value when the value matches the schema', () => {
538
562
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
539
- if (effect_1.Either.isRight(schema)) {
540
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, value, effect_1.Option.none());
541
- expect(effect_1.Either.isRight(result)).toBe(true);
542
- if (effect_1.Either.isRight(result)) {
563
+ if (E.isRight(schema)) {
564
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, value, O.none);
565
+ expect(E.isRight(result)).toBe(true);
566
+ if (E.isRight(result)) {
543
567
  expect(result.right).toEqual(value);
544
568
  }
545
569
  }
546
570
  });
547
571
  it('should return a Right with the value when strict is false and value matches the schema', () => {
548
572
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
549
- if (effect_1.Either.isRight(schema)) {
550
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, value, effect_1.Option.some(true));
551
- expect(effect_1.Either.isRight(result)).toBe(true);
552
- if (effect_1.Either.isRight(result)) {
573
+ if (E.isRight(schema)) {
574
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, value, O.some(true));
575
+ expect(E.isRight(result)).toBe(true);
576
+ if (E.isRight(result)) {
553
577
  expect(result.right).toEqual(value);
554
578
  }
555
579
  }
556
580
  });
557
581
  it('should return a Right with non extra values when value matches the schema but has extra fields', () => {
558
582
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
559
- if (effect_1.Either.isRight(schema)) {
560
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithExtraFields, effect_1.Option.some(true));
561
- expect(effect_1.Either.isRight(result)).toBe(true);
562
- if (effect_1.Either.isRight(result)) {
583
+ if (E.isRight(schema)) {
584
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithExtraFields, O.some(true));
585
+ expect(E.isRight(result)).toBe(true);
586
+ if (E.isRight(result)) {
563
587
  expect(result.right).toEqual(value);
564
588
  }
565
589
  }
566
590
  });
567
591
  it('should return a Right with extra values when value matches the schema but has extra fields and strict is false', () => {
568
592
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
569
- if (effect_1.Either.isRight(schema)) {
570
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithExtraFields, effect_1.Option.some(false));
571
- expect(effect_1.Either.isRight(result)).toBe(true);
572
- if (effect_1.Either.isRight(result)) {
593
+ if (E.isRight(schema)) {
594
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithExtraFields, O.some(false));
595
+ expect(E.isRight(result)).toBe(true);
596
+ if (E.isRight(result)) {
573
597
  expect(result.right).toEqual(valueWithExtraFields);
574
598
  }
575
599
  }
576
600
  });
577
601
  it('should return a Right with when value matches the schema but has coerceable types', () => {
578
602
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
579
- if (effect_1.Either.isRight(schema)) {
580
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithCoerceableTypes, effect_1.Option.some(true), true);
581
- expect(effect_1.Either.isRight(result)).toBe(true);
582
- if (effect_1.Either.isRight(result)) {
603
+ if (E.isRight(schema)) {
604
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, valueWithCoerceableTypes, O.some(true), true);
605
+ expect(E.isRight(result)).toBe(true);
606
+ if (E.isRight(result)) {
583
607
  expect(result.right).toEqual(value);
584
608
  }
585
609
  }
586
610
  });
587
611
  it('should return a Left Error when the value does not match the schema', () => {
588
612
  const schema = DynamicSchema_1.DynamicSchema.fromDynamicObject(validSchema);
589
- if (effect_1.Either.isRight(schema)) {
590
- const result = DynamicSchema_1.DynamicSchema.validate(schema.right, invalidValue, effect_1.Option.none());
591
- expect(effect_1.Either.isLeft(result)).toBe(true);
592
- if (effect_1.Either.isLeft(result)) {
613
+ if (E.isRight(schema)) {
614
+ const result = DynamicSchema_1.DynamicSchema.validate(schema.right, invalidValue, O.none);
615
+ expect(E.isLeft(result)).toBe(true);
616
+ if (E.isLeft(result)) {
593
617
  expect(result.left).toBeInstanceOf(Error);
594
618
  }
595
619
  }
@@ -597,12 +621,12 @@ describe('DynamicSchema', () => {
597
621
  });
598
622
  describe('fromValue', () => {
599
623
  it('should return a Right with the schema when given a valid value object', () => {
600
- const result = DynamicSchema_1.DynamicSchema.fromValue(value, effect_1.Option.none());
624
+ const result = DynamicSchema_1.DynamicSchema.fromValue(value, O.none);
601
625
  expect(result).toEqual(validSchemaWithoutExtraFields);
602
626
  });
603
627
  it('should return a Right with the schema when given a valid value object and a schema url', () => {
604
628
  const schemaUrl = 'http://json-schema.org/draft-04/schema#';
605
- const result = DynamicSchema_1.DynamicSchema.fromValue(value, effect_1.Option.some(schemaUrl));
629
+ const result = DynamicSchema_1.DynamicSchema.fromValue(value, O.some(schemaUrl));
606
630
  expect(result.$schema).toEqual(schemaUrl);
607
631
  });
608
632
  });
@@ -1,33 +1,36 @@
1
- import { Effect, Either, Option, Schema } from 'effect';
1
+ import * as TE from 'fp-ts/TaskEither';
2
+ import * as E from 'fp-ts/Either';
3
+ import * as O from 'fp-ts/Option';
4
+ import * as t from 'io-ts';
2
5
  import { Codec } from '../codec/Codec';
3
6
  export type DynamicType = string | number | boolean | null | DynamicObject | DynamicArray;
4
7
  export type DynamicObject = {
5
8
  [x: string]: DynamicType;
6
9
  };
7
10
  export type DynamicArray = Array<DynamicType>;
8
- export declare const dynamicTypeSchema: Schema.Schema<DynamicType>;
9
- export declare const dynamicObjectSchema: Schema.Schema<DynamicObject>;
10
- export declare const dynamicArraySchema: Schema.Schema<DynamicArray>;
11
11
  export interface DynamicObjectInterface {
12
- fromBase64String: (base64Str: string) => Either.Either<DynamicObject, Error>;
12
+ fromBase64String: (base64Str: string) => E.Either<Error, DynamicObject>;
13
13
  removeNullValues: (value: DynamicObject) => DynamicObject;
14
14
  isDynamicObject: (value: unknown) => value is DynamicObject;
15
- getTypedProperty: <T>(dynamicObject: DynamicObject, name: string, codec: Codec<T>) => Option.Option<T>;
16
- getObjectProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<DynamicObject>;
17
- getStringProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<string>;
18
- getNumberProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<number>;
19
- getBooleanProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<boolean>;
15
+ getTypedProperty: <T>(dynamicObject: DynamicObject, name: string, codec: Codec<T>) => O.Option<T>;
16
+ getObjectProperty: (dynamicObject: DynamicObject, name: string) => O.Option<DynamicObject>;
17
+ getStringProperty: (dynamicObject: DynamicObject, name: string) => O.Option<string>;
18
+ getNumberProperty: (dynamicObject: DynamicObject, name: string) => O.Option<number>;
19
+ getBooleanProperty: (dynamicObject: DynamicObject, name: string) => O.Option<boolean>;
20
20
  }
21
21
  export declare const DynamicObject: DynamicObjectInterface;
22
22
  export interface DynamicTypeInterface {
23
- readFromFile: (path: string) => Either.Either<DynamicType, Error>;
24
- writeToFile: (path: string, value: DynamicType) => Either.Either<undefined, Error>;
25
- writeToFileAsync: (path: string, value: DynamicType) => Effect.Effect<undefined, Error>;
26
- safeCast: <T>(dynamicType: DynamicType, codec: Codec<T>) => Either.Either<T, Error>;
27
- getStringProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<string>;
28
- getNumberProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<number>;
29
- getBooleanProperty: (dynamicObject: DynamicObject, name: string) => Option.Option<boolean>;
23
+ readFromFile: (path: string) => E.Either<Error, DynamicType>;
24
+ writeToFile: (path: string, value: DynamicType) => E.Either<Error, undefined>;
25
+ writeToFileAsync: (path: string, value: DynamicType) => TE.TaskEither<Error, undefined>;
26
+ safeCast: <T>(dynamicType: DynamicType, codec: Codec<T>) => E.Either<Error, T>;
27
+ getStringProperty: (dynamicObject: DynamicObject, name: string) => O.Option<string>;
28
+ getNumberProperty: (dynamicObject: DynamicObject, name: string) => O.Option<number>;
29
+ getBooleanProperty: (dynamicObject: DynamicObject, name: string) => O.Option<boolean>;
30
30
  }
31
31
  export declare const DynamicType: DynamicTypeInterface;
32
+ export declare const dynamicTypeDescriptor: t.Type<DynamicType>;
33
+ export declare const dynamicObjectTypeDescriptor: t.Type<DynamicObject>;
34
+ export declare const dynamicArrayTypeDescriptor: t.Type<DynamicArray>;
32
35
  export declare const castUndefinedPropertyToNull: (obj: Record<string, any>) => DynamicType;
33
36
  //# sourceMappingURL=DynamicType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicType.d.ts","sourceRoot":"","sources":["../../src/dynamictype/DynamicType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicType.d.ts","sourceRoot":"","sources":["../../src/dynamictype/DynamicType.ts"],"names":[],"mappings":"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"}
@@ -15,71 +15,58 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
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
+ };
35
25
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.castUndefinedPropertyToNull = exports.DynamicType = exports.DynamicObject = exports.dynamicArraySchema = exports.dynamicObjectSchema = exports.dynamicTypeSchema = void 0;
26
+ exports.castUndefinedPropertyToNull = exports.dynamicArrayTypeDescriptor = exports.dynamicObjectTypeDescriptor = exports.dynamicTypeDescriptor = exports.DynamicType = exports.DynamicObject = void 0;
27
+ const TE = __importStar(require("fp-ts/TaskEither"));
37
28
  const fs = __importStar(require("fs"));
38
29
  const fse = __importStar(require("fs-extra"));
39
- const effect_1 = require("effect");
30
+ const E = __importStar(require("fp-ts/Either"));
31
+ const O = __importStar(require("fp-ts/Option"));
32
+ const function_1 = require("fp-ts/function");
33
+ const t = __importStar(require("io-ts"));
40
34
  const Base64_1 = require("../base64/Base64");
41
35
  const JsonSerialization_1 = require("../serialization/JsonSerialization");
42
36
  const Try_1 = require("../try/Try");
43
37
  const RemoveNullValuesCodec_1 = require("../codec/RemoveNullValuesCodec");
44
38
  const TypeCodec_1 = require("../codec/TypeCodec");
45
- const Error_1 = require("../error/Error");
46
- exports.dynamicTypeSchema = effect_1.Schema.Union(effect_1.Schema.String, effect_1.Schema.Number, effect_1.Schema.Boolean, effect_1.Schema.Null, effect_1.Schema.suspend(() => exports.dynamicObjectSchema), effect_1.Schema.suspend(() => exports.dynamicArraySchema)).annotations({ identifier: 'DynamicType' });
47
- exports.dynamicObjectSchema = effect_1.Schema.mutable(effect_1.Schema.Record({
48
- key: effect_1.Schema.String,
49
- value: effect_1.Schema.suspend(() => exports.dynamicTypeSchema),
50
- })).annotations({ identifier: 'DynamicObject' });
51
- exports.dynamicArraySchema = effect_1.Schema.mutable(effect_1.Schema.Array(effect_1.Schema.suspend(() => exports.dynamicTypeSchema))).annotations({ identifier: 'DynamicArray' });
52
39
  const serializer = new JsonSerialization_1.JsonSerialization();
53
40
  const testRemoveNullValuesCodec = RemoveNullValuesCodec_1.RemoveNullValuesCodec.instance;
54
- const isDynamicObject = effect_1.Schema.is(exports.dynamicObjectSchema);
55
- const propertyOfType = (typeName) => (dynamicObject, name) => {
56
- const property = dynamicObject[name];
57
- return typeof property === typeName
58
- ? effect_1.Option.some(property)
59
- : effect_1.Option.none();
60
- };
61
41
  exports.DynamicObject = {
62
- fromBase64String: (base64Str) => effect_1.Either.map(effect_1.Either.flatMap(effect_1.Either.map(Base64_1.Base64.fromBase64String(base64Str), (base64) => Base64_1.Base64.decodeBinary(base64)), (decoded) => serializer.deserialize(decoded)), (decoded) => decoded),
42
+ fromBase64String: (base64Str) => (0, function_1.pipe)(Base64_1.Base64.fromBase64String(base64Str), E.map((base64) => Base64_1.Base64.decodeBinary(base64)), E.chain((decoded) => serializer.deserialize(decoded)), E.map((decoded) => decoded)),
63
43
  removeNullValues: (value) => testRemoveNullValuesCodec.encode(value),
64
- isDynamicObject: (value) => isDynamicObject(value),
65
- getTypedProperty: (dynamicObject, name, codec) => effect_1.Option.flatMap(effect_1.Option.fromNullable(dynamicObject[name]), (property) => effect_1.Option.getRight(exports.DynamicType.safeCast(property, codec))),
66
- getObjectProperty: (dynamicObject, name) => exports.DynamicObject.getTypedProperty(dynamicObject, name, TypeCodec_1.TypeCodec.fromSchema(exports.dynamicObjectSchema)),
67
- getStringProperty: propertyOfType('string'),
68
- getNumberProperty: propertyOfType('number'),
69
- getBooleanProperty: propertyOfType('boolean'),
44
+ isDynamicObject: (value) => exports.dynamicObjectTypeDescriptor.is(value),
45
+ getTypedProperty: (dynamicObject, name, codec) => (0, function_1.pipe)((0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => O.fromEither(exports.DynamicType.safeCast(property, codec))))),
46
+ getObjectProperty: (dynamicObject, name) => exports.DynamicObject.getTypedProperty(dynamicObject, name, TypeCodec_1.TypeCodec.fromDescriptor(exports.dynamicObjectTypeDescriptor)),
47
+ getStringProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'string' ? O.some(property) : O.none)),
48
+ getNumberProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'number' ? O.some(property) : O.none)),
49
+ getBooleanProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'boolean' ? O.some(property) : O.none)),
70
50
  };
71
51
  exports.DynamicType = {
72
52
  readFromFile: (path) => (0, Try_1.tryToEither)(() => JSON.parse(fs.readFileSync(path, 'utf8'))),
73
- writeToFile: (path, value) => effect_1.Either.map((0, Try_1.tryToEither)(() => fs.writeFileSync(path, JSON.stringify(value))), () => undefined),
74
- writeToFileAsync: (path, value) => effect_1.Effect.map(effect_1.Effect.tryPromise({
75
- try: () => fse.writeFile(path, JSON.stringify(value)),
76
- catch: Error_1.castError,
77
- }), () => undefined),
53
+ writeToFile: (path, value) => (0, function_1.pipe)((0, Try_1.tryToEither)(() => fs.writeFileSync(path, JSON.stringify(value))), E.map(() => undefined)),
54
+ writeToFileAsync: (path, value) => (0, function_1.pipe)(TE.tryCatch(() => fse.writeFile(path, JSON.stringify(value)), (err) => new Error(err.message)), TE.map(() => undefined)),
78
55
  safeCast: (dynamicType, codec) => codec.decode(dynamicType),
79
- getStringProperty: propertyOfType('string'),
80
- getNumberProperty: propertyOfType('number'),
81
- getBooleanProperty: propertyOfType('boolean'),
56
+ getStringProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'string' ? O.some(property) : O.none)),
57
+ getNumberProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'number' ? O.some(property) : O.none)),
58
+ getBooleanProperty: (dynamicObject, name) => (0, function_1.pipe)(O.fromNullable(dynamicObject[name]), O.chain((property) => typeof property === 'boolean' ? O.some(property) : O.none)),
82
59
  };
60
+ exports.dynamicTypeDescriptor = t.recursion('DynamicType', () => t.union([
61
+ t.string,
62
+ t.number,
63
+ t.boolean,
64
+ t.null,
65
+ exports.dynamicObjectTypeDescriptor,
66
+ exports.dynamicArrayTypeDescriptor,
67
+ ]));
68
+ exports.dynamicObjectTypeDescriptor = t.recursion('DynamicObject', () => t.record(t.string, exports.dynamicTypeDescriptor));
69
+ exports.dynamicArrayTypeDescriptor = t.recursion('DynamicArray', () => t.array(exports.dynamicTypeDescriptor));
83
70
  const castUndefinedPropertyToNull = (obj) => {
84
71
  if (obj === undefined) {
85
72
  return null;
@@ -1,14 +1,14 @@
1
- import { Effect } from 'effect';
1
+ import * as TE from 'fp-ts/TaskEither';
2
2
  import { File, FileStorage, SharedUrl } from './File';
3
3
  export declare class FakeFileStorage implements FileStorage {
4
4
  files: Map<string, File>;
5
5
  constructor();
6
- write(file: File): Effect.Effect<File, Error>;
7
- read(fileName: string): Effect.Effect<File, Error>;
8
- delete(fileName: string): Effect.Effect<undefined, Error>;
9
- getSharedUrl(key: string): Effect.Effect<SharedUrl, Error>;
10
- getSize(key: string): Effect.Effect<number, Error>;
11
- createDirectory(key: string): Effect.Effect<undefined, Error>;
12
- deleteDirectory(key: string): Effect.Effect<undefined, Error>;
6
+ write(file: File): TE.TaskEither<Error, File>;
7
+ read(fileName: string): TE.TaskEither<Error, File>;
8
+ delete(fileName: string): TE.TaskEither<Error, undefined>;
9
+ getSharedUrl(key: string): TE.TaskEither<Error, SharedUrl>;
10
+ getSize(key: string): TE.TaskEither<Error, number>;
11
+ createDirectory(key: string): TE.TaskEither<Error, undefined>;
12
+ deleteDirectory(key: string): TE.TaskEither<Error, undefined>;
13
13
  }
14
14
  //# sourceMappingURL=FakeFileStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FakeFileStorage.d.ts","sourceRoot":"","sources":["../../src/file/FakeFileStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAQtD,qBAAa,eAAgB,YAAW,WAAW;IAClD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAMzB,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAO7C,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAUlD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;IAOzD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAOlD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;IAgB7D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;CAM7D"}
1
+ {"version":3,"file":"FakeFileStorage.d.ts","sourceRoot":"","sources":["../../src/file/FakeFileStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIvC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEtD,qBAAa,eAAgB,YAAW,WAAW;IAClD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAMzB,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;IAY7C,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;IAkBlD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;IAYzD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;IAUlD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;IAoB7D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;CAW7D"}