effect-app 0.152.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 (169) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.prettierignore +6 -0
  3. package/CHANGELOG.md +4106 -0
  4. package/_cjs/Config/SecretURL.cjs +58 -0
  5. package/_cjs/Config/SecretURL.cjs.map +1 -0
  6. package/_cjs/Config/internal/configSecretURL.cjs +88 -0
  7. package/_cjs/Config/internal/configSecretURL.cjs.map +1 -0
  8. package/_cjs/Inputify.type.cjs +6 -0
  9. package/_cjs/Inputify.type.cjs.map +1 -0
  10. package/_cjs/Operations.cjs +76 -0
  11. package/_cjs/Operations.cjs.map +1 -0
  12. package/_cjs/Pure.cjs +201 -0
  13. package/_cjs/Pure.cjs.map +1 -0
  14. package/_cjs/Request.cjs +76 -0
  15. package/_cjs/Request.cjs.map +1 -0
  16. package/_cjs/Widen.type.cjs +6 -0
  17. package/_cjs/Widen.type.cjs.map +1 -0
  18. package/_cjs/_ext/date.cjs +64 -0
  19. package/_cjs/_ext/date.cjs.map +1 -0
  20. package/_cjs/_ext/misc.cjs +121 -0
  21. package/_cjs/_ext/misc.cjs.map +1 -0
  22. package/_cjs/_global.cjs +24 -0
  23. package/_cjs/_global.cjs.map +1 -0
  24. package/_cjs/_global.ext.cjs +5 -0
  25. package/_cjs/_global.ext.cjs.map +1 -0
  26. package/_cjs/_global.schema.cjs +4 -0
  27. package/_cjs/_global.schema.cjs.map +1 -0
  28. package/_cjs/client/QueryResult.cjs +116 -0
  29. package/_cjs/client/QueryResult.cjs.map +1 -0
  30. package/_cjs/client/clientFor.cjs +159 -0
  31. package/_cjs/client/clientFor.cjs.map +1 -0
  32. package/_cjs/client/config.cjs +21 -0
  33. package/_cjs/client/config.cjs.map +1 -0
  34. package/_cjs/client/errors.cjs +116 -0
  35. package/_cjs/client/errors.cjs.map +1 -0
  36. package/_cjs/client/fetch.cjs +178 -0
  37. package/_cjs/client/fetch.cjs.map +1 -0
  38. package/_cjs/client.cjs +61 -0
  39. package/_cjs/client.cjs.map +1 -0
  40. package/_cjs/faker.cjs +31 -0
  41. package/_cjs/faker.cjs.map +1 -0
  42. package/_cjs/ids.cjs +24 -0
  43. package/_cjs/ids.cjs.map +1 -0
  44. package/_cjs/index.cjs +27 -0
  45. package/_cjs/index.cjs.map +1 -0
  46. package/_cjs/refinements.cjs +97 -0
  47. package/_cjs/refinements.cjs.map +1 -0
  48. package/_cjs/schema.cjs +50 -0
  49. package/_cjs/schema.cjs.map +1 -0
  50. package/_cjs/schema.test.cjs +9 -0
  51. package/_cjs/schema.test.cjs.map +1 -0
  52. package/_cjs/service.cjs +97 -0
  53. package/_cjs/service.cjs.map +1 -0
  54. package/_cjs/utils.cjs +17 -0
  55. package/_cjs/utils.cjs.map +1 -0
  56. package/_src/Config/SecretURL.ts +103 -0
  57. package/_src/Config/internal/configSecretURL.ts +85 -0
  58. package/_src/Inputify.type.ts +13 -0
  59. package/_src/Operations.ts +70 -0
  60. package/_src/Pure.ts +525 -0
  61. package/_src/Request.ts +106 -0
  62. package/_src/Widen.type.ts +28 -0
  63. package/_src/_ext/date.ts +84 -0
  64. package/_src/_ext/misc.ts +161 -0
  65. package/_src/_global/stm.ts.bak +35 -0
  66. package/_src/_global.ext.ts +3 -0
  67. package/_src/_global.schema.ts +106 -0
  68. package/_src/_global.ts +119 -0
  69. package/_src/client/QueryResult.ts +120 -0
  70. package/_src/client/clientFor.ts +260 -0
  71. package/_src/client/config.ts +13 -0
  72. package/_src/client/errors.ts +129 -0
  73. package/_src/client/fetch.ts +253 -0
  74. package/_src/client.ts +7 -0
  75. package/_src/faker.ts +32 -0
  76. package/_src/ids.ts +35 -0
  77. package/_src/index.ts +4 -0
  78. package/_src/refinements.ts +92 -0
  79. package/_src/schema/_schema.ts.bak +208 -0
  80. package/_src/schema/api/date.ts.bak +78 -0
  81. package/_src/schema/api.ts.bak +20 -0
  82. package/_src/schema/overrides.ts.bak +76 -0
  83. package/_src/schema/shared.ts.bak +334 -0
  84. package/_src/schema.test.ts +3 -0
  85. package/_src/schema.ts +37 -0
  86. package/_src/service.ts +119 -0
  87. package/_src/utils.ts +1 -0
  88. package/dist/Config/SecretURL.d.ts +82 -0
  89. package/dist/Config/SecretURL.d.ts.map +1 -0
  90. package/dist/Config/SecretURL.js +49 -0
  91. package/dist/Config/internal/configSecretURL.d.ts +24 -0
  92. package/dist/Config/internal/configSecretURL.d.ts.map +1 -0
  93. package/dist/Config/internal/configSecretURL.js +75 -0
  94. package/dist/Inputify.type.d.ts +10 -0
  95. package/dist/Inputify.type.d.ts.map +1 -0
  96. package/dist/Inputify.type.js +2 -0
  97. package/dist/Operations.d.ts +170 -0
  98. package/dist/Operations.d.ts.map +1 -0
  99. package/dist/Operations.js +87 -0
  100. package/dist/Pure.d.ts +169 -0
  101. package/dist/Pure.d.ts.map +1 -0
  102. package/dist/Pure.js +167 -0
  103. package/dist/Request.d.ts +49 -0
  104. package/dist/Request.d.ts.map +1 -0
  105. package/dist/Request.js +58 -0
  106. package/dist/Widen.type.d.ts +19 -0
  107. package/dist/Widen.type.d.ts.map +1 -0
  108. package/dist/Widen.type.js +2 -0
  109. package/dist/_ext/date.d.ts +71 -0
  110. package/dist/_ext/date.d.ts.map +1 -0
  111. package/dist/_ext/date.js +58 -0
  112. package/dist/_ext/misc.d.ts +77 -0
  113. package/dist/_ext/misc.d.ts.map +1 -0
  114. package/dist/_ext/misc.js +98 -0
  115. package/dist/_global.d.ts +70 -0
  116. package/dist/_global.d.ts.map +1 -0
  117. package/dist/_global.ext.d.ts +3 -0
  118. package/dist/_global.ext.d.ts.map +1 -0
  119. package/dist/_global.ext.js +4 -0
  120. package/dist/_global.js +76 -0
  121. package/dist/_global.schema.d.ts +6 -0
  122. package/dist/_global.schema.d.ts.map +1 -0
  123. package/dist/_global.schema.js +6 -0
  124. package/dist/client/QueryResult.d.ts +85 -0
  125. package/dist/client/QueryResult.d.ts.map +1 -0
  126. package/dist/client/QueryResult.js +85 -0
  127. package/dist/client/clientFor.d.ts +44 -0
  128. package/dist/client/clientFor.d.ts.map +1 -0
  129. package/dist/client/clientFor.js +144 -0
  130. package/dist/client/config.d.ts +14 -0
  131. package/dist/client/config.d.ts.map +1 -0
  132. package/dist/client/config.js +11 -0
  133. package/dist/client/errors.d.ts +206 -0
  134. package/dist/client/errors.d.ts.map +1 -0
  135. package/dist/client/errors.js +130 -0
  136. package/dist/client/fetch.d.ts +61 -0
  137. package/dist/client/fetch.d.ts.map +1 -0
  138. package/dist/client/fetch.js +127 -0
  139. package/dist/client.d.ts +6 -0
  140. package/dist/client.d.ts.map +1 -0
  141. package/dist/client.js +7 -0
  142. package/dist/faker.d.ts +7 -0
  143. package/dist/faker.d.ts.map +1 -0
  144. package/dist/faker.js +24 -0
  145. package/dist/ids.d.ts +32 -0
  146. package/dist/ids.d.ts.map +1 -0
  147. package/dist/ids.js +17 -0
  148. package/dist/index.d.ts +4 -0
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +4 -0
  151. package/dist/refinements.d.ts +57 -0
  152. package/dist/refinements.d.ts.map +1 -0
  153. package/dist/refinements.js +85 -0
  154. package/dist/schema.d.ts +7 -0
  155. package/dist/schema.d.ts.map +1 -0
  156. package/dist/schema.js +22 -0
  157. package/dist/schema.test.d.ts.map +1 -0
  158. package/dist/service.d.ts +47 -0
  159. package/dist/service.d.ts.map +1 -0
  160. package/dist/service.js +83 -0
  161. package/dist/utils.d.ts +2 -0
  162. package/dist/utils.d.ts.map +1 -0
  163. package/dist/utils.js +2 -0
  164. package/package.json +315 -0
  165. package/tsconfig.json +114 -0
  166. package/tsconfig.json.bak +47 -0
  167. package/tsplus.config.json +7 -0
  168. package/vitest.config.ts +5 -0
  169. package/wallaby.cjs +1 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @tsplus global
