@effect/platform 0.18.6 → 0.19.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 (156) hide show
  1. package/Command/dist/effect-platform-Command.cjs.dev.js +419 -26
  2. package/Command/dist/effect-platform-Command.cjs.prod.js +419 -26
  3. package/Command/dist/effect-platform-Command.esm.js +382 -9
  4. package/CommandExecutor/dist/effect-platform-CommandExecutor.cjs.dev.js +72 -7
  5. package/CommandExecutor/dist/effect-platform-CommandExecutor.cjs.prod.js +72 -7
  6. package/CommandExecutor/dist/effect-platform-CommandExecutor.esm.js +71 -2
  7. package/Effectify/dist/effect-platform-Effectify.cjs.dev.js +55 -3
  8. package/Effectify/dist/effect-platform-Effectify.cjs.prod.js +55 -3
  9. package/Effectify/dist/effect-platform-Effectify.esm.js +38 -2
  10. package/Error/dist/effect-platform-Error.cjs.dev.js +87 -5
  11. package/Error/dist/effect-platform-Error.cjs.prod.js +87 -5
  12. package/Error/dist/effect-platform-Error.esm.js +68 -2
  13. package/FileSystem/dist/effect-platform-FileSystem.cjs.dev.js +287 -20
  14. package/FileSystem/dist/effect-platform-FileSystem.cjs.prod.js +287 -20
  15. package/FileSystem/dist/effect-platform-FileSystem.esm.js +256 -9
  16. package/Http/App/dist/effect-platform-Http-App.cjs.dev.js +15 -0
  17. package/Http/App/dist/effect-platform-Http-App.cjs.mjs +6 -1
  18. package/Http/App/dist/effect-platform-Http-App.cjs.prod.js +15 -0
  19. package/Http/App/dist/effect-platform-Http-App.esm.js +6 -1
  20. package/Http/Body/dist/effect-platform-Http-Body.cjs.dev.js +4 -4
  21. package/Http/Body/dist/effect-platform-Http-Body.cjs.prod.js +4 -4
  22. package/Http/Body/dist/effect-platform-Http-Body.esm.js +4 -4
  23. package/Http/Client/dist/effect-platform-Http-Client.cjs.dev.js +6 -6
  24. package/Http/Client/dist/effect-platform-Http-Client.cjs.prod.js +6 -6
  25. package/Http/Client/dist/effect-platform-Http-Client.esm.js +6 -6
  26. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.dev.js +5 -5
  27. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.prod.js +5 -5
  28. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.esm.js +5 -5
  29. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.dev.js +4 -4
  30. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.prod.js +4 -4
  31. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.esm.js +4 -4
  32. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.dev.js +3 -3
  33. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.prod.js +3 -3
  34. package/Http/FormData/dist/effect-platform-Http-FormData.esm.js +3 -3
  35. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js +2 -2
  36. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js +2 -2
  37. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js +2 -2
  38. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.dev.js +11 -11
  39. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.mjs +0 -1
  40. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.prod.js +11 -11
  41. package/Http/Middleware/dist/effect-platform-Http-Middleware.esm.js +11 -10
  42. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.dev.js +3 -3
  43. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.prod.js +3 -3
  44. package/Http/Platform/dist/effect-platform-Http-Platform.esm.js +2 -2
  45. package/Http/Router/dist/effect-platform-Http-Router.cjs.dev.js +5 -5
  46. package/Http/Router/dist/effect-platform-Http-Router.cjs.prod.js +5 -5
  47. package/Http/Router/dist/effect-platform-Http-Router.esm.js +5 -5
  48. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.dev.js +4 -4
  49. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.prod.js +4 -4
  50. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.esm.js +4 -4
  51. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.dev.js +4 -4
  52. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.prod.js +4 -4
  53. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.esm.js +4 -4
  54. package/HttpClient/dist/effect-platform-HttpClient.cjs.dev.js +9 -9
  55. package/HttpClient/dist/effect-platform-HttpClient.cjs.prod.js +9 -9
  56. package/HttpClient/dist/effect-platform-HttpClient.esm.js +9 -9
  57. package/HttpServer/dist/effect-platform-HttpServer.cjs.dev.js +15 -15
  58. package/HttpServer/dist/effect-platform-HttpServer.cjs.prod.js +15 -15
  59. package/HttpServer/dist/effect-platform-HttpServer.esm.js +15 -15
  60. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.dev.js +227 -18
  61. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.prod.js +227 -18
  62. package/KeyValueStore/dist/effect-platform-KeyValueStore.esm.js +199 -10
  63. package/Path/dist/effect-platform-Path.cjs.dev.js +142 -9
  64. package/Path/dist/effect-platform-Path.cjs.prod.js +142 -9
  65. package/Path/dist/effect-platform-Path.esm.js +122 -7
  66. package/Runtime/dist/effect-platform-Runtime.cjs.dev.js +44 -4
  67. package/Runtime/dist/effect-platform-Runtime.cjs.prod.js +44 -4
  68. package/Runtime/dist/effect-platform-Runtime.esm.js +26 -3
  69. package/dist/App-18152f12.cjs.dev.js +93 -0
  70. package/dist/App-1ca51fa7.esm.js +65 -0
  71. package/dist/App-d8b904fa.cjs.prod.js +93 -0
  72. package/dist/{Body-ec1353f9.esm.js → Body-40ced606.esm.js} +1 -1
  73. package/dist/{Body-86ef2922.cjs.dev.js → Body-4a7ad057.cjs.dev.js} +1 -1
  74. package/dist/{Body-b77eac75.cjs.prod.js → Body-c26fa93f.cjs.prod.js} +1 -1
  75. package/dist/{Client-7b851481.cjs.prod.js → Client-03fea3d9.cjs.prod.js} +3 -3
  76. package/dist/{Client-4659bda7.esm.js → Client-55ef15d5.esm.js} +3 -3
  77. package/dist/{Client-440a1019.cjs.dev.js → Client-c05eadcd.cjs.dev.js} +3 -3
  78. package/dist/{ClientRequest-fc429335.esm.js → ClientRequest-490c76cd.esm.js} +1 -1
  79. package/dist/{ClientRequest-750d8d59.cjs.prod.js → ClientRequest-a729f345.cjs.prod.js} +1 -1
  80. package/dist/{ClientRequest-00e89da8.cjs.dev.js → ClientRequest-c5336a28.cjs.dev.js} +1 -1
  81. package/dist/{ClientResponse-4524e99e.esm.js → ClientResponse-6e84da40.esm.js} +1 -1
  82. package/dist/{ClientResponse-fe4e69c8.cjs.prod.js → ClientResponse-c19fd519.cjs.prod.js} +1 -1
  83. package/dist/{ClientResponse-1476704c.cjs.dev.js → ClientResponse-df62564e.cjs.dev.js} +1 -1
  84. package/dist/{FormData-ee0b1cf2.cjs.dev.js → FormData-6d030595.cjs.prod.js} +1 -1
  85. package/dist/{FormData-902afd18.cjs.prod.js → FormData-7ea13198.cjs.dev.js} +1 -1
  86. package/dist/{FormData-f54de878.esm.js → FormData-bd727d2f.esm.js} +1 -1
  87. package/dist/{Middleware-f9a073d7.cjs.prod.js → Middleware-6de1c21d.cjs.prod.js} +14 -20
  88. package/dist/{Middleware-e2edf820.cjs.dev.js → Middleware-b1d126b4.cjs.dev.js} +14 -20
  89. package/dist/{Middleware-240f91f6.esm.js → Middleware-d38ef616.esm.js} +15 -20
  90. package/dist/{Router-bf32317a.esm.js → Router-2ee665b4.esm.js} +2 -2
  91. package/dist/{Router-bd2b3014.cjs.dev.js → Router-43e62bd9.cjs.dev.js} +2 -2
  92. package/dist/{Router-6c80a4c9.cjs.prod.js → Router-53ec1aea.cjs.prod.js} +2 -2
  93. package/dist/{ServerRequest-03161edc.esm.js → ServerRequest-a641c507.esm.js} +1 -1
  94. package/dist/{ServerRequest-8d9c2c6b.cjs.dev.js → ServerRequest-cb289dae.cjs.dev.js} +1 -1
  95. package/dist/{ServerRequest-938f3ed0.cjs.prod.js → ServerRequest-ec4da01b.cjs.prod.js} +1 -1
  96. package/dist/{ServerResponse-93038062.esm.js → ServerResponse-03c252ea.esm.js} +2 -2
  97. package/dist/{ServerResponse-b63b7192.cjs.dev.js → ServerResponse-9af42ecb.cjs.dev.js} +2 -2
  98. package/dist/{ServerResponse-eae85b08.cjs.prod.js → ServerResponse-db87bde2.cjs.prod.js} +2 -2
  99. package/dist/{body-33521da5.cjs.prod.js → body-95276637.cjs.prod.js} +3 -3
  100. package/dist/{body-c7d7a944.cjs.dev.js → body-cea7c1c9.cjs.dev.js} +3 -3
  101. package/dist/{body-20d78ec1.esm.js → body-db8cfb3d.esm.js} +1 -1
  102. package/dist/{clientRequest-3e72ec54.cjs.prod.js → clientRequest-539df396.cjs.prod.js} +1 -1
  103. package/dist/{clientRequest-1e9e0b0d.esm.js → clientRequest-6121a7f6.esm.js} +1 -1
  104. package/dist/{clientRequest-423fd562.cjs.dev.js → clientRequest-dae0c34e.cjs.dev.js} +1 -1
  105. package/dist/{clientResponse-8c2ec6a3.esm.js → clientResponse-0ace0007.esm.js} +2 -2
  106. package/dist/{clientResponse-79c84a64.cjs.dev.js → clientResponse-43bb73b9.cjs.dev.js} +2 -2
  107. package/dist/{clientResponse-f9c57e83.cjs.prod.js → clientResponse-82dae5d8.cjs.prod.js} +2 -2
  108. package/dist/declarations/src/Http/App.d.ts +28 -1
  109. package/dist/declarations/src/Http/App.d.ts.map +1 -1
  110. package/dist/declarations/src/Http/Middleware.d.ts +0 -5
  111. package/dist/declarations/src/Http/Middleware.d.ts.map +1 -1
  112. package/dist/declarations/src/index.d.ts.map +1 -1
  113. package/dist/effect-platform.cjs.dev.js +49 -68
  114. package/dist/effect-platform.cjs.prod.js +49 -68
  115. package/dist/effect-platform.esm.js +20 -58
  116. package/package.json +8 -5
  117. package/src/Http/App.ts +76 -3
  118. package/src/Http/Middleware.ts +0 -6
  119. package/src/index.ts +10 -10
  120. package/src/internal/http/clientResponse.ts +2 -2
  121. package/src/internal/http/middleware.ts +21 -19
  122. package/src/internal/http/router.ts +1 -1
  123. package/src/internal/http/serverResponse.ts +1 -1
  124. package/dist/App-0916639a.cjs.prod.js +0 -7
  125. package/dist/App-44aa3275.cjs.dev.js +0 -7
  126. package/dist/App-687366d8.esm.js +0 -5
  127. package/dist/Command-032c414c.cjs.dev.js +0 -446
  128. package/dist/Command-25ef5e94.cjs.prod.js +0 -446
  129. package/dist/Command-d8ab0c8d.esm.js +0 -403
  130. package/dist/CommandExecutor-158ea1d3.cjs.dev.js +0 -87
  131. package/dist/CommandExecutor-5807b66b.esm.js +0 -80
  132. package/dist/CommandExecutor-7fcae408.cjs.prod.js +0 -87
  133. package/dist/Effectify-2d8c3af9.cjs.dev.js +0 -66
  134. package/dist/Effectify-38757ba5.cjs.prod.js +0 -66
  135. package/dist/Effectify-e5a9d266.esm.js +0 -43
  136. package/dist/Error-09496a70.cjs.dev.js +0 -100
  137. package/dist/Error-2c4e6ce2.cjs.prod.js +0 -100
  138. package/dist/Error-3099667c.esm.js +0 -75
  139. package/dist/FileSystem-3d439a05.cjs.prod.js +0 -308
  140. package/dist/FileSystem-4c7daaf0.cjs.dev.js +0 -308
  141. package/dist/FileSystem-7e31dccd.esm.js +0 -271
  142. package/dist/HttpClient-4d23b1f5.cjs.dev.js +0 -26
  143. package/dist/HttpClient-88775b8e.cjs.prod.js +0 -26
  144. package/dist/HttpClient-9ca6050c.esm.js +0 -24
  145. package/dist/HttpServer-16159c3a.cjs.dev.js +0 -32
  146. package/dist/HttpServer-50f8df76.esm.js +0 -30
  147. package/dist/HttpServer-93c0fbb3.cjs.prod.js +0 -32
  148. package/dist/KeyValueStore-2f9a70bf.esm.js +0 -210
  149. package/dist/KeyValueStore-f6c5b981.cjs.prod.js +0 -244
  150. package/dist/KeyValueStore-f9c93610.cjs.dev.js +0 -244
  151. package/dist/Path-3574641f.cjs.prod.js +0 -154
  152. package/dist/Path-46f84ba7.esm.js +0 -128
  153. package/dist/Path-7ba7e370.cjs.dev.js +0 -154
  154. package/dist/Runtime-1edd577a.cjs.dev.js +0 -55
  155. package/dist/Runtime-515efccf.cjs.prod.js +0 -55
  156. package/dist/Runtime-7265fb98.esm.js +0 -31
