@effect/platform 0.48.25 → 0.48.26

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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/PlatformConfigProvider.js",
3
+ "module": "../dist/esm/PlatformConfigProvider.js",
4
+ "types": "../dist/dts/PlatformConfigProvider.d.ts",
5
+ "sideEffects": []
6
+ }
package/dist/cjs/Error.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TypeIdError = exports.SystemError = exports.RefailError = exports.PlatformErrorTypeId = exports.BadArgument = void 0;
6
+ exports.isPlatformError = exports.TypeIdError = exports.SystemError = exports.RefailError = exports.PlatformErrorTypeId = exports.BadArgument = void 0;
7
7
  var Data = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Data"));
8
8
  var Predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Predicate"));
9
9
  var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/error.js"));
@@ -37,10 +37,16 @@ function _interopRequireWildcard(e, r) {
37
37
  * @category type id
38
38
  */
39
39
  const PlatformErrorTypeId = exports.PlatformErrorTypeId = internal.PlatformErrorTypeId;
40
+ /**
41
+ * @since 1.0.0
42
+ * @category refinements
43
+ */
44
+ const isPlatformError = u => Predicate.hasProperty(u, PlatformErrorTypeId);
40
45
  /**
41
46
  * @since 1.0.0
42
47
  * @category error
43
48
  */
49
+ exports.isPlatformError = isPlatformError;
44
50
  const TypeIdError = (typeId, tag) => {
45
51
  class Base extends Data.Error {
46
52
  _tag = tag;
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","names":["Data","_interopRequireWildcard","require","Predicate","internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlatformErrorTypeId","exports","TypeIdError","typeId","tag","Base","Error","_tag","prototype","name","RefailError","constructor","props","hasProperty","error","stack","message","toJSON","JSON","stringify","String","BadArgument","badArgument","SystemError","systemError"],"sources":["../../src/Error.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Error.js","names":["Data","_interopRequireWildcard","require","Predicate","internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlatformErrorTypeId","exports","isPlatformError","hasProperty","TypeIdError","typeId","tag","Base","Error","_tag","prototype","name","RefailError","constructor","props","error","stack","message","toJSON","JSON","stringify","String","BadArgument","badArgument","SystemError","systemError"],"sources":["../../src/Error.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.layerFileTreeAdd = exports.layerFileTree = exports.fromFileTree = void 0;
7
+ var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
8
+ var ConfigError = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ConfigError"));
9
+ var ConfigProvider = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ConfigProvider"));
10
+ var PathPatch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ConfigProviderPathPatch"));
11
+ var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
12
+ var DefaultServices = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/DefaultServices"));
13
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
14
+ var Either = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Either"));
15
+ var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashSet"));
16
+ var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
17
+ var ReadonlyArray = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ReadonlyArray"));
18
+ var _Error = /*#__PURE__*/require("./Error.js");
19
+ var FileSystem = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./FileSystem.js"));
20
+ var Path = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Path.js"));
21
+ function _getRequireWildcardCache(e) {
22
+ if ("function" != typeof WeakMap) return null;
23
+ var r = new WeakMap(),
24
+ t = new WeakMap();
25
+ return (_getRequireWildcardCache = function (e) {
26
+ return e ? t : r;
27
+ })(e);
28
+ }
29
+ function _interopRequireWildcard(e, r) {
30
+ if (!r && e && e.__esModule) return e;
31
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
32
+ default: e
33
+ };
34
+ var t = _getRequireWildcardCache(r);
35
+ if (t && t.has(e)) return t.get(e);
36
+ var n = {
37
+ __proto__: null
38
+ },
39
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
41
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
42
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
43
+ }
44
+ return n.default = e, t && t.set(e, n), n;
45
+ }
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+
50
+ /**
51
+ * @since 1.0.0
52
+ * @category constructors
53
+ */
54
+ const fromFileTree = options => Effect.Do.pipe(Effect.bind("path", () => Path.Path), Effect.bind("fs", () => FileSystem.FileSystem), Effect.map(({
55
+ fs,
56
+ path
57
+ }) => {
58
+ const rootDirectory = options?.rootDirectory ?? "/";
59
+ const parseConfig = primitive => value => Either.map(primitive.parse(value.trim()), ReadonlyArray.of);
60
+ const readConfig = (filePath, primitive) => Effect.flatMap(fs.readFileString(filePath), parseConfig(primitive));
61
+ const resolveEnumerableDirs = segments => segments.length === 0 ? [] : [path.join(...segments)];
62
+ const resolveFilePath = pathSegments => path.join(rootDirectory, ...pathSegments);
63
+ const sourceError = (pathSegments, error) => ConfigError.SourceUnavailable([...pathSegments], error.message, Cause.fail(error));
64
+ const pathNotFoundError = pathSegments => ConfigError.MissingData([...pathSegments], `Path ${resolveFilePath(pathSegments)} not found`);
65
+ const handlePlatformError = pathSegments => error => error._tag === "SystemError" && error.reason === "NotFound" ? Effect.fail(pathNotFoundError(pathSegments)) : Effect.fail(sourceError(pathSegments, error));
66
+ return ConfigProvider.fromFlat(ConfigProvider.makeFlat({
67
+ load: (pathSegments, config) => Effect.catchIf(readConfig(resolveFilePath(pathSegments), config), _Error.isPlatformError, handlePlatformError(pathSegments)),
68
+ enumerateChildren: pathSegments => Effect.forEach(resolveEnumerableDirs(pathSegments), dir => fs.readDirectory(dir)).pipe(Effect.map(files => HashSet.fromIterable(files.flat())), Effect.catchIf(_Error.isPlatformError, handlePlatformError(pathSegments))),
69
+ patch: PathPatch.empty
70
+ }));
71
+ }));
72
+ /**
73
+ * Add the file tree ConfigProvider to the environment, falling back to the default ConfigProvider.
74
+ *
75
+ * @since 1.0.0
76
+ * @category layers
77
+ */
78
+ exports.fromFileTree = fromFileTree;
79
+ const layerFileTreeAdd = options => fromFileTree(options).pipe(Effect.map(provider => Layer.fiberRefLocallyScopedWith(DefaultServices.currentServices, services => {
80
+ const current = Context.get(services, ConfigProvider.ConfigProvider);
81
+ return Context.add(services, ConfigProvider.ConfigProvider, ConfigProvider.orElse(provider, () => current));
82
+ })), Layer.unwrapEffect);
83
+ /**
84
+ * Add the file tree ConfigProvider to the environment, replacing the default ConfigProvider.
85
+ *
86
+ * @since 1.0.0
87
+ * @category layers
88
+ */
89
+ exports.layerFileTreeAdd = layerFileTreeAdd;
90
+ const layerFileTree = options => fromFileTree(options).pipe(Effect.map(Layer.setConfigProvider), Layer.unwrapEffect);
91
+ exports.layerFileTree = layerFileTree;
92
+ //# sourceMappingURL=PlatformConfigProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformConfigProvider.js","names":["Cause","_interopRequireWildcard","require","ConfigError","ConfigProvider","PathPatch","Context","DefaultServices","Effect","Either","HashSet","Layer","ReadonlyArray","_Error","FileSystem","Path","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fromFileTree","options","Do","pipe","bind","map","fs","path","rootDirectory","parseConfig","primitive","value","parse","trim","of","readConfig","filePath","flatMap","readFileString","resolveEnumerableDirs","segments","length","join","resolveFilePath","pathSegments","sourceError","error","SourceUnavailable","message","fail","pathNotFoundError","MissingData","handlePlatformError","_tag","reason","fromFlat","makeFlat","load","config","catchIf","isPlatformError","enumerateChildren","forEach","dir","readDirectory","files","fromIterable","flat","patch","empty","exports","layerFileTreeAdd","provider","fiberRefLocallyScopedWith","currentServices","services","current","add","orElse","unwrapEffect","layerFileTree","setConfigProvider"],"sources":["../../src/PlatformConfigProvider.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WorkerRunner = exports.WorkerError = exports.Worker = exports.Transferable = exports.Terminal = exports.Template = exports.Socket = exports.Runtime = exports.PlatformLogger = exports.Path = exports.KeyValueStore = exports.HttpServer = exports.HttpClient = exports.FileSystem = exports.Error = exports.Effectify = exports.CommandExecutor = exports.Command = void 0;
6
+ exports.WorkerRunner = exports.WorkerError = exports.Worker = exports.Transferable = exports.Terminal = exports.Template = exports.Socket = exports.Runtime = exports.PlatformLogger = exports.PlatformConfigProvider = exports.Path = exports.KeyValueStore = exports.HttpServer = exports.HttpClient = exports.FileSystem = exports.Error = exports.Effectify = exports.CommandExecutor = exports.Command = void 0;
7
7
  var _Command = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Command.js"));
8
8
  exports.Command = _Command;
9
9
  var _CommandExecutor = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./CommandExecutor.js"));
@@ -22,6 +22,8 @@ var _KeyValueStore = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require(
22
22
  exports.KeyValueStore = _KeyValueStore;
23
23
  var _Path = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Path.js"));
24
24
  exports.Path = _Path;
25
+ var _PlatformConfigProvider = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./PlatformConfigProvider.js"));
26
+ exports.PlatformConfigProvider = _PlatformConfigProvider;
25
27
  var _PlatformLogger = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./PlatformLogger.js"));
26
28
  exports.PlatformLogger = _PlatformLogger;
27
29
  var _Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Runtime.js"));
@@ -13,6 +13,11 @@ export declare const PlatformErrorTypeId: unique symbol;
13
13
  * @category type id
14
14
  */
15
15
  export type PlatformErrorTypeId = typeof PlatformErrorTypeId;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category refinements
19
+ */
20
+ export declare const isPlatformError: (u: unknown) => u is PlatformError;
16
21
  /**
17
22
  * @since 1.0.0
18
23
  * @category error
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAGzD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,WAAW,kEACd,MAAM,OACT,GAAG;mBAMW,GAAG;eASvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,kEACd,MAAM,OACT,GAAG;oBAE6B,OAAO;;mBAIzB,GAAG;oBAAkB,OAAO;eAwBhD,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,UAAiB,IAAI;QACnB,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QAC1G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB;IAED;;OAEG;IACH,KAAY,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAA;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA;AAExH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,SAAS,GACT,YAAY,GACZ,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAGzD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,eAAe,MAAO,OAAO,uBAAsE,CAAA;AAEhH;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,WAAW,kEACd,MAAM,OACT,GAAG;mBAMW,GAAG;eASvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,kEACd,MAAM,OACT,GAAG;oBAE6B,OAAO;;mBAIzB,GAAG;oBAAkB,OAAO;eAwBhD,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,UAAiB,IAAI;QACnB,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QAC1G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB;IAED;;OAEG;IACH,KAAY,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAA;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA;AAExH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,SAAS,GACT,YAAY,GACZ,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA"}
@@ -0,0 +1,31 @@
1
+ import * as ConfigProvider from "effect/ConfigProvider";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as FileSystem from "./FileSystem.js";
5
+ import * as Path from "./Path.js";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category constructors
9
+ */
10
+ export declare const fromFileTree: (options?: {
11
+ readonly rootDirectory?: string;
12
+ }) => Effect.Effect<ConfigProvider.ConfigProvider, never, Path.Path | FileSystem.FileSystem>;
13
+ /**
14
+ * Add the file tree ConfigProvider to the environment, falling back to the default ConfigProvider.
15
+ *
16
+ * @since 1.0.0
17
+ * @category layers
18
+ */
19
+ export declare const layerFileTreeAdd: (options?: {
20
+ readonly rootDirectory?: string;
21
+ }) => Layer.Layer<never, never, Path.Path | FileSystem.FileSystem>;
22
+ /**
23
+ * Add the file tree ConfigProvider to the environment, replacing the default ConfigProvider.
24
+ *
25
+ * @since 1.0.0
26
+ * @category layers
27
+ */
28
+ export declare const layerFileTree: (options?: {
29
+ readonly rootDirectory?: string;
30
+ }) => Layer.Layer<never, never, Path.Path | FileSystem.FileSystem>;
31
+ //# sourceMappingURL=PlatformConfigProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformConfigProvider.d.ts","sourceRoot":"","sources":["../../src/PlatformConfigProvider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAIvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;GAGG;AACH,eAAO,MAAM,YAAY,aAAc;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,aAAa,CAAC,6BAA6B,EAAE,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAsDtF,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aAAc;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAS5D,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAc;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAI5D,CAAA"}
@@ -34,6 +34,10 @@ export * as KeyValueStore from "./KeyValueStore.js";
34
34
  * @since 1.0.0
35
35
  */
36
36
  export * as Path from "./Path.js";
37
+ /**
38
+ * @since 1.0.0
39
+ */
40
+ export * as PlatformConfigProvider from "./PlatformConfigProvider.js";
37
41
  /**
38
42
  * @since 1.0.0
39
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AAErE;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA"}
package/dist/esm/Error.js CHANGED
@@ -6,6 +6,11 @@ import * as internal from "./internal/error.js";
6
6
  * @category type id
7
7
  */
8
8
  export const PlatformErrorTypeId = internal.PlatformErrorTypeId;
9
+ /**
10
+ * @since 1.0.0
11
+ * @category refinements
12
+ */
13
+ export const isPlatformError = u => Predicate.hasProperty(u, PlatformErrorTypeId);
9
14
  /**
10
15
  * @since 1.0.0
11
16
  * @category error
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","names":["Data","Predicate","internal","PlatformErrorTypeId","TypeIdError","typeId","tag","Base","Error","_tag","prototype","name","RefailError","constructor","props","hasProperty","error","stack","message","toJSON","JSON","stringify","String","BadArgument","badArgument","SystemError","systemError"],"sources":["../../src/Error.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAE7C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAE/C;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAkBD,QAAQ,CAACC,mBAAmB;AAc9E;;;;AAIA,OAAO,MAAMC,WAAW,GAAGA,CACzBC,MAAc,EACdC,GAAQ,KAOQ;EAEhB,MAAMC,IAAK,SAAQP,IAAI,CAACQ,KAAS;IACtBC,IAAI,GAAGH,GAAG;;EAErB;EAAEC,IAAI,CAACG,SAAiB,CAACL,MAAM,CAAC,GAAGA,MAAM;EACvCE,IAAI,CAACG,SAAiB,CAACC,IAAI,GAAGL,GAAG;EACnC,OAAOC,IAAW;AACpB,CAAC;AAED;;;;AAIA,OAAO,MAAMK,WAAW,GAAGA,CACzBP,MAAc,EACdC,GAAQ,KAOQ;EAEhB,MAAMC,IAAK,SAAQP,IAAI,CAACQ,KAEtB;IACSC,IAAI,GAAGH,GAAG;IACnBO,YAAYC,KAAU;MACpB,KAAK,CAACA,KAAK,CAAC;MACZ,IAAIb,SAAS,CAACc,WAAW,CAAC,IAAI,CAACC,KAAK,EAAE,OAAO,CAAC,EAAE;QAC9C;QAAE,IAAY,CAACC,KAAK,GAAG,IAAI,CAACD,KAAK,CAACC,KAAK;MACzC;IACF;IACA,IAAIC,OAAOA,CAAA;MACT,OAAOjB,SAAS,CAACc,WAAW,CAAC,IAAI,CAACC,KAAK,EAAE,SAAS,CAAC,GAC/C,IAAI,CAACA,KAAK,CAACE,OAAiB,GAC5BjB,SAAS,CAACc,WAAW,CAAC,IAAI,CAACC,KAAK,EAAE,QAAQ,CAAC,IAAI,OAAO,IAAI,CAACA,KAAK,CAACG,MAAM,KAAK,UAAU,GACtFC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACL,KAAK,CAACG,MAAM,EAAE,CAAC,GACnCG,MAAM,CAAC,IAAI,CAACN,KAAK,CAAC;IACxB;;EAEF;EAAET,IAAI,CAACG,SAAiB,CAACL,MAAM,CAAC,GAAGA,MAAM;EACvCE,IAAI,CAACG,SAAiB,CAACC,IAAI,GAAGL,GAAG;EACnC,OAAOC,IAAW;AACpB,CAAC;AAgCD;;;;AAIA,OAAO,MAAMgB,WAAW,GAA4ErB,QAAQ,CAACsB,WAAW;AA8BxH;;;;AAIA,OAAO,MAAMC,WAAW,GAA4EvB,QAAQ,CAACwB,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"Error.js","names":["Data","Predicate","internal","PlatformErrorTypeId","isPlatformError","u","hasProperty","TypeIdError","typeId","tag","Base","Error","_tag","prototype","name","RefailError","constructor","props","error","stack","message","toJSON","JSON","stringify","String","BadArgument","badArgument","SystemError","systemError"],"sources":["../../src/Error.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAE7C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAE/C;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAkBD,QAAQ,CAACC,mBAAmB;AAQ9E;;;;AAIA,OAAO,MAAMC,eAAe,GAAIC,CAAU,IAAyBJ,SAAS,CAACK,WAAW,CAACD,CAAC,EAAEF,mBAAmB,CAAC;AAQhH;;;;AAIA,OAAO,MAAMI,WAAW,GAAGA,CACzBC,MAAc,EACdC,GAAQ,KAOQ;EAEhB,MAAMC,IAAK,SAAQV,IAAI,CAACW,KAAS;IACtBC,IAAI,GAAGH,GAAG;;EAErB;EAAEC,IAAI,CAACG,SAAiB,CAACL,MAAM,CAAC,GAAGA,MAAM;EACvCE,IAAI,CAACG,SAAiB,CAACC,IAAI,GAAGL,GAAG;EACnC,OAAOC,IAAW;AACpB,CAAC;AAED;;;;AAIA,OAAO,MAAMK,WAAW,GAAGA,CACzBP,MAAc,EACdC,GAAQ,KAOQ;EAEhB,MAAMC,IAAK,SAAQV,IAAI,CAACW,KAEtB;IACSC,IAAI,GAAGH,GAAG;IACnBO,YAAYC,KAAU;MACpB,KAAK,CAACA,KAAK,CAAC;MACZ,IAAIhB,SAAS,CAACK,WAAW,CAAC,IAAI,CAACY,KAAK,EAAE,OAAO,CAAC,EAAE;QAC9C;QAAE,IAAY,CAACC,KAAK,GAAG,IAAI,CAACD,KAAK,CAACC,KAAK;MACzC;IACF;IACA,IAAIC,OAAOA,CAAA;MACT,OAAOnB,SAAS,CAACK,WAAW,CAAC,IAAI,CAACY,KAAK,EAAE,SAAS,CAAC,GAC/C,IAAI,CAACA,KAAK,CAACE,OAAiB,GAC5BnB,SAAS,CAACK,WAAW,CAAC,IAAI,CAACY,KAAK,EAAE,QAAQ,CAAC,IAAI,OAAO,IAAI,CAACA,KAAK,CAACG,MAAM,KAAK,UAAU,GACtFC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACL,KAAK,CAACG,MAAM,EAAE,CAAC,GACnCG,MAAM,CAAC,IAAI,CAACN,KAAK,CAAC;IACxB;;EAEF;EAAER,IAAI,CAACG,SAAiB,CAACL,MAAM,CAAC,GAAGA,MAAM;EACvCE,IAAI,CAACG,SAAiB,CAACC,IAAI,GAAGL,GAAG;EACnC,OAAOC,IAAW;AACpB,CAAC;AAgCD;;;;AAIA,OAAO,MAAMe,WAAW,GAA4EvB,QAAQ,CAACwB,WAAW;AA8BxH;;;;AAIA,OAAO,MAAMC,WAAW,GAA4EzB,QAAQ,CAAC0B,WAAW","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Cause from "effect/Cause";
5
+ import * as ConfigError from "effect/ConfigError";
6
+ import * as ConfigProvider from "effect/ConfigProvider";
7
+ import * as PathPatch from "effect/ConfigProviderPathPatch";
8
+ import * as Context from "effect/Context";
9
+ import * as DefaultServices from "effect/DefaultServices";
10
+ import * as Effect from "effect/Effect";
11
+ import * as Either from "effect/Either";
12
+ import * as HashSet from "effect/HashSet";
13
+ import * as Layer from "effect/Layer";
14
+ import * as ReadonlyArray from "effect/ReadonlyArray";
15
+ import { isPlatformError } from "./Error.js";
16
+ import * as FileSystem from "./FileSystem.js";
17
+ import * as Path from "./Path.js";
18
+ /**
19
+ * @since 1.0.0
20
+ * @category constructors
21
+ */
22
+ export const fromFileTree = options => Effect.Do.pipe(Effect.bind("path", () => Path.Path), Effect.bind("fs", () => FileSystem.FileSystem), Effect.map(({
23
+ fs,
24
+ path
25
+ }) => {
26
+ const rootDirectory = options?.rootDirectory ?? "/";
27
+ const parseConfig = primitive => value => Either.map(primitive.parse(value.trim()), ReadonlyArray.of);
28
+ const readConfig = (filePath, primitive) => Effect.flatMap(fs.readFileString(filePath), parseConfig(primitive));
29
+ const resolveEnumerableDirs = segments => segments.length === 0 ? [] : [path.join(...segments)];
30
+ const resolveFilePath = pathSegments => path.join(rootDirectory, ...pathSegments);
31
+ const sourceError = (pathSegments, error) => ConfigError.SourceUnavailable([...pathSegments], error.message, Cause.fail(error));
32
+ const pathNotFoundError = pathSegments => ConfigError.MissingData([...pathSegments], `Path ${resolveFilePath(pathSegments)} not found`);
33
+ const handlePlatformError = pathSegments => error => error._tag === "SystemError" && error.reason === "NotFound" ? Effect.fail(pathNotFoundError(pathSegments)) : Effect.fail(sourceError(pathSegments, error));
34
+ return ConfigProvider.fromFlat(ConfigProvider.makeFlat({
35
+ load: (pathSegments, config) => Effect.catchIf(readConfig(resolveFilePath(pathSegments), config), isPlatformError, handlePlatformError(pathSegments)),
36
+ enumerateChildren: pathSegments => Effect.forEach(resolveEnumerableDirs(pathSegments), dir => fs.readDirectory(dir)).pipe(Effect.map(files => HashSet.fromIterable(files.flat())), Effect.catchIf(isPlatformError, handlePlatformError(pathSegments))),
37
+ patch: PathPatch.empty
38
+ }));
39
+ }));
40
+ /**
41
+ * Add the file tree ConfigProvider to the environment, falling back to the default ConfigProvider.
42
+ *
43
+ * @since 1.0.0
44
+ * @category layers
45
+ */
46
+ export const layerFileTreeAdd = options => fromFileTree(options).pipe(Effect.map(provider => Layer.fiberRefLocallyScopedWith(DefaultServices.currentServices, services => {
47
+ const current = Context.get(services, ConfigProvider.ConfigProvider);
48
+ return Context.add(services, ConfigProvider.ConfigProvider, ConfigProvider.orElse(provider, () => current));
49
+ })), Layer.unwrapEffect);
50
+ /**
51
+ * Add the file tree ConfigProvider to the environment, replacing the default ConfigProvider.
52
+ *
53
+ * @since 1.0.0
54
+ * @category layers
55
+ */
56
+ export const layerFileTree = options => fromFileTree(options).pipe(Effect.map(Layer.setConfigProvider), Layer.unwrapEffect);
57
+ //# sourceMappingURL=PlatformConfigProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformConfigProvider.js","names":["Cause","ConfigError","ConfigProvider","PathPatch","Context","DefaultServices","Effect","Either","HashSet","Layer","ReadonlyArray","isPlatformError","FileSystem","Path","fromFileTree","options","Do","pipe","bind","map","fs","path","rootDirectory","parseConfig","primitive","value","parse","trim","of","readConfig","filePath","flatMap","readFileString","resolveEnumerableDirs","segments","length","join","resolveFilePath","pathSegments","sourceError","error","SourceUnavailable","message","fail","pathNotFoundError","MissingData","handlePlatformError","_tag","reason","fromFlat","makeFlat","load","config","catchIf","enumerateChildren","forEach","dir","readDirectory","files","fromIterable","flat","patch","empty","layerFileTreeAdd","provider","fiberRefLocallyScopedWith","currentServices","services","current","get","add","orElse","unwrapEffect","layerFileTree","setConfigProvider"],"sources":["../../src/PlatformConfigProvider.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -34,6 +34,10 @@ export * as KeyValueStore from "./KeyValueStore.js";
34
34
  * @since 1.0.0
35
35
  */
36
36
  export * as Path from "./Path.js";
37
+ /**
38
+ * @since 1.0.0
39
+ */
40
+ export * as PlatformConfigProvider from "./PlatformConfigProvider.js";
37
41
  /**
38
42
  * @since 1.0.0
39
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Command","CommandExecutor","Effectify","Error","FileSystem","HttpClient","HttpServer","KeyValueStore","Path","PlatformLogger","Runtime","Socket","Template","Terminal","Transferable","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Command","CommandExecutor","Effectify","Error","FileSystem","HttpClient","HttpServer","KeyValueStore","Path","PlatformConfigProvider","PlatformLogger","Runtime","Socket","Template","Terminal","Transferable","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,sBAAsB,MAAM,6BAA6B;AAErE;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.48.25",
3
+ "version": "0.48.26",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,8 +16,8 @@
16
16
  "path-browserify": "^1.0.1"
17
17
  },
18
18
  "peerDependencies": {
19
- "effect": "^2.4.18",
20
- "@effect/schema": "^0.64.19"
19
+ "@effect/schema": "^0.64.19",
20
+ "effect": "^2.4.18"
21
21
  },
22
22
  "main": "./dist/cjs/index.js",
23
23
  "module": "./dist/esm/index.js",
@@ -184,6 +184,11 @@
184
184
  "import": "./dist/esm/Path.js",
185
185
  "default": "./dist/cjs/Path.js"
186
186
  },
187
+ "./PlatformConfigProvider": {
188
+ "types": "./dist/dts/PlatformConfigProvider.d.ts",
189
+ "import": "./dist/esm/PlatformConfigProvider.js",
190
+ "default": "./dist/cjs/PlatformConfigProvider.js"
191
+ },
187
192
  "./PlatformLogger": {
188
193
  "types": "./dist/dts/PlatformLogger.d.ts",
189
194
  "import": "./dist/esm/PlatformLogger.js",
@@ -325,6 +330,9 @@
325
330
  "Path": [
326
331
  "./dist/dts/Path.d.ts"
327
332
  ],
333
+ "PlatformConfigProvider": [
334
+ "./dist/dts/PlatformConfigProvider.d.ts"
335
+ ],
328
336
  "PlatformLogger": [
329
337
  "./dist/dts/PlatformLogger.d.ts"
330
338
  ],
package/src/Error.ts CHANGED
@@ -19,6 +19,12 @@ export const PlatformErrorTypeId: unique symbol = internal.PlatformErrorTypeId
19
19
  */
20
20
  export type PlatformErrorTypeId = typeof PlatformErrorTypeId
21
21
 
22
+ /**
23
+ * @since 1.0.0
24
+ * @category refinements
25
+ */
26
+ export const isPlatformError = (u: unknown): u is PlatformError => Predicate.hasProperty(u, PlatformErrorTypeId)
27
+
22
28
  /**
23
29
  * @since 1.0.0
24
30
  * @category error
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Cause from "effect/Cause"
5
+ import type * as Config from "effect/Config"
6
+ import * as ConfigError from "effect/ConfigError"
7
+ import * as ConfigProvider from "effect/ConfigProvider"
8
+ import * as PathPatch from "effect/ConfigProviderPathPatch"
9
+ import * as Context from "effect/Context"
10
+ import * as DefaultServices from "effect/DefaultServices"
11
+ import * as Effect from "effect/Effect"
12
+ import * as Either from "effect/Either"
13
+ import * as HashSet from "effect/HashSet"
14
+ import * as Layer from "effect/Layer"
15
+ import * as ReadonlyArray from "effect/ReadonlyArray"
16
+ import { isPlatformError, type PlatformError } from "./Error.js"
17
+ import * as FileSystem from "./FileSystem.js"
18
+ import * as Path from "./Path.js"
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category constructors
23
+ */
24
+ export const fromFileTree = (options?: {
25
+ readonly rootDirectory?: string
26
+ }): Effect.Effect<ConfigProvider.ConfigProvider, never, Path.Path | FileSystem.FileSystem> =>
27
+ Effect.Do.pipe(
28
+ Effect.bind("path", () => Path.Path),
29
+ Effect.bind("fs", () => FileSystem.FileSystem),
30
+ Effect.map(({ fs, path }) => {
31
+ const rootDirectory = options?.rootDirectory ?? "/"
32
+
33
+ const parseConfig = <A>(primitive: Config.Config.Primitive<A>) => (value: string) =>
34
+ Either.map(primitive.parse(value.trim()), ReadonlyArray.of)
35
+
36
+ const readConfig = <A>(filePath: string, primitive: Config.Config.Primitive<A>) =>
37
+ Effect.flatMap(
38
+ fs.readFileString(filePath),
39
+ parseConfig(primitive)
40
+ )
41
+
42
+ const resolveEnumerableDirs = (segments: ReadonlyArray<string>) =>
43
+ segments.length === 0 ? [] : [path.join(...segments)]
44
+
45
+ const resolveFilePath = (pathSegments: ReadonlyArray<string>) => path.join(rootDirectory, ...pathSegments)
46
+
47
+ const sourceError = (pathSegments: ReadonlyArray<string>, error: PlatformError) =>
48
+ ConfigError.SourceUnavailable(
49
+ [...pathSegments],
50
+ error.message,
51
+ Cause.fail(error)
52
+ )
53
+ const pathNotFoundError = (pathSegments: ReadonlyArray<string>) =>
54
+ ConfigError.MissingData(
55
+ [...pathSegments],
56
+ `Path ${resolveFilePath(pathSegments)} not found`
57
+ )
58
+ const handlePlatformError = (pathSegments: ReadonlyArray<string>) => (error: PlatformError) =>
59
+ error._tag === "SystemError" && error.reason === "NotFound"
60
+ ? Effect.fail(pathNotFoundError(pathSegments))
61
+ : Effect.fail(sourceError(pathSegments, error))
62
+
63
+ return ConfigProvider.fromFlat(
64
+ ConfigProvider.makeFlat({
65
+ load: (pathSegments, config) =>
66
+ Effect.catchIf(
67
+ readConfig(resolveFilePath(pathSegments), config),
68
+ isPlatformError,
69
+ handlePlatformError(pathSegments)
70
+ ),
71
+ enumerateChildren: (pathSegments) =>
72
+ Effect.forEach(resolveEnumerableDirs(pathSegments), (dir) => fs.readDirectory(dir)).pipe(
73
+ Effect.map((files) => HashSet.fromIterable(files.flat())),
74
+ Effect.catchIf(isPlatformError, handlePlatformError(pathSegments))
75
+ ),
76
+ patch: PathPatch.empty
77
+ })
78
+ )
79
+ })
80
+ )
81
+
82
+ /**
83
+ * Add the file tree ConfigProvider to the environment, falling back to the default ConfigProvider.
84
+ *
85
+ * @since 1.0.0
86
+ * @category layers
87
+ */
88
+ export const layerFileTreeAdd = (options?: {
89
+ readonly rootDirectory?: string
90
+ }): Layer.Layer<never, never, Path.Path | FileSystem.FileSystem> =>
91
+ fromFileTree(options).pipe(
92
+ Effect.map((provider) =>
93
+ Layer.fiberRefLocallyScopedWith(DefaultServices.currentServices, (services) => {
94
+ const current = Context.get(services, ConfigProvider.ConfigProvider)
95
+ return Context.add(services, ConfigProvider.ConfigProvider, ConfigProvider.orElse(provider, () => current))
96
+ })
97
+ ),
98
+ Layer.unwrapEffect
99
+ )
100
+
101
+ /**
102
+ * Add the file tree ConfigProvider to the environment, replacing the default ConfigProvider.
103
+ *
104
+ * @since 1.0.0
105
+ * @category layers
106
+ */
107
+ export const layerFileTree = (options?: {
108
+ readonly rootDirectory?: string
109
+ }): Layer.Layer<never, never, Path.Path | FileSystem.FileSystem> =>
110
+ fromFileTree(options).pipe(
111
+ Effect.map(Layer.setConfigProvider),
112
+ Layer.unwrapEffect
113
+ )
package/src/index.ts CHANGED
@@ -43,6 +43,11 @@ export * as KeyValueStore from "./KeyValueStore.js"
43
43
  */
44
44
  export * as Path from "./Path.js"
45
45
 
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export * as PlatformConfigProvider from "./PlatformConfigProvider.js"
50
+
46
51
  /**
47
52
  * @since 1.0.0
48
53
  */