3
+ */
4
+ import { Runtime } from "effect/Runtime";
5
+ /**
6
+ * @tsplus global
7
+ */
8
+ import { Config } from "effect/Config";
9
+ /**
10
+ * @tsplus global
11
+ */
12
+ import { SecretURL } from "effect-app/Config/SecretURL";
13
+ /**
14
+ * @tsplus global
15
+ */
16
+ import { Secret } from "effect/Secret";
17
+ /**
18
+ * @tsplus global
19
+ */
20
+ import { ConfigError } from "effect/ConfigError";
21
+ /**
22
+ * @tsplus global
23
+ */
24
+ import { ConfigProvider } from "effect/ConfigProvider";
25
+ /**
26
+ * @tsplus global
27
+ */
28
+ import { Cache, CacheStats, ConsumerCache, EntryStats } from "effect/Cache";
29
+ /**
30
+ * @tsplus global
31
+ */
32
+ import { Request } from "effect/Request";
33
+ /**
34
+ * @tsplus global
35
+ */
36
+ import { ClientRequest } from "@effect/platform/Http/ClientRequest";
37
+ /**
38
+ * @tsplus global
39
+ */
40
+ import { EffectCache, EffectRequest, HttpClient } from "effect-app/Request";
41
+ /**
42
+ * @tsplus global
43
+ */
44
+ import { RequestResolver } from "effect/RequestResolver";
45
+ /**
46
+ * @tsplus global
47
+ */
48
+ import { Pure, PureEnv, PureEnvEnv } from "effect-app/Pure";
49
+ /**
50
+ * @tsplus global
51
+ */
52
+ import { exhaustiveMatch, exhaustiveMatch_, spread, spreadS } from "effect-app/utils";
53
+ /**
54
+ * @tsplus global
55
+ */
56
+ import { Fnc, Lens, NonEmptySet, Record, ReadonlySet, S, Utils } from "effect-app";
57
+ /**
58
+ * @tsplus global
59
+ */
60
+ import { assignTag, ServiceTagged, TagClass, TagClassMake } from "effect-app/service";
61
+ /**
62
+ * @tsplus global
63
+ */
64
+ import { match, Pattern } from "ts-pattern";
65
+ import "@effect-app/core/_global";
66
+ import "@effect-app/core/Prelude";
67
+ import "@effect-app/schema/_global";
68
+ import "./_global.ext.js";
69
+ import "./refinements.js";
70
+ //# sourceMappingURL=_global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_global.d.ts","sourceRoot":"","sources":["../_src/_global.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAEvD;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE3E;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnE;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE3E;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAIxD;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE3D;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACrF;;GAEG;AACH,OAAO,EASL,GAAG,EAGH,IAAI,EAGJ,WAAW,EAGX,MAAM,EAEN,WAAW,EAEX,CAAC,EAED,KAAK,EAEN,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAErF;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,0BAA0B,CAAA;AACjC,OAAO,0BAA0B,CAAA;AACjC,OAAO,4BAA4B,CAAA;AAEnC,OAAO,kBAAkB,CAAA;AACzB,OAAO,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import "./_ext/date.js";
2
+ import "./_ext/misc.js";
3
+ //# sourceMappingURL=_global.ext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../_src/_global.ext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAA;AACvB,OAAO,gBAAgB,CAAA"}
@@ -0,0 +1,4 @@
1
+ // import "./EffectOption.ext.js"
2
+ import "./_ext/date.js";
3
+ import "./_ext/misc.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5leHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL19nbG9iYWwuZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxPQUFPLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sZ0JBQWdCLENBQUEifQ==
@@ -0,0 +1,76 @@
1
+ /* eslint-disable unused-imports/no-unused-imports */
2
+ // /**
3
+ // * @tsplus global
4
+ // */
5
+ // import { Predicate } from "@effect-app/core/Function"
6
+ /**
7
+ * @tsplus global
8
+ */
9
+ import "effect/Runtime";
10
+ /**
11
+ * @tsplus global
12
+ */
13
+ import "effect/Config";
14
+ /**
15
+ * @tsplus global
16
+ */
17
+ import "effect-app/Config/SecretURL";
18
+ /**
19
+ * @tsplus global
20
+ */
21
+ import "effect/Secret";
22
+ /**
23
+ * @tsplus global
24
+ */
25
+ import "effect/ConfigError";
26
+ /**
27
+ * @tsplus global
28
+ */
29
+ import "effect/ConfigProvider";
30
+ /**
31
+ * @tsplus global
32
+ */
33
+ import "effect/Cache";
34
+ /**
35
+ * @tsplus global
36
+ */
37
+ import "effect/Request";
38
+ /**
39
+ * @tsplus global
40
+ */
41
+ import "@effect/platform/Http/ClientRequest";
42
+ /**
43
+ * @tsplus global
44
+ */
45
+ import "effect-app/Request";
46
+ /**
47
+ * @tsplus global
48
+ */
49
+ import "effect/RequestResolver";
50
+ /* eslint-disable unused-imports/no-unused-imports */
51
+ /**
52
+ * @tsplus global
53
+ */
54
+ import "effect-app/Pure";
55
+ /**
56
+ * @tsplus global
57
+ */
58
+ import "effect-app/utils";
59
+ /**
60
+ * @tsplus global
61
+ */
62
+ import "effect-app";
63
+ /**
64
+ * @tsplus global
65
+ */
66
+ import "effect-app/service";
67
+ /**
68
+ * @tsplus global
69
+ */
70
+ import "ts-pattern";
71
+ import "@effect-app/core/_global";
72
+ import "@effect-app/core/Prelude";
73
+ import "@effect-app/schema/_global";
74
+ import "./_global.ext.js";
75
+ import "./refinements.js";
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvX2dsb2JhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsTUFBTTtBQUNOLG9CQUFvQjtBQUNwQixNQUFNO0FBQ04sd0RBQXdEO0FBRXhEOztHQUVHO0FBQ0gsT0FBd0IsZ0JBQWdCLENBQUE7QUFFeEM7O0dBRUc7QUFDSCxPQUF1QixlQUFlLENBQUE7QUFFdEM7O0dBRUc7QUFDSCxPQUEwQiw2QkFBNkIsQ0FBQTtBQUV2RDs7R0FFRztBQUNILE9BQXVCLGVBQWUsQ0FBQTtBQUV0Qzs7R0FFRztBQUNILE9BQTRCLG9CQUFvQixDQUFBO0FBRWhEOztHQUVHO0FBQ0gsT0FBK0IsdUJBQXVCLENBQUE7QUFFdEQ7O0dBRUc7QUFDSCxPQUE2RCxjQUFjLENBQUE7QUFFM0U7O0dBRUc7QUFDSCxPQUF3QixnQkFBZ0IsQ0FBQTtBQUV4Qzs7R0FFRztBQUNILE9BQThCLHFDQUFxQyxDQUFBO0FBRW5FOztHQUVHO0FBQ0gsT0FBdUQsb0JBQW9CLENBQUE7QUFFM0U7O0dBRUc7QUFDSCxPQUFnQyx3QkFBd0IsQ0FBQTtBQUV4RCxxREFBcUQ7QUFFckQ7O0dBRUc7QUFDSCxPQUEwQyxpQkFBaUIsQ0FBQTtBQUUzRDs7R0FFRztBQUNILE9BQW1FLGtCQUFrQixDQUFBO0FBQ3JGOztHQUVHO0FBQ0gsT0EwQk8sWUFBWSxDQUFBO0FBRW5COztHQUVHO0FBQ0gsT0FBaUUsb0JBQW9CLENBQUE7QUFFckY7O0dBRUc7QUFDSCxPQUErQixZQUFZLENBQUE7QUFFM0MsT0FBTywwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLDBCQUEwQixDQUFBO0FBQ2pDLE9BQU8sNEJBQTRCLENBQUE7QUFFbkMsT0FBTyxrQkFBa0IsQ0FBQTtBQUN6QixPQUFPLGtCQUFrQixDQUFBIn0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @tsplus global
3
+ */
4
+ import { annotate, array, boolean, Class, Date, Email, ExtendedClass, ExtendedTaggedClass, FromClass, inputDate, literal, nonEmptyArray, NonEmptyString, NonEmptyString255, NonEmptyString2k, NonEmptyString50, NonEmptyString64k, NonNegativeDecimal, NonNegativeInt, NonNegativeNumber, nullable, number, ParseResult, PhoneNumber, PositiveDecimal, PositiveInt, PositiveNumber, readonlyMap, readonlySet, Schema, string, StringId, struct, TaggedClass, union, UnionBrand, unknown, useClassFeaturesForSchema, useClassNameForSchema, void_ as Void } from "effect-app/schema";
5
+ export {};
6
+ //# sourceMappingURL=_global.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_global.schema.d.ts","sourceRoot":"","sources":["../_src/_global.schema.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,OAAO,EACP,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,IAAI,IAAI,EACd,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /* eslint-disable unused-imports/no-unused-imports */
2
+ /**
3
+ * @tsplus global
4
+ */
5
+ import "effect-app/schema";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL19nbG9iYWwuc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUVyRDs7R0FFRztBQUNILE9BeUNPLG1CQUFtQixDQUFBIn0=
@@ -0,0 +1,85 @@
1
+ import { Data } from "effect";
2
+ import { Option } from "@effect-app/core/Option";
3
+ import { Effect } from "effect/Effect";
4
+ import * as Either from "effect/Either";
5
+ declare const Initial_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
6
+ readonly _tag: "Initial";
7
+ };
8
+ export declare class Initial extends Initial_base<{}> {
9
+ }
10
+ declare const Loading_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
11
+ readonly _tag: "Loading";
12
+ };
13
+ export declare class Loading extends Loading_base<{}> {
14
+ }
15
+ declare const Refreshing_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
16
+ readonly _tag: "Refreshing";
17
+ };
18
+ export declare class Refreshing<E, A> extends Refreshing_base<{
19
+ readonly current: Either.Either<E, A>;
20
+ readonly previous: Option<A>;
21
+ }> {
22
+ static succeed<A, E = never>(a: A): Refreshing<E, A>;
23
+ static fail<E, A = never>(e: E, previous?: A): Refreshing<E, A>;
24
+ static fromDone<E, A>(d: Done<E, A>): Refreshing<E, A>;
25
+ }
26
+ declare const Done_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
27
+ readonly _tag: "Done";
28
+ };
29
+ export declare class Done<E, A> extends Done_base<{
30
+ readonly current: Either.Either<E, A>;
31
+ readonly previous: Option<A>;
32
+ }> {
33
+ static succeed<A, E = never>(this: void, a: A): Done<E, A>;
34
+ static fail<E, A = never>(this: void, e: E, previous?: A): Done<E, A>;
35
+ static refresh<E, A>(d: Done<E, A>): Refreshing<E, A>;
36
+ }
37
+ /**
38
+ * @tsplus type QueryResult
39
+ */
40
+ export type QueryResult<E, A> = Initial | Loading | Refreshing<E, A> | Done<E, A>;
41
+ type Result<E, A> = Omit<Done<E, A>, "current"> | Omit<Refreshing<E, A>, "current">;
42
+ /**
43
+ * @tsplus fluent QueryResult isSuccess
44
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
45
+ */
46
+ export declare function isSuccess<E, A>(qr: QueryResult<E, A>): qr is Result<E, A> & {
47
+ current: Either.Right<E, A>;
48
+ };
49
+ /**
50
+ * @tsplus fluent QueryResult hasValue
51
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
52
+ */
53
+ export declare function hasValue<E, A>(qr: QueryResult<E, A>): qr is Done<E, A> | Refreshing<E, A>;
54
+ /**
55
+ * @tsplus fluent QueryResult isRefreshing
56
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
57
+ */
58
+ export declare function isRefreshing<E, A>(qr: QueryResult<E, A>): qr is Refreshing<E, A>;
59
+ /**
60
+ * @tsplus fluent QueryResult isDone
61
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
62
+ */
63
+ export declare function isDone<E, A>(qr: QueryResult<E, A>): qr is Done<E, A>;
64
+ /**
65
+ * @tsplus fluent QueryResult isInitializing
66
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
67
+ */
68
+ export declare function isInitializing<E, A>(qr: QueryResult<E, A>): qr is Initial | Loading;
69
+ /**
70
+ * @tsplus fluent QueryResult isFailed
71
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
72
+ */
73
+ export declare function isFailed<E, A>(qr: QueryResult<E, A>): qr is Result<E, A> & {
74
+ current: Either.Left<E, A>;
75
+ };
76
+ export type ResultTuple<Result> = readonly [result: Result, refresh: () => void];
77
+ export type QueryResultTuple<E, A> = ResultTuple<QueryResult<E, A>>;
78
+ export declare const fail: typeof Done.fail, succeed: typeof Done.succeed;
79
+ /**
80
+ * @tsplus getter effect/io/Effect asQueryResult
81
+ * @tsplus location "@effect-app/prelude/client/QueryResult"
82
+ */
83
+ export declare function queryResult<R, E, A>(self: Effect<A, E, R>): Effect<QueryResult<E, A>, never, R>;
84
+ export {};
85
+ //# sourceMappingURL=QueryResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryResult.d.ts","sourceRoot":"","sources":["../../_src/client/QueryResult.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import * as tsplus_module_1 from "effect";
2
+ import * as tsplus_module_2 from "effect/Option";
3
+ import * as tsplus_module_3 from "effect/Effect";
4
+ export const hasValue = hasValue_1;
5
+ export const isRefreshing = isRefreshing_1;
6
+ export const isDone = isDone_1;
7
+ // TODO: Convert to effect/core
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ import * as Either from "effect/Either";
10
+ export class Initial extends tsplus_module_1.Data.TaggedClass("Initial") {
11
+ }
12
+ export class Loading extends tsplus_module_1.Data.TaggedClass("Loading") {
13
+ }
14
+ export class Refreshing extends tsplus_module_1.Data.TaggedClass("Refreshing") {
15
+ static succeed(a) {
16
+ return new Refreshing({ current: Either.right(a), previous: tsplus_module_2.none() });
17
+ }
18
+ static fail(e, previous) {
19
+ return new Refreshing({
20
+ current: Either.left(e),
21
+ previous: previous === undefined ? tsplus_module_2.none() : tsplus_module_2.some(previous)
22
+ });
23
+ }
24
+ static fromDone(d) {
25
+ return new Refreshing(d);
26
+ }
27
+ }
28
+ export class Done extends tsplus_module_1.Data.TaggedClass("Done") {
29
+ static succeed(a) {
30
+ return new Done({ current: Either.right(a), previous: tsplus_module_2.none() });
31
+ }
32
+ static fail(e, previous) {
33
+ return new Done({
34
+ current: Either.left(e),
35
+ previous: previous === undefined ? tsplus_module_2.none() : tsplus_module_2.some(previous)
36
+ });
37
+ }
38
+ static refresh(d) {
39
+ return new Refreshing(d);
40
+ }
41
+ }
42
+ /**
43
+ * @tsplus fluent QueryResult isSuccess
44
+ */
45
+ export function isSuccess(qr) {
46
+ return hasValue_1(qr) && Either.isRight(qr.current);
47
+ }
48
+ /**
49
+ * @tsplus fluent QueryResult hasValue
50
+ */
51
+ function hasValue_1(qr) {
52
+ return isDone_1(qr) || isRefreshing_1(qr);
53
+ }
54
+ /**
55
+ * @tsplus fluent QueryResult isRefreshing
56
+ */
57
+ function isRefreshing_1(qr) {
58
+ return qr._tag === "Refreshing";
59
+ }
60
+ /**
61
+ * @tsplus fluent QueryResult isDone
62
+ */
63
+ function isDone_1(qr) {
64
+ return qr._tag === "Done";
65
+ }
66
+ /**
67
+ * @tsplus fluent QueryResult isInitializing
68
+ */
69
+ export function isInitializing(qr) {
70
+ return qr._tag === "Initial" || qr._tag === "Loading";
71
+ }
72
+ /**
73
+ * @tsplus fluent QueryResult isFailed
74
+ */
75
+ export function isFailed(qr) {
76
+ return hasValue_1(qr) && Either.isLeft(qr.current);
77
+ }
78
+ export const { fail, succeed } = Done;
79
+ /**
80
+ * @tsplus getter effect/io/Effect asQueryResult
81
+ */
82
+ export function queryResult(self) {
83
+ return tsplus_module_3.match(self, { onFailure: fail, onSuccess: succeed });
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlSZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2NsaWVudC9RdWVyeVJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7YUFpRWdCLFFBQVE7YUFTUixZQUFZO2FBU1osTUFBTTtBQW5GdEIsK0JBQStCO0FBRS9CLGlEQUFpRDtBQUNqRCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sT0FBUSxTQUFRLGdCQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFLO0NBQUc7QUFFL0QsTUFBTSxPQUFPLE9BQVEsU0FBUSxnQkFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBSztDQUFHO0FBRS9ELE1BQU0sT0FBTyxVQUFpQixTQUFRLGdCQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUdqRTtJQUNBLE1BQU0sQ0FBQyxPQUFPLENBQWUsQ0FBSTtRQUMvQixPQUFPLElBQUksVUFBVSxDQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFlLENBQUksRUFBRSxRQUFZO1FBQzFDLE9BQU8sSUFBSSxVQUFVLENBQU87WUFDMUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxzQkFBYSxDQUFDLENBQUMsQ0FBQyxxQkFBWSxRQUFRLENBQUM7U0FDekUsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxRQUFRLENBQU8sQ0FBYTtRQUNqQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxJQUFXLFNBQVEsZ0JBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBR3JEO0lBQ0EsTUFBTSxDQUFDLE9BQU8sQ0FBMkIsQ0FBSTtRQUMzQyxPQUFPLElBQUksSUFBSSxDQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUEyQixDQUFJLEVBQUUsUUFBWTtRQUN0RCxPQUFPLElBQUksSUFBSSxDQUFPO1lBQ3BCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN2QixRQUFRLEVBQUUsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsc0JBQWEsQ0FBQyxDQUFDLENBQUMscUJBQVksUUFBUSxDQUFDO1NBQ3pFLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFPLENBQWE7UUFDaEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxQixDQUFDO0NBQ0Y7QUFTRDs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQ3ZCLEVBQXFCO0lBRXJCLE9BQU8sV0FBQSxFQUFFLENBQVcsSUFBSSxBQXhEZCxNQUFNLFNBd0RRLEVBQUUsQ0FBQyxPQUFPLENBQVUsQ0FBQTtBQUM5QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxvQkFDRSxFQUFxQjtJQUVyQixPQUFPLFNBQUEsRUFBRSxDQUFTLElBQUksZUFBQSxFQUFFLENBQWUsQ0FBQTtBQUN6QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCx3QkFDRSxFQUFxQjtJQUVyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFBO0FBQ2pDLENBQUM7QUFFRDs7R0FFRztBQUNILGtCQUNFLEVBQXFCO0lBRXJCLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUE7QUFDM0IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsRUFBcUI7SUFFckIsT0FBTyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQTtBQUN2RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixFQUFxQjtJQUVyQixPQUFPLFdBQUEsRUFBRSxDQUFXLElBQUksQUFyR2QsTUFBTSxRQXFHUSxFQUFFLENBQUMsT0FBTyxDQUFTLENBQUE7QUFDN0MsQ0FBQztBQUtELE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQzs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQXFCO0lBRXJCLE9BQU8sc0JBQUEsSUFBSSxFQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUM1RCxDQUFDIn0=
@@ -0,0 +1,44 @@
1
+ import { HttpClient } from "effect-app/Request";
2
+ import { Schema } from "effect-app/schema";
3
+ import { Effect } from "effect/Effect";
4
+ import { REST } from "effect-app/schema";
5
+ import type { ApiConfig } from "./config.js";
6
+ import type { SupportedErrors } from "./errors.js";
7
+ import type { FetchError, FetchResponse } from "./fetch.js";
8
+ import { ResponseError } from "./fetch.js";
9
+ export * from "./config.js";
10
+ type Requests = Record<string, any>;
11
+ export type Client<M extends Requests> = RequestHandlers<ApiConfig | HttpClient.Default, SupportedErrors | FetchError | ResponseError, M> & RequestHandlersE<ApiConfig | HttpClient.Default, SupportedErrors | FetchError | ResponseError, M>;
12
+ export declare function clientFor<M extends Requests>(models: M): Client<Omit<M, "meta">>;
13
+ export type ExtractResponse<T> = T extends Schema<any, any, any> ? Schema.To<T> : T extends unknown ? void : never;
14
+ export type ExtractEResponse<T> = T extends Schema<any, any, any> ? Schema.From<T> : T extends unknown ? void : never;
15
+ type HasEmptyTo<T extends Schema<any, any, any>> = T extends {
16
+ struct: Schema<any, any, any>;
17
+ } ? Schema.To<T["struct"]> extends Record<any, never> ? true : Schema.To<T> extends Record<any, never> ? true : false : false;
18
+ type RequestHandlers<R, E, M extends Requests> = {
19
+ [K in keyof M & string as Uncapitalize<K>]: HasEmptyTo<REST.GetRequest<M[K]>> extends true ? {
20
+ handler: Effect<FetchResponse<ExtractResponse<REST.GetResponse<M[K]>>>, E, R>;
21
+ Request: REST.GetRequest<M[K]>;
22
+ Reponse: ExtractResponse<REST.GetResponse<M[K]>>;
23
+ mapPath: string;
24
+ } : {
25
+ handler: (req: InstanceType<REST.GetRequest<M[K]>>) => Effect<FetchResponse<ExtractResponse<REST.GetResponse<M[K]>>>, E, R>;
26
+ Request: REST.GetRequest<M[K]>;
27
+ Reponse: ExtractResponse<REST.GetResponse<M[K]>>;
28
+ mapPath: (req: InstanceType<REST.GetRequest<M[K]>>) => string;
29
+ };
30
+ };
31
+ type RequestHandlersE<R, E, M extends Requests> = {
32
+ [K in keyof M & string as `${Uncapitalize<K>}E`]: HasEmptyTo<REST.GetRequest<M[K]>> extends true ? {
33
+ handler: Effect<FetchResponse<ExtractEResponse<REST.GetResponse<M[K]>>>, E, R>;
34
+ Request: REST.GetRequest<M[K]>;
35
+ Reponse: ExtractResponse<REST.GetResponse<M[K]>>;
36
+ mapPath: string;
37
+ } : {
38
+ handler: (req: InstanceType<REST.GetRequest<M[K]>>) => Effect<FetchResponse<ExtractEResponse<REST.GetResponse<M[K]>>>, E, R>;
39
+ Request: REST.GetRequest<M[K]>;
40
+ Reponse: ExtractResponse<REST.GetResponse<M[K]>>;
41
+ mapPath: (req: InstanceType<REST.GetRequest<M[K]>>) => string;
42
+ };
43
+ };
44
+ //# sourceMappingURL=clientFor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../_src/client/clientFor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
2
+ if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
3
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
4
+ };
5
+ import * as tsplus_module_1 from "@effect/schema/Schema";
6
+ import * as tsplus_module_2 from "effect/Effect";
7
+ import * as tsplus_module_3 from "@effect-app/core/Function";
8
+ import * as tsplus_module_4 from "@effect/schema/Parser";
9
+ import * as tsplus_module_5 from "@effect-app/core/utils";
10
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
11
+ /* eslint-disable @typescript-eslint/no-explicit-any */
12
+ import { REST } from "effect-app/schema";
13
+ import * as utils from "effect-app/utils";
14
+ import { Path } from "path-parser";
15
+ import { fetchApi, fetchApi3S, fetchApi3SE, makePathWithBody, makePathWithQuery, mapResponseM, ResponseError } from "./fetch.js";
16
+ export * from "./config.js";
17
+ const cache = new Map();
18
+ export function clientFor(models) {
19
+ const found = cache.get(models);
20
+ if (found) {
21
+ return found;
22
+ }
23
+ const m = clientFor_(models);
24
+ cache.set(models, m);
25
+ return m;
26
+ }
27
+ function clientFor_(models) {
28
+ return (tsplus_module_5.RecordKeys(tsplus_module_5.object$(models)).filter((x) => x !== "default" && x !== "meta")
29
+ .reduce((prev, cur) => {
30
+ var _a;
31
+ const h = models[cur];
32
+ const Request_ = REST.extractRequest(h);
33
+ const Response = REST.extractResponse(h);
34
+ // @ts-expect-error doc
35
+ const actionName = utils.uncapitalize(cur);
36
+ const m = models.meta;
37
+ if (!m)
38
+ throw new Error("No meta defined in Resource!");
39
+ const requestName = `${m.moduleName}.${cur}`
40
+ .replaceAll(".js", "");
41
+ const Request = (_a = class extends Request_ {
42
+ },
43
+ __setFunctionName(_a, "Request"),
44
+ _a.path = "/" + requestName + (Request_.path === "/" ? "" : Request_.path),
45
+ _a.method = Request_.method === "AUTO"
46
+ ? REST.determineMethod(cur, Request_)
47
+ : Request_.method,
48
+ _a);
49
+ if (Request_.method === "AUTO") {
50
+ Object.assign(Request, {
51
+ [Request.method === "GET" || Request.method === "DELETE" ? "Query" : "Body"]: Request_.Auto
52
+ });
53
+ }
54
+ const b = Object.assign({}, h, { Request, Response });
55
+ const meta = {
56
+ Request,
57
+ Response,
58
+ mapPath: Request.path
59
+ };
60
+ const res = Response;
61
+ const parseResponse = tsplus_module_3.flow(tsplus_module_1.decodeUnknown(res), (_) => tsplus_module_2.mapError(_, (err) => new ResponseError(err)));
62
+ const parseResponseE = tsplus_module_3.flow(parseResponse, (x) => x.andThen(tsplus_module_1.encode(res)));
63
+ const path = new Path(Request.path);
64
+ // TODO: look into ast, look for propertySignatures, etc.
65
+ // TODO: and fix type wise
66
+ // if we don't need fields, then also dont require an argument.
67
+ const fields = [Request.Body, Request.Query, Request.Path]
68
+ .filter((x) => x)
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
70
+ .flatMap((x) => x.ast.propertySignatures);
71
+ // @ts-expect-error doc
72
+ prev[actionName] = Request.method === "GET"
73
+ ? fields.length === 0
74
+ ? {
75
+ handler: tsplus_module_2.withSpan(tsplus_module_2.flatMap(fetchApi(Request.method, Request.path), mapResponseM(parseResponse)), "client.request", {
76
+ attributes: { "request.name": requestName }
77
+ }),
78
+ ...meta
79
+ }
80
+ : {
81
+ handler: (req) => tsplus_module_2.withSpan(tsplus_module_2.flatMap(fetchApi(Request.method, makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req))), mapResponseM(parseResponse)), "client.request", {
82
+ attributes: { "request.name": requestName }
83
+ }),
84
+ ...meta,
85
+ mapPath: (req) => req ? makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req)) : Request.path
86
+ }
87
+ : fields.length === 0
88
+ ? {
89
+ handler: tsplus_module_2.withSpan(fetchApi3S(b)({}), "client.request", {
90
+ attributes: { "request.name": requestName }
91
+ }),
92
+ ...meta
93
+ }
94
+ : {
95
+ handler: (req) => tsplus_module_2.withSpan(fetchApi3S(b)(req), "client.request", {
96
+ attributes: { "request.name": requestName }
97
+ }),
98
+ ...meta,
99
+ mapPath: (req) => req
100
+ ? Request.method === "DELETE"
101
+ ? makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req))
102
+ : makePathWithBody(path, tsplus_module_4.encodeSync(Request)(req))
103
+ : Request.path
104
+ };
105
+ // generate handler
106
+ // @ts-expect-error doc
107
+ prev[`${actionName}E`] = Request.method === "GET"
108
+ ? fields.length === 0
109
+ ? {
110
+ handler: tsplus_module_2.withSpan(tsplus_module_2.flatMap(fetchApi(Request.method, Request.path), mapResponseM(parseResponseE)), "client.request", {
111
+ attributes: { "request.name": requestName }
112
+ }),
113
+ ...meta
114
+ }
115
+ : {
116
+ handler: (req) => tsplus_module_2.withSpan(tsplus_module_2.flatMap(fetchApi(Request.method, makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req))), mapResponseM(parseResponseE)), "client.request", {
117
+ attributes: { "request.name": requestName }
118
+ }),
119
+ ...meta,
120
+ mapPath: (req) => req ? makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req)) : Request.path
121
+ }
122
+ : fields.length === 0
123
+ ? {
124
+ handler: tsplus_module_2.withSpan(fetchApi3SE(b)({}), "client.request", {
125
+ attributes: { "request.name": requestName }
126
+ }),
127
+ ...meta
128
+ }
129
+ : {
130
+ handler: (req) => tsplus_module_2.withSpan(fetchApi3SE(b)(req), "client.request", {
131
+ attributes: { "request.name": requestName }
132
+ }),
133
+ ...meta,
134
+ mapPath: (req) => req
135
+ ? Request.method === "DELETE"
136
+ ? makePathWithQuery(path, tsplus_module_4.encodeSync(Request)(req))
137
+ : makePathWithBody(path, tsplus_module_4.encodeSync(Request)(req))
138
+ : Request.path
139
+ };
140
+ // generate handler
141
+ return prev;
142
+ }, {}));
143
+ }
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9jbGllbnQvY2xpZW50Rm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDBEQUEwRDtBQUMxRCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUlsQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osYUFBYSxFQUNkLE1BQU0sWUFBWSxDQUFBO0FBRW5CLGNBQWMsYUFBYSxDQUFBO0FBVTNCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFBO0FBY3pDLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE1BQVM7SUFFVCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9CLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEIsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQXFCLE1BQVM7SUFDL0MsT0FBTyxDQUFDLG1EQUFBLE1BQU0sR0FJWCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7O1FBQ3BC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
@@ -0,0 +1,14 @@
1
+ import { Option } from "@effect-app/core/Option";
2
+ import { HashMap } from "effect/HashMap";
3
+ import { Effect } from "effect/Effect";
4
+ export interface ApiConfig {
5
+ apiUrl: string;
6
+ headers: Option<HashMap<string, string>>;
7
+ }
8
+ export declare const layer: (config: ApiConfig) => import("effect/Layer").Layer<ApiConfig, never, never>;
9
+ export declare const ApiConfig: {
10
+ Tag: import("effect/Context").Tag<ApiConfig, ApiConfig>;
11
+ layer: (config: ApiConfig) => import("effect/Layer").Layer<ApiConfig, never, never>;
12
+ };
13
+ export declare const getConfig: <R, E, A>(self: (cfg: ApiConfig) => Effect<A, E, R>) => import("effect/Effect").Effect<A, E, ApiConfig | R>;
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../_src/client/config.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACzC;AAGD,eAAO,MAAM,KAAK,WAAY,SAAS,0DAA0B,CAAA;AACjE,eAAO,MAAM,SAAS;;oBADQ,SAAS;CAItC,CAAA;AAED,eAAO,MAAM,SAAS,wBAAyB,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,wDAAsB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as tsplus_module_1 from "effect/Context";
2
+ import * as tsplus_module_2 from "@effect-app/core/Tag";
3
+ import * as tsplus_module_3 from "effect/Effect";
4
+ const tag = tsplus_module_1.GenericTag("@services/tag");
5
+ export const layer = (config) => tsplus_module_2.makeLayer(tag, config);
6
+ export const ApiConfig = {
7
+ Tag: tag,
8
+ layer
9
+ };
10
+ export const getConfig = (self) => tsplus_module_3.flatMap(tag, self);
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9jbGllbnQvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLE1BQU0sR0FBRyxHQUFHLGdCQUFBLFVBQVUsQ0FBWSxlQUFlLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUUsQ0FBQywwQkFBQSxHQUFHLEVBQVcsTUFBTSxDQUFDLENBQUE7QUFDakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSztDQUNOLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBVSxJQUF5QyxFQUFFLEVBQUUsQ0FBQyx3QkFBQSxHQUFHLEVBQVMsSUFBSSxDQUFDLENBQUEifQ==