@@ -2,29 +2,238 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var KeyValueStore_dist_effectPlatformKeyValueStore = require('../../dist/KeyValueStore-f9c93610.cjs.dev.js');
6
- require('@effect/schema/Schema');
7
- require('effect/Context');
8
- require('effect/Effect');
9
- require('effect/Function');
10
- require('effect/Layer');
11
- require('effect/Option');
12
- require('../../dist/FileSystem-4c7daaf0.cjs.dev.js');
5
+ var Schema = require('@effect/schema/Schema');
6
+ var Context = require('effect/Context');
7
+ var Effect = require('effect/Effect');
8
+ var Function = require('effect/Function');
9
+ var Layer = require('effect/Layer');
10
+ var Option = require('effect/Option');
11
+ var FileSystem_dist_effectPlatformFileSystem = require('../../FileSystem/dist/effect-platform-FileSystem.cjs.dev.js');
12
+ var Path_dist_effectPlatformPath = require('../../Path/dist/effect-platform-Path.cjs.dev.js');
13
13
  require('effect/Brand');
14
14
  require('effect/Sink');
15
15
  require('effect/Stream');
16
- require('../../dist/Error-09496a70.cjs.dev.js');
16
+ require('../../Error/dist/effect-platform-Error.cjs.dev.js');
17
17
  require('effect/Data');
18
- require('../../dist/Path-7ba7e370.cjs.dev.js');
19
18
  require('path-browserify');
20
19
 
20
+ function _interopNamespace(e) {
21
+ if (e && e.__esModule) return e;
22
+ var n = Object.create(null);
23
+ if (e) {
24
+ Object.keys(e).forEach(function (k) {
25
+ if (k !== 'default') {
26
+ var d = Object.getOwnPropertyDescriptor(e, k);
27
+ Object.defineProperty(n, k, d.get ? d : {
28
+ enumerable: true,
29
+ get: function () { return e[k]; }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ n["default"] = e;
35
+ return Object.freeze(n);
36
+ }
21
37
 
38
+ var Schema__namespace = /*#__PURE__*/_interopNamespace(Schema);
39
+ var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
40
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
41
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
42
+ var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
22
43
 
23
- exports.KeyValueStore = KeyValueStore_dist_effectPlatformKeyValueStore.KeyValueStore$1;
24
- exports.SchemaStoreTypeId = KeyValueStore_dist_effectPlatformKeyValueStore.SchemaStoreTypeId;
25
- exports.TypeId = KeyValueStore_dist_effectPlatformKeyValueStore.TypeId;
26
- exports.layerFileSystem = KeyValueStore_dist_effectPlatformKeyValueStore.layerFileSystem;
27
- exports.layerMemory = KeyValueStore_dist_effectPlatformKeyValueStore.layerMemory;
28
- exports.layerSchema = KeyValueStore_dist_effectPlatformKeyValueStore.layerSchema;
29
- exports.make = KeyValueStore_dist_effectPlatformKeyValueStore.make;
30
- exports.prefix = KeyValueStore_dist_effectPlatformKeyValueStore.prefix;
44
+ /** @internal */
45
+ const TypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
46
+
47
+ /** @internal */
48
+ const keyValueStoreTag = /*#__PURE__*/Context__namespace.Tag(TypeId$1);
49
+
50
+ /** @internal */
51
+ const make$1 = impl => keyValueStoreTag.of({
52
+ [TypeId$1]: TypeId$1,
53
+ has: key => Effect__namespace.map(impl.get(key), Option__namespace.isSome),
54
+ isEmpty: Effect__namespace.map(impl.size, size => size === 0),
55
+ modify: (key, f) => Effect__namespace.flatMap(impl.get(key), o => {
56
+ if (Option__namespace.isNone(o)) {
57
+ return Effect__namespace.succeedNone;
58
+ }
59
+ const newValue = f(o.value);
60
+ return Effect__namespace.as(impl.set(key, newValue), Option__namespace.some(newValue));
61
+ }),
62
+ forSchema(schema) {
63
+ return makeSchemaStore(this, schema);
64
+ },
65
+ ...impl
66
+ });
67
+
68
+ /** @internal */
69
+ const prefix$1 = /*#__PURE__*/Function.dual(2, (self, prefix) => ({
70
+ ...self,
71
+ get: key => self.get(`${prefix}${key}`),
72
+ set: (key, value) => self.set(`${prefix}${key}`, value),
73
+ remove: key => self.remove(`${prefix}${key}`),
74
+ has: key => self.has(`${prefix}${key}`),
75
+ modify: (key, f) => self.modify(`${prefix}${key}`, f)
76
+ }));
77
+
78
+ /** @internal */
79
+ const SchemaStoreTypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
80
+
81
+ /** @internal */
82
+ const makeSchemaStore = (store, schema) => {
83
+ const jsonSchema = Schema__namespace.compose(Schema__namespace.ParseJson, schema);
84
+ const parse = Schema__namespace.parse(jsonSchema);
85
+ const encode = Schema__namespace.encode(jsonSchema);
86
+ const get = key => Effect__namespace.flatMap(store.get(key), Option__namespace.match({
87
+ onNone: () => Effect__namespace.succeedNone,
88
+ onSome: value => Effect__namespace.asSome(parse(value))
89
+ }));
90
+ const set = (key, value) => Effect__namespace.flatMap(encode(value), json => store.set(key, json));
91
+ const modify = (key, f) => Effect__namespace.flatMap(get(key), o => {
92
+ if (Option__namespace.isNone(o)) {
93
+ return Effect__namespace.succeedNone;
94
+ }
95
+ const newValue = f(o.value);
96
+ return Effect__namespace.as(set(key, newValue), Option__namespace.some(newValue));
97
+ });
98
+ return {
99
+ [SchemaStoreTypeId$1]: SchemaStoreTypeId$1,
100
+ get,
101
+ set,
102
+ modify,
103
+ remove: store.remove,
104
+ clear: store.clear,
105
+ size: store.size,
106
+ has: store.has,
107
+ isEmpty: store.isEmpty
108
+ };
109
+ };
110
+
111
+ /** @internal */
112
+ const layerMemory$1 = /*#__PURE__*/Layer__namespace.sync(keyValueStoreTag, () => {
113
+ const store = new Map();
114
+ return make$1({
115
+ get: key => Effect__namespace.sync(() => Option__namespace.fromNullable(store.get(key))),
116
+ set: (key, value) => Effect__namespace.sync(() => store.set(key, value)),
117
+ remove: key => Effect__namespace.sync(() => store.delete(key)),
118
+ clear: Effect__namespace.sync(() => store.clear()),
119
+ size: Effect__namespace.sync(() => store.size)
120
+ });
121
+ });
122
+
123
+ /** @internal */
124
+ const layerFileSystem$1 = directory => Layer__namespace.effect(keyValueStoreTag, Effect__namespace.gen(function* (_) {
125
+ const fs = yield* _(FileSystem_dist_effectPlatformFileSystem.FileSystem);
126
+ const path = yield* _(Path_dist_effectPlatformPath.Path);
127
+ const keyPath = key => path.join(directory, encodeURIComponent(key));
128
+ if (!(yield* _(fs.exists(directory)))) {
129
+ yield* _(fs.makeDirectory(directory, {
130
+ recursive: true
131
+ }));
132
+ }
133
+ return make$1({
134
+ get: key => Function.pipe(Effect__namespace.map(fs.readFileString(keyPath(key)), Option__namespace.some), Effect__namespace.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect__namespace.succeed(Option__namespace.none()) : Effect__namespace.fail(sysError))),
135
+ set: (key, value) => fs.writeFileString(keyPath(key), value),
136
+ remove: key => fs.remove(keyPath(key)),
137
+ has: key => fs.exists(keyPath(key)),
138
+ clear: Effect__namespace.zipRight(fs.remove(directory, {
139
+ recursive: true
140
+ }), fs.makeDirectory(directory, {
141
+ recursive: true
142
+ })),
143
+ size: Effect__namespace.map(fs.readDirectory(directory), files => files.length)
144
+ });
145
+ }));
146
+
147
+ /** @internal */
148
+ const layerSchema$1 = (schema, tagIdentifier) => {
149
+ const tag = Context__namespace.Tag(tagIdentifier);
150
+ const layer = Layer__namespace.effect(tag, Effect__namespace.map(keyValueStoreTag, store => store.forSchema(schema)));
151
+ return {
152
+ tag,
153
+ layer
154
+ };
155
+ };
156
+
157
+ /**
158
+ * @since 1.0.0
159
+ */
160
+ /**
161
+ * @since 1.0.0
162
+ * @category type id
163
+ */
164
+ const TypeId = TypeId$1;
165
+
166
+ /**
167
+ * @since 1.0.0
168
+ * @category type id
169
+ */
170
+
171
+ /**
172
+ * @since 1.0.0
173
+ * @category models
174
+ */
175
+
176
+ /**
177
+ * @since 1.0.0
178
+ */
179
+
180
+ /**
181
+ * @since 1.0.0
182
+ * @category tags
183
+ */
184
+ const KeyValueStore = keyValueStoreTag;
185
+
186
+ /**
187
+ * @since 1.0.0
188
+ * @category constructors
189
+ */
190
+ const make = make$1;
191
+
192
+ /**
193
+ * @since 1.0.0
194
+ * @category combinators
195
+ */
196
+ const prefix = prefix$1;
197
+
198
+ /**
199
+ * @since 1.0.0
200
+ * @category layers
201
+ */
202
+ const layerMemory = layerMemory$1;
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category layers
207
+ */
208
+ const layerFileSystem = layerFileSystem$1;
209
+
210
+ /**
211
+ * @since 1.0.0
212
+ * @category type id
213
+ */
214
+ const SchemaStoreTypeId = SchemaStoreTypeId$1;
215
+
216
+ /**
217
+ * @since 1.0.0
218
+ * @category type id
219
+ */
220
+
221
+ /**
222
+ * @since 1.0.0
223
+ * @category models
224
+ */
225
+
226
+ /**
227
+ * @since 1.0.0
228
+ * @category layers
229
+ */
230
+ const layerSchema = layerSchema$1;
231
+
232
+ exports.KeyValueStore = KeyValueStore;
233
+ exports.SchemaStoreTypeId = SchemaStoreTypeId;
234
+ exports.TypeId = TypeId;
235
+ exports.layerFileSystem = layerFileSystem;
236
+ exports.layerMemory = layerMemory;
237
+ exports.layerSchema = layerSchema;
238
+ exports.make = make;
239
+ exports.prefix = prefix;
@@ -2,29 +2,238 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var KeyValueStore_dist_effectPlatformKeyValueStore = require('../../dist/KeyValueStore-f6c5b981.cjs.prod.js');
6
- require('@effect/schema/Schema');
7
- require('effect/Context');
8
- require('effect/Effect');
9
- require('effect/Function');
10
- require('effect/Layer');
11
- require('effect/Option');
12
- require('../../dist/FileSystem-3d439a05.cjs.prod.js');
5
+ var Schema = require('@effect/schema/Schema');
6
+ var Context = require('effect/Context');
7
+ var Effect = require('effect/Effect');
8
+ var Function = require('effect/Function');
9
+ var Layer = require('effect/Layer');
10
+ var Option = require('effect/Option');
11
+ var FileSystem_dist_effectPlatformFileSystem = require('../../FileSystem/dist/effect-platform-FileSystem.cjs.prod.js');
12
+ var Path_dist_effectPlatformPath = require('../../Path/dist/effect-platform-Path.cjs.prod.js');
13
13
  require('effect/Brand');
14
14
  require('effect/Sink');
15
15
  require('effect/Stream');
16
- require('../../dist/Error-2c4e6ce2.cjs.prod.js');
16
+ require('../../Error/dist/effect-platform-Error.cjs.prod.js');
17
17
  require('effect/Data');
18
- require('../../dist/Path-3574641f.cjs.prod.js');
19
18
  require('path-browserify');
20
19
 
20
+ function _interopNamespace(e) {
21
+ if (e && e.__esModule) return e;
22
+ var n = Object.create(null);
23
+ if (e) {
24
+ Object.keys(e).forEach(function (k) {
25
+ if (k !== 'default') {
26
+ var d = Object.getOwnPropertyDescriptor(e, k);
27
+ Object.defineProperty(n, k, d.get ? d : {
28
+ enumerable: true,
29
+ get: function () { return e[k]; }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ n["default"] = e;
35
+ return Object.freeze(n);
36
+ }
21
37
 
38
+ var Schema__namespace = /*#__PURE__*/_interopNamespace(Schema);
39
+ var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
40
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
41
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
42
+ var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
22
43
 
23
- exports.KeyValueStore = KeyValueStore_dist_effectPlatformKeyValueStore.KeyValueStore$1;
24
- exports.SchemaStoreTypeId = KeyValueStore_dist_effectPlatformKeyValueStore.SchemaStoreTypeId;
25
- exports.TypeId = KeyValueStore_dist_effectPlatformKeyValueStore.TypeId;
26
- exports.layerFileSystem = KeyValueStore_dist_effectPlatformKeyValueStore.layerFileSystem;
27
- exports.layerMemory = KeyValueStore_dist_effectPlatformKeyValueStore.layerMemory;
28
- exports.layerSchema = KeyValueStore_dist_effectPlatformKeyValueStore.layerSchema;
29
- exports.make = KeyValueStore_dist_effectPlatformKeyValueStore.make;
30
- exports.prefix = KeyValueStore_dist_effectPlatformKeyValueStore.prefix;
44
+ /** @internal */
45
+ const TypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
46
+
47
+ /** @internal */
48
+ const keyValueStoreTag = /*#__PURE__*/Context__namespace.Tag(TypeId$1);
49
+
50
+ /** @internal */
51
+ const make$1 = impl => keyValueStoreTag.of({
52
+ [TypeId$1]: TypeId$1,
53
+ has: key => Effect__namespace.map(impl.get(key), Option__namespace.isSome),
54
+ isEmpty: Effect__namespace.map(impl.size, size => size === 0),
55
+ modify: (key, f) => Effect__namespace.flatMap(impl.get(key), o => {
56
+ if (Option__namespace.isNone(o)) {
57
+ return Effect__namespace.succeedNone;
58
+ }
59
+ const newValue = f(o.value);
60
+ return Effect__namespace.as(impl.set(key, newValue), Option__namespace.some(newValue));
61
+ }),
62
+ forSchema(schema) {
63
+ return makeSchemaStore(this, schema);
64
+ },
65
+ ...impl
66
+ });
67
+
68
+ /** @internal */
69
+ const prefix$1 = /*#__PURE__*/Function.dual(2, (self, prefix) => ({
70
+ ...self,
71
+ get: key => self.get(`${prefix}${key}`),
72
+ set: (key, value) => self.set(`${prefix}${key}`, value),
73
+ remove: key => self.remove(`${prefix}${key}`),
74
+ has: key => self.has(`${prefix}${key}`),
75
+ modify: (key, f) => self.modify(`${prefix}${key}`, f)
76
+ }));
77
+
78
+ /** @internal */
79
+ const SchemaStoreTypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
80
+
81
+ /** @internal */
82
+ const makeSchemaStore = (store, schema) => {
83
+ const jsonSchema = Schema__namespace.compose(Schema__namespace.ParseJson, schema);
84
+ const parse = Schema__namespace.parse(jsonSchema);
85
+ const encode = Schema__namespace.encode(jsonSchema);
86
+ const get = key => Effect__namespace.flatMap(store.get(key), Option__namespace.match({
87
+ onNone: () => Effect__namespace.succeedNone,
88
+ onSome: value => Effect__namespace.asSome(parse(value))
89
+ }));
90
+ const set = (key, value) => Effect__namespace.flatMap(encode(value), json => store.set(key, json));
91
+ const modify = (key, f) => Effect__namespace.flatMap(get(key), o => {
92
+ if (Option__namespace.isNone(o)) {
93
+ return Effect__namespace.succeedNone;
94
+ }
95
+ const newValue = f(o.value);
96
+ return Effect__namespace.as(set(key, newValue), Option__namespace.some(newValue));
97
+ });
98
+ return {
99
+ [SchemaStoreTypeId$1]: SchemaStoreTypeId$1,
100
+ get,
101
+ set,
102
+ modify,
103
+ remove: store.remove,
104
+ clear: store.clear,
105
+ size: store.size,
106
+ has: store.has,
107
+ isEmpty: store.isEmpty
108
+ };
109
+ };
110
+
111
+ /** @internal */
112
+ const layerMemory$1 = /*#__PURE__*/Layer__namespace.sync(keyValueStoreTag, () => {
113
+ const store = new Map();
114
+ return make$1({
115
+ get: key => Effect__namespace.sync(() => Option__namespace.fromNullable(store.get(key))),
116
+ set: (key, value) => Effect__namespace.sync(() => store.set(key, value)),
117
+ remove: key => Effect__namespace.sync(() => store.delete(key)),
118
+ clear: Effect__namespace.sync(() => store.clear()),
119
+ size: Effect__namespace.sync(() => store.size)
120
+ });
121
+ });
122
+
123
+ /** @internal */
124
+ const layerFileSystem$1 = directory => Layer__namespace.effect(keyValueStoreTag, Effect__namespace.gen(function* (_) {
125
+ const fs = yield* _(FileSystem_dist_effectPlatformFileSystem.FileSystem);
126
+ const path = yield* _(Path_dist_effectPlatformPath.Path);
127
+ const keyPath = key => path.join(directory, encodeURIComponent(key));
128
+ if (!(yield* _(fs.exists(directory)))) {
129
+ yield* _(fs.makeDirectory(directory, {
130
+ recursive: true
131
+ }));
132
+ }
133
+ return make$1({
134
+ get: key => Function.pipe(Effect__namespace.map(fs.readFileString(keyPath(key)), Option__namespace.some), Effect__namespace.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect__namespace.succeed(Option__namespace.none()) : Effect__namespace.fail(sysError))),
135
+ set: (key, value) => fs.writeFileString(keyPath(key), value),
136
+ remove: key => fs.remove(keyPath(key)),
137
+ has: key => fs.exists(keyPath(key)),
138
+ clear: Effect__namespace.zipRight(fs.remove(directory, {
139
+ recursive: true
140
+ }), fs.makeDirectory(directory, {
141
+ recursive: true
142
+ })),
143
+ size: Effect__namespace.map(fs.readDirectory(directory), files => files.length)
144
+ });
145
+ }));
146
+
147
+ /** @internal */
148
+ const layerSchema$1 = (schema, tagIdentifier) => {
149
+ const tag = Context__namespace.Tag(tagIdentifier);
150
+ const layer = Layer__namespace.effect(tag, Effect__namespace.map(keyValueStoreTag, store => store.forSchema(schema)));
151
+ return {
152
+ tag,
153
+ layer
154
+ };
155
+ };
156
+
157
+ /**
158
+ * @since 1.0.0
159
+ */
160
+ /**
161
+ * @since 1.0.0
162
+ * @category type id
163
+ */
164
+ const TypeId = TypeId$1;
165
+
166
+ /**
167
+ * @since 1.0.0
168
+ * @category type id
169
+ */
170
+
171
+ /**
172
+ * @since 1.0.0
173
+ * @category models
174
+ */
175
+
176
+ /**
177
+ * @since 1.0.0
178
+ */
179
+
180
+ /**
181
+ * @since 1.0.0
182
+ * @category tags
183
+ */
184
+ const KeyValueStore = keyValueStoreTag;
185
+
186
+ /**
187
+ * @since 1.0.0
188
+ * @category constructors
189
+ */
190
+ const make = make$1;
191
+
192
+ /**
193
+ * @since 1.0.0
194
+ * @category combinators
195
+ */
196
+ const prefix = prefix$1;
197
+
198
+ /**
199
+ * @since 1.0.0
200
+ * @category layers
201
+ */
202
+ const layerMemory = layerMemory$1;
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category layers
207
+ */
208
+ const layerFileSystem = layerFileSystem$1;
209
+
210
+ /**
211
+ * @since 1.0.0
212
+ * @category type id
213
+ */
214
+ const SchemaStoreTypeId = SchemaStoreTypeId$1;
215
+
216
+ /**
217
+ * @since 1.0.0
218
+ * @category type id
219
+ */
220
+
221
+ /**
222
+ * @since 1.0.0
223
+ * @category models
224
+ */
225
+
226
+ /**
227
+ * @since 1.0.0
228
+ * @category layers
229
+ */
230
+ const layerSchema = layerSchema$1;
231
+
232
+ exports.KeyValueStore = KeyValueStore;
233
+ exports.SchemaStoreTypeId = SchemaStoreTypeId;
234
+ exports.TypeId = TypeId;
235
+ exports.layerFileSystem = layerFileSystem;
236
+ exports.layerMemory = layerMemory;
237
+ exports.layerSchema = layerSchema;
238
+ exports.make = make;
239
+ exports.prefix = prefix;