@storm-software/config-tools 1.5.8 → 1.5.10

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.5.9](https://github.com/storm-software/storm-ops/compare/config-tools-v1.5.8...config-tools-v1.5.9) (2023-12-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **config-tools:** Handle sync method correctly ([6cbd64e](https://github.com/storm-software/storm-ops/commit/6cbd64e61f88f4a651ae1f05e16811fdf355fc71))
7
+
8
+ ## [1.5.8](https://github.com/storm-software/storm-ops/compare/config-tools-v1.5.7...config-tools-v1.5.8) (2023-12-20)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **config-tools:** Added more accurate search for workspace root ([c418b08](https://github.com/storm-software/storm-ops/commit/c418b08c8bb8917e562bef50cb324d66244d98a3))
14
+
1
15
  ## [1.5.7](https://github.com/storm-software/storm-ops/compare/config-tools-v1.5.6...config-tools-v1.5.7) (2023-12-20)
2
16
 
3
17
 
package/index.cjs CHANGED
@@ -107,7 +107,6 @@ var LogLevelLabel = {
107
107
 
108
108
  // packages/config-tools/src/utilities/get-default-config.ts
109
109
  var import_fs = require("fs");
110
- var import_find_workspace_root = require("nx/src/utils/find-workspace-root.js");
111
110
  var import_path = require("path");
112
111
 
113
112
  // packages/config-tools/src/schema.ts
@@ -163,6 +162,101 @@ var StormConfigSchema = z.object({
163
162
  "Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."
164
163
  );
165
164
 
165
+ // packages/config-tools/src/utilities/find-workspace-root.ts
166
+ var path2 = __toESM(require("path"), 1);
167
+
168
+ // packages/config-tools/src/utilities/find-up.ts
169
+ var import_locate_path = require("locate-path");
170
+ var path = __toESM(require("path"), 1);
171
+ var import_url = require("url");
172
+ var findUpStop = Symbol("findUpStop");
173
+ function toPath(urlOrPath) {
174
+ return urlOrPath instanceof URL ? (0, import_url.fileURLToPath)(urlOrPath) : urlOrPath;
175
+ }
176
+ function findUpMultipleSync(names, options = { limit: 1, type: "file" }) {
177
+ let directory = path.resolve(toPath(options.cwd) ?? "");
178
+ const { root } = path.parse(directory);
179
+ const stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);
180
+ const limit = options.limit ?? Number.POSITIVE_INFINITY;
181
+ if (typeof names === "function") {
182
+ const foundPath = names(options.cwd);
183
+ return (0, import_locate_path.locatePathSync)([foundPath], options);
184
+ }
185
+ const runNameMatcher = (name) => {
186
+ const paths = [name].flat();
187
+ const runMatcher = (locateOptions) => {
188
+ if (typeof name !== "function") {
189
+ return (0, import_locate_path.locatePathSync)(paths, locateOptions);
190
+ }
191
+ const foundPath = name(locateOptions.cwd);
192
+ if (typeof foundPath === "string") {
193
+ return (0, import_locate_path.locatePathSync)([foundPath], locateOptions);
194
+ }
195
+ return foundPath;
196
+ };
197
+ const matches = [];
198
+ while (true) {
199
+ const foundPath = runMatcher({ ...options, cwd: directory });
200
+ if (foundPath) {
201
+ matches.push(path.resolve(directory, foundPath));
202
+ }
203
+ if (directory === stopAt || matches.length >= limit) {
204
+ break;
205
+ }
206
+ directory = path.dirname(directory);
207
+ }
208
+ return matches;
209
+ };
210
+ return (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name)).flat();
211
+ }
212
+ function findUpSync(names, options = { limit: 1, type: "file" }) {
213
+ const matches = findUpMultipleSync(names, options);
214
+ return matches[0];
215
+ }
216
+
217
+ // packages/config-tools/src/utilities/find-workspace-root.ts
218
+ var rootFiles = [
219
+ "lerna.json",
220
+ "nx.json",
221
+ "turbo.json",
222
+ "npm-workspace.json",
223
+ "yarn-workspace.json",
224
+ "pnpm-workspace.json",
225
+ "npm-workspace.yaml",
226
+ "yarn-workspace.yaml",
227
+ "pnpm-workspace.yaml",
228
+ "npm-workspace.yml",
229
+ "yarn-workspace.yml",
230
+ "pnpm-workspace.yml",
231
+ "npm-lock.json",
232
+ "yarn-lock.json",
233
+ "pnpm-lock.json",
234
+ "npm-lock.yaml",
235
+ "yarn-lock.yaml",
236
+ "pnpm-lock.yaml",
237
+ "npm-lock.yml",
238
+ "yarn-lock.yml",
239
+ "pnpm-lock.yml",
240
+ "bun.lockb"
241
+ ];
242
+ function findWorkspaceRoot(pathInsideMonorepo) {
243
+ const result = process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : findUpSync(rootFiles, {
244
+ cwd: pathInsideMonorepo ?? process.cwd(),
245
+ type: "file",
246
+ limit: 1
247
+ });
248
+ if (!result) {
249
+ throw new Error(
250
+ `Cannot find workspace root upwards from known path. Files search list includes:
251
+ ${rootFiles.join(
252
+ "\n"
253
+ )}
254
+ Path: ${path2}`
255
+ );
256
+ }
257
+ return result;
258
+ }
259
+
166
260
  // packages/config-tools/src/utilities/get-default-config.ts
167
261
  var DefaultColorConfig = {
168
262
  primary: "#1fb2a6",
@@ -198,10 +292,7 @@ var getDefaultConfig = (config = {}) => {
198
292
  let repository = "https://github.com/storm-software/storm-stack";
199
293
  let license = DefaultStormConfig.license;
200
294
  let homepage = DefaultStormConfig.homepage;
201
- const workspaceRoot = (0, import_find_workspace_root.findWorkspaceRoot)(process.cwd());
202
- if (typeof workspaceRoot !== "string") {
203
- throw new Error("Could not find workspace root");
204
- }
295
+ const workspaceRoot = findWorkspaceRoot(process.cwd());
205
296
  if ((0, import_fs.existsSync)((0, import_path.join)(workspaceRoot, "package.json"))) {
206
297
  const file = (0, import_fs.readFileSync)((0, import_path.join)(workspaceRoot, "package.json"), {
207
298
  encoding: "utf-8"
package/index.js CHANGED
@@ -57,7 +57,6 @@ var LogLevelLabel = {
57
57
 
58
58
  // packages/config-tools/src/utilities/get-default-config.ts
59
59
  import { existsSync, readFileSync } from "fs";
60
- import { findWorkspaceRoot } from "nx/src/utils/find-workspace-root.js";
61
60
  import { join } from "path";
62
61
 
63
62
  // packages/config-tools/src/schema.ts
@@ -113,6 +112,101 @@ var StormConfigSchema = z.object({
113
112
  "Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."
114
113
  );
115
114
 
115
+ // packages/config-tools/src/utilities/find-workspace-root.ts
116
+ import * as path2 from "path";
117
+
118
+ // packages/config-tools/src/utilities/find-up.ts
119
+ import { locatePath, locatePathSync } from "locate-path";
120
+ import * as path from "path";
121
+ import { fileURLToPath } from "url";
122
+ var findUpStop = Symbol("findUpStop");
123
+ function toPath(urlOrPath) {
124
+ return urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
125
+ }
126
+ function findUpMultipleSync(names, options = { limit: 1, type: "file" }) {
127
+ let directory = path.resolve(toPath(options.cwd) ?? "");
128
+ const { root } = path.parse(directory);
129
+ const stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);
130
+ const limit = options.limit ?? Number.POSITIVE_INFINITY;
131
+ if (typeof names === "function") {
132
+ const foundPath = names(options.cwd);
133
+ return locatePathSync([foundPath], options);
134
+ }
135
+ const runNameMatcher = (name) => {
136
+ const paths = [name].flat();
137
+ const runMatcher = (locateOptions) => {
138
+ if (typeof name !== "function") {
139
+ return locatePathSync(paths, locateOptions);
140
+ }
141
+ const foundPath = name(locateOptions.cwd);
142
+ if (typeof foundPath === "string") {
143
+ return locatePathSync([foundPath], locateOptions);
144
+ }
145
+ return foundPath;
146
+ };
147
+ const matches = [];
148
+ while (true) {
149
+ const foundPath = runMatcher({ ...options, cwd: directory });
150
+ if (foundPath) {
151
+ matches.push(path.resolve(directory, foundPath));
152
+ }
153
+ if (directory === stopAt || matches.length >= limit) {
154
+ break;
155
+ }
156
+ directory = path.dirname(directory);
157
+ }
158
+ return matches;
159
+ };
160
+ return (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name)).flat();
161
+ }
162
+ function findUpSync(names, options = { limit: 1, type: "file" }) {
163
+ const matches = findUpMultipleSync(names, options);
164
+ return matches[0];
165
+ }
166
+
167
+ // packages/config-tools/src/utilities/find-workspace-root.ts
168
+ var rootFiles = [
169
+ "lerna.json",
170
+ "nx.json",
171
+ "turbo.json",
172
+ "npm-workspace.json",
173
+ "yarn-workspace.json",
174
+ "pnpm-workspace.json",
175
+ "npm-workspace.yaml",
176
+ "yarn-workspace.yaml",
177
+ "pnpm-workspace.yaml",
178
+ "npm-workspace.yml",
179
+ "yarn-workspace.yml",
180
+ "pnpm-workspace.yml",
181
+ "npm-lock.json",
182
+ "yarn-lock.json",
183
+ "pnpm-lock.json",
184
+ "npm-lock.yaml",
185
+ "yarn-lock.yaml",
186
+ "pnpm-lock.yaml",
187
+ "npm-lock.yml",
188
+ "yarn-lock.yml",
189
+ "pnpm-lock.yml",
190
+ "bun.lockb"
191
+ ];
192
+ function findWorkspaceRoot(pathInsideMonorepo) {
193
+ const result = process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : findUpSync(rootFiles, {
194
+ cwd: pathInsideMonorepo ?? process.cwd(),
195
+ type: "file",
196
+ limit: 1
197
+ });
198
+ if (!result) {
199
+ throw new Error(
200
+ `Cannot find workspace root upwards from known path. Files search list includes:
201
+ ${rootFiles.join(
202
+ "\n"
203
+ )}
204
+ Path: ${path2}`
205
+ );
206
+ }
207
+ return result;
208
+ }
209
+
116
210
  // packages/config-tools/src/utilities/get-default-config.ts
117
211
  var DefaultColorConfig = {
118
212
  primary: "#1fb2a6",
@@ -149,9 +243,6 @@ var getDefaultConfig = (config = {}) => {
149
243
  let license = DefaultStormConfig.license;
150
244
  let homepage = DefaultStormConfig.homepage;
151
245
  const workspaceRoot = findWorkspaceRoot(process.cwd());
152
- if (typeof workspaceRoot !== "string") {
153
- throw new Error("Could not find workspace root");
154
- }
155
246
  if (existsSync(join(workspaceRoot, "package.json"))) {
156
247
  const file = readFileSync(join(workspaceRoot, "package.json"), {
157
248
  encoding: "utf-8"
package/meta.cjs.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytes":1987,"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/config-file/index.ts":{"bytes":35,"imports":[{"path":"packages/config-tools/src/config-file/get-config-file.ts","kind":"import-statement","original":"./get-config-file"}],"format":"esm"},"packages/config-tools/src/types.ts":{"bytes":1405,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"./schema","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/schema.ts":{"bytes":5736,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/get-default-config.ts":{"bytes":2708,"imports":[{"path":"fs","kind":"import-statement","external":true},{"path":"nx/src/utils/find-workspace-root.js","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"../schema"},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/get-log-level.ts":{"bytes":1409,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/config-tools/src/utilities/index.ts":{"bytes":71,"imports":[{"path":"packages/config-tools/src/utilities/get-default-config.ts","kind":"import-statement","original":"./get-default-config"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"./get-log-level"}],"format":"esm"},"packages/config-tools/src/env/get-env.ts":{"bytes":4137,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"../utilities"}],"format":"esm"},"packages/config-tools/src/create-storm-config.ts":{"bytes":2482,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./env/get-env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/env/set-env.ts":{"bytes":4309,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"../utilities/get-log-level"}],"format":"esm"},"packages/config-tools/src/env/index.ts":{"bytes":54,"imports":[{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./get-env"},{"path":"packages/config-tools/src/env/set-env.ts","kind":"import-statement","original":"./set-env"}],"format":"esm"},"packages/config-tools/src/index.ts":{"bytes":399,"imports":[{"path":"packages/config-tools/src/config-file/index.ts","kind":"import-statement","original":"./config-file"},{"path":"packages/config-tools/src/create-storm-config.ts","kind":"import-statement","original":"./create-storm-config"},{"path":"packages/config-tools/src/env/index.ts","kind":"import-statement","original":"./env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"./utilities"}],"format":"esm"},"packages/config-tools/src/utilities/find-up.ts":{"bytes":4414,"imports":[{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytes":1932,"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"fp-ts/Either","kind":"import-statement","external":true},{"path":"fp-ts/function","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-up.ts","kind":"import-statement","original":"./find-up"}],"format":"esm"}},"outputs":{"dist/packages/config-tools/index.cjs":{"imports":[{"path":"cosmiconfig","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"nx/src/utils/find-workspace-root.js","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"zod","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/config-tools/src/index.ts","inputs":{"packages/config-tools/src/index.ts":{"bytesInOutput":763},"packages/config-tools/src/config-file/get-config-file.ts":{"bytesInOutput":1594},"packages/config-tools/src/config-file/index.ts":{"bytesInOutput":0},"packages/config-tools/src/types.ts":{"bytesInOutput":256},"packages/config-tools/src/utilities/get-default-config.ts":{"bytesInOutput":2252},"packages/config-tools/src/schema.ts":{"bytesInOutput":4454},"packages/config-tools/src/utilities/index.ts":{"bytesInOutput":0},"packages/config-tools/src/utilities/get-log-level.ts":{"bytesInOutput":1029},"packages/config-tools/src/env/get-env.ts":{"bytesInOutput":3060},"packages/config-tools/src/create-storm-config.ts":{"bytesInOutput":916},"packages/config-tools/src/env/index.ts":{"bytesInOutput":0},"packages/config-tools/src/env/set-env.ts":{"bytesInOutput":3528}},"bytes":20130},"dist/packages/config-tools/utilities/find-workspace-root.cjs":{"imports":[{"path":"path","kind":"require-call","external":true},{"path":"fp-ts/Either","kind":"require-call","external":true},{"path":"fp-ts/function","kind":"require-call","external":true},{"path":"locate-path","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"url","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/config-tools/src/utilities/find-workspace-root.ts","inputs":{"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1866},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1993}},"bytes":5529}}}
1
+ {"inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytes":1987,"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/config-file/index.ts":{"bytes":35,"imports":[{"path":"packages/config-tools/src/config-file/get-config-file.ts","kind":"import-statement","original":"./get-config-file"}],"format":"esm"},"packages/config-tools/src/types.ts":{"bytes":1405,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"./schema","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/schema.ts":{"bytes":5736,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-up.ts":{"bytes":4419,"imports":[{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytes":1264,"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-up.ts","kind":"import-statement","original":"./find-up"}],"format":"esm"},"packages/config-tools/src/utilities/get-default-config.ts":{"bytes":2592,"imports":[{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"../schema"},{"path":"../types","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-workspace-root.ts","kind":"import-statement","original":"./find-workspace-root"}],"format":"esm"},"packages/config-tools/src/utilities/get-log-level.ts":{"bytes":1409,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/config-tools/src/utilities/index.ts":{"bytes":71,"imports":[{"path":"packages/config-tools/src/utilities/get-default-config.ts","kind":"import-statement","original":"./get-default-config"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"./get-log-level"}],"format":"esm"},"packages/config-tools/src/env/get-env.ts":{"bytes":4137,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"../utilities"}],"format":"esm"},"packages/config-tools/src/create-storm-config.ts":{"bytes":2482,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./env/get-env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/env/set-env.ts":{"bytes":4309,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"../utilities/get-log-level"}],"format":"esm"},"packages/config-tools/src/env/index.ts":{"bytes":54,"imports":[{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./get-env"},{"path":"packages/config-tools/src/env/set-env.ts","kind":"import-statement","original":"./set-env"}],"format":"esm"},"packages/config-tools/src/index.ts":{"bytes":399,"imports":[{"path":"packages/config-tools/src/config-file/index.ts","kind":"import-statement","original":"./config-file"},{"path":"packages/config-tools/src/create-storm-config.ts","kind":"import-statement","original":"./create-storm-config"},{"path":"packages/config-tools/src/env/index.ts","kind":"import-statement","original":"./env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"./utilities"}],"format":"esm"}},"outputs":{"dist/packages/config-tools/index.cjs":{"imports":[{"path":"cosmiconfig","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"zod","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"locate-path","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"url","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/config-tools/src/index.ts","inputs":{"packages/config-tools/src/index.ts":{"bytesInOutput":763},"packages/config-tools/src/config-file/get-config-file.ts":{"bytesInOutput":1594},"packages/config-tools/src/config-file/index.ts":{"bytesInOutput":0},"packages/config-tools/src/types.ts":{"bytesInOutput":256},"packages/config-tools/src/utilities/get-default-config.ts":{"bytesInOutput":2038},"packages/config-tools/src/schema.ts":{"bytesInOutput":4454},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1043},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1807},"packages/config-tools/src/utilities/index.ts":{"bytesInOutput":0},"packages/config-tools/src/utilities/get-log-level.ts":{"bytesInOutput":1029},"packages/config-tools/src/env/get-env.ts":{"bytesInOutput":3060},"packages/config-tools/src/create-storm-config.ts":{"bytesInOutput":916},"packages/config-tools/src/env/index.ts":{"bytesInOutput":0},"packages/config-tools/src/env/set-env.ts":{"bytesInOutput":3528}},"bytes":22943},"dist/packages/config-tools/utilities/find-workspace-root.cjs":{"imports":[{"path":"path","kind":"require-call","external":true},{"path":"locate-path","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"url","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/config-tools/src/utilities/find-workspace-root.ts","inputs":{"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1230},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1807}},"bytes":4707}}}
package/meta.esm.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytes":1987,"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/config-file/index.ts":{"bytes":35,"imports":[{"path":"packages/config-tools/src/config-file/get-config-file.ts","kind":"import-statement","original":"./get-config-file"}],"format":"esm"},"packages/config-tools/src/types.ts":{"bytes":1405,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"./schema","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/schema.ts":{"bytes":5736,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/get-default-config.ts":{"bytes":2708,"imports":[{"path":"fs","kind":"import-statement","external":true},{"path":"nx/src/utils/find-workspace-root.js","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"../schema"},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/get-log-level.ts":{"bytes":1409,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/config-tools/src/utilities/index.ts":{"bytes":71,"imports":[{"path":"packages/config-tools/src/utilities/get-default-config.ts","kind":"import-statement","original":"./get-default-config"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"./get-log-level"}],"format":"esm"},"packages/config-tools/src/env/get-env.ts":{"bytes":4137,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"../utilities"}],"format":"esm"},"packages/config-tools/src/create-storm-config.ts":{"bytes":2482,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./env/get-env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/env/set-env.ts":{"bytes":4309,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"../utilities/get-log-level"}],"format":"esm"},"packages/config-tools/src/env/index.ts":{"bytes":54,"imports":[{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./get-env"},{"path":"packages/config-tools/src/env/set-env.ts","kind":"import-statement","original":"./set-env"}],"format":"esm"},"packages/config-tools/src/index.ts":{"bytes":399,"imports":[{"path":"packages/config-tools/src/config-file/index.ts","kind":"import-statement","original":"./config-file"},{"path":"packages/config-tools/src/create-storm-config.ts","kind":"import-statement","original":"./create-storm-config"},{"path":"packages/config-tools/src/env/index.ts","kind":"import-statement","original":"./env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"./utilities"}],"format":"esm"},"packages/config-tools/src/utilities/find-up.ts":{"bytes":4414,"imports":[{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytes":1932,"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"fp-ts/Either","kind":"import-statement","external":true},{"path":"fp-ts/function","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-up.ts","kind":"import-statement","original":"./find-up"}],"format":"esm"}},"outputs":{"dist/packages/config-tools/index.js":{"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"fs","kind":"import-statement","external":true},{"path":"nx/src/utils/find-workspace-root.js","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true}],"exports":["ColorConfigSchema","DefaultColorConfig","DefaultStormConfig","LogLevel","LogLevelLabel","StormConfigSchema","createConfigExtension","createStormConfig","getConfigEnv","getConfigFile","getDefaultConfig","getExtensionEnv","getLogLevel","getLogLevelLabel","setConfigEnv","setExtensionEnv"],"entryPoint":"packages/config-tools/src/index.ts","inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytesInOutput":1564},"packages/config-tools/src/config-file/index.ts":{"bytesInOutput":0},"packages/config-tools/src/index.ts":{"bytesInOutput":0},"packages/config-tools/src/types.ts":{"bytesInOutput":256},"packages/config-tools/src/utilities/get-default-config.ts":{"bytesInOutput":2158},"packages/config-tools/src/schema.ts":{"bytesInOutput":4444},"packages/config-tools/src/utilities/index.ts":{"bytesInOutput":0},"packages/config-tools/src/utilities/get-log-level.ts":{"bytesInOutput":1029},"packages/config-tools/src/env/get-env.ts":{"bytesInOutput":3060},"packages/config-tools/src/create-storm-config.ts":{"bytesInOutput":916},"packages/config-tools/src/env/index.ts":{"bytesInOutput":0},"packages/config-tools/src/env/set-env.ts":{"bytesInOutput":3528}},"bytes":17732},"dist/packages/config-tools/utilities/find-workspace-root.js":{"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"fp-ts/Either","kind":"import-statement","external":true},{"path":"fp-ts/function","kind":"import-statement","external":true},{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"exports":["findWorkspaceRoot"],"entryPoint":"packages/config-tools/src/utilities/find-workspace-root.ts","inputs":{"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1497},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1821}},"bytes":3526}}}
1
+ {"inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytes":1987,"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/config-file/index.ts":{"bytes":35,"imports":[{"path":"packages/config-tools/src/config-file/get-config-file.ts","kind":"import-statement","original":"./get-config-file"}],"format":"esm"},"packages/config-tools/src/types.ts":{"bytes":1405,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"./schema","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/schema.ts":{"bytes":5736,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-up.ts":{"bytes":4419,"imports":[{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytes":1264,"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-up.ts","kind":"import-statement","original":"./find-up"}],"format":"esm"},"packages/config-tools/src/utilities/get-default-config.ts":{"bytes":2592,"imports":[{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"../schema"},{"path":"../types","kind":"import-statement","external":true},{"path":"packages/config-tools/src/utilities/find-workspace-root.ts","kind":"import-statement","original":"./find-workspace-root"}],"format":"esm"},"packages/config-tools/src/utilities/get-log-level.ts":{"bytes":1409,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/config-tools/src/utilities/index.ts":{"bytes":71,"imports":[{"path":"packages/config-tools/src/utilities/get-default-config.ts","kind":"import-statement","original":"./get-default-config"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"./get-log-level"}],"format":"esm"},"packages/config-tools/src/env/get-env.ts":{"bytes":4137,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"../utilities"}],"format":"esm"},"packages/config-tools/src/create-storm-config.ts":{"bytes":2482,"imports":[{"path":"zod","kind":"import-statement","external":true},{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./env/get-env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"packages/config-tools/src/env/set-env.ts":{"bytes":4309,"imports":[{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/config-tools/src/utilities/get-log-level.ts","kind":"import-statement","original":"../utilities/get-log-level"}],"format":"esm"},"packages/config-tools/src/env/index.ts":{"bytes":54,"imports":[{"path":"packages/config-tools/src/env/get-env.ts","kind":"import-statement","original":"./get-env"},{"path":"packages/config-tools/src/env/set-env.ts","kind":"import-statement","original":"./set-env"}],"format":"esm"},"packages/config-tools/src/index.ts":{"bytes":399,"imports":[{"path":"packages/config-tools/src/config-file/index.ts","kind":"import-statement","original":"./config-file"},{"path":"packages/config-tools/src/create-storm-config.ts","kind":"import-statement","original":"./create-storm-config"},{"path":"packages/config-tools/src/env/index.ts","kind":"import-statement","original":"./env"},{"path":"packages/config-tools/src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/config-tools/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/config-tools/src/utilities/index.ts","kind":"import-statement","original":"./utilities"}],"format":"esm"}},"outputs":{"dist/packages/config-tools/index.js":{"imports":[{"path":"cosmiconfig","kind":"import-statement","external":true},{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"exports":["ColorConfigSchema","DefaultColorConfig","DefaultStormConfig","LogLevel","LogLevelLabel","StormConfigSchema","createConfigExtension","createStormConfig","getConfigEnv","getConfigFile","getDefaultConfig","getExtensionEnv","getLogLevel","getLogLevelLabel","setConfigEnv","setExtensionEnv"],"entryPoint":"packages/config-tools/src/index.ts","inputs":{"packages/config-tools/src/config-file/get-config-file.ts":{"bytesInOutput":1564},"packages/config-tools/src/config-file/index.ts":{"bytesInOutput":0},"packages/config-tools/src/index.ts":{"bytesInOutput":0},"packages/config-tools/src/types.ts":{"bytesInOutput":256},"packages/config-tools/src/utilities/get-default-config.ts":{"bytesInOutput":1984},"packages/config-tools/src/schema.ts":{"bytesInOutput":4444},"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1033},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1722},"packages/config-tools/src/utilities/index.ts":{"bytesInOutput":0},"packages/config-tools/src/utilities/get-log-level.ts":{"bytesInOutput":1029},"packages/config-tools/src/env/get-env.ts":{"bytesInOutput":3060},"packages/config-tools/src/create-storm-config.ts":{"bytesInOutput":916},"packages/config-tools/src/env/index.ts":{"bytesInOutput":0},"packages/config-tools/src/env/set-env.ts":{"bytesInOutput":3528}},"bytes":20490},"dist/packages/config-tools/utilities/find-workspace-root.js":{"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"locate-path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"exports":["findWorkspaceRoot"],"entryPoint":"packages/config-tools/src/utilities/find-workspace-root.ts","inputs":{"packages/config-tools/src/utilities/find-workspace-root.ts":{"bytesInOutput":1033},"packages/config-tools/src/utilities/find-up.ts":{"bytesInOutput":1722}},"bytes":2963}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/config-tools",
3
- "version": "1.5.8",
3
+ "version": "1.5.10",
4
4
  "private": false,
5
5
  "description": "⚡The Storm-Ops monorepo contains utility applications, tools, and various libraries to create modern and scalable web applications.",
6
6
  "repository": {
@@ -33,57 +33,53 @@ __export(find_workspace_root_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(find_workspace_root_exports);
35
35
  var path2 = __toESM(require("path"), 1);
36
- var import_Either = require("fp-ts/Either");
37
- var import_function = require("fp-ts/function");
38
36
 
39
37
  // packages/config-tools/src/utilities/find-up.ts
40
38
  var import_locate_path = require("locate-path");
41
- var import_path = __toESM(require("path"), 1);
39
+ var path = __toESM(require("path"), 1);
42
40
  var import_url = require("url");
43
41
  var findUpStop = Symbol("findUpStop");
44
42
  function toPath(urlOrPath) {
45
43
  return urlOrPath instanceof URL ? (0, import_url.fileURLToPath)(urlOrPath) : urlOrPath;
46
44
  }
47
- async function findUpMultiple(names, options = { limit: Number.POSITIVE_INFINITY, type: "file" }) {
48
- let directory = import_path.default.resolve(toPath(options.cwd) ?? "");
49
- const { root } = import_path.default.parse(directory);
50
- const stopAt = import_path.default.resolve(directory, toPath(options.stopAt ?? root));
45
+ function findUpMultipleSync(names, options = { limit: 1, type: "file" }) {
46
+ let directory = path.resolve(toPath(options.cwd) ?? "");
47
+ const { root } = path.parse(directory);
48
+ const stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);
51
49
  const limit = options.limit ?? Number.POSITIVE_INFINITY;
52
50
  if (typeof names === "function") {
53
51
  const foundPath = names(options.cwd);
54
- return (0, import_locate_path.locatePathSync)([foundPath], { ...options, cwd: directory });
52
+ return (0, import_locate_path.locatePathSync)([foundPath], options);
55
53
  }
56
- const runNameMatcher = async (name) => {
54
+ const runNameMatcher = (name) => {
57
55
  const paths = [name].flat();
58
- const runMatcher = async (locateOptions) => {
56
+ const runMatcher = (locateOptions) => {
59
57
  if (typeof name !== "function") {
60
- return (0, import_locate_path.locatePath)(paths, locateOptions);
58
+ return (0, import_locate_path.locatePathSync)(paths, locateOptions);
61
59
  }
62
- const foundPath = await name(locateOptions.cwd);
60
+ const foundPath = name(locateOptions.cwd);
63
61
  if (typeof foundPath === "string") {
64
- return (0, import_locate_path.locatePath)([foundPath], locateOptions);
62
+ return (0, import_locate_path.locatePathSync)([foundPath], locateOptions);
65
63
  }
66
64
  return foundPath;
67
65
  };
68
66
  const matches = [];
69
67
  while (true) {
70
- const foundPath = await runMatcher({ ...options, cwd: directory });
68
+ const foundPath = runMatcher({ ...options, cwd: directory });
71
69
  if (foundPath) {
72
- matches.push(import_path.default.resolve(directory, foundPath));
70
+ matches.push(path.resolve(directory, foundPath));
73
71
  }
74
72
  if (directory === stopAt || matches.length >= limit) {
75
73
  break;
76
74
  }
77
- directory = import_path.default.dirname(directory);
75
+ directory = path.dirname(directory);
78
76
  }
79
77
  return matches;
80
78
  };
81
- return (await Promise.allSettled(
82
- (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name))
83
- )).flat();
79
+ return (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name)).flat();
84
80
  }
85
- async function findUp(names, options = { limit: 1, type: "file" }) {
86
- const matches = await findUpMultiple(names, options);
81
+ function findUpSync(names, options = { limit: 1, type: "file" }) {
82
+ const matches = findUpMultipleSync(names, options);
87
83
  return matches[0];
88
84
  }
89
85
 
@@ -112,34 +108,22 @@ var rootFiles = [
112
108
  "pnpm-lock.yml",
113
109
  "bun.lockb"
114
110
  ];
115
- var formatError = (path3) => ({
116
- type: `Cannot find workspace root upwards from known path. Files search list includes:
117
- ${rootFiles.join(
118
- "\n"
119
- )}`,
120
- path: path3
121
- });
122
- var searchUp = (target, cwd) => (0, import_function.pipe)(
123
- // FIXME: this should be async, or at least offer an async version in addition
124
- findUp(target, {
125
- cwd,
111
+ function findWorkspaceRoot(pathInsideMonorepo) {
112
+ const result = process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : findUpSync(rootFiles, {
113
+ cwd: pathInsideMonorepo ?? process.cwd(),
126
114
  type: "file",
127
115
  limit: 1
128
- }),
129
- (0, import_Either.fromNullable)(formatError(cwd)),
130
- (0, import_Either.map)(path2.dirname)
131
- );
132
- function findWorkspaceRoot(pathInsideMonorepo) {
133
- return process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : (0, import_function.pipe)(
134
- (0, import_Either.fromNullable)(formatError(""))(pathInsideMonorepo),
135
- (0, import_Either.chain)((from) => searchUp(rootFiles, from)),
136
- (0, import_Either.alt)(
137
- () => (0, import_function.pipe)(
138
- searchUp(rootFiles, process.cwd()),
139
- (0, import_Either.mapLeft)((0, import_function.constant)(formatError(process.cwd())))
140
- )
141
- )
142
- );
116
+ });
117
+ if (!result) {
118
+ throw new Error(
119
+ `Cannot find workspace root upwards from known path. Files search list includes:
120
+ ${rootFiles.join(
121
+ "\n"
122
+ )}
123
+ Path: ${path2}`
124
+ );
125
+ }
126
+ return result;
143
127
  }
144
128
  // Annotate the CommonJS export names for ESM import in node:
145
129
  0 && (module.exports = {
@@ -1,40 +1,38 @@
1
1
  // packages/config-tools/src/utilities/find-workspace-root.ts
2
2
  import * as path2 from "path";
3
- import { alt, chain, fromNullable, map, mapLeft } from "fp-ts/Either";
4
- import { constant, pipe } from "fp-ts/function";
5
3
 
6
4
  // packages/config-tools/src/utilities/find-up.ts
7
5
  import { locatePath, locatePathSync } from "locate-path";
8
- import path from "path";
6
+ import * as path from "path";
9
7
  import { fileURLToPath } from "url";
10
8
  var findUpStop = Symbol("findUpStop");
11
9
  function toPath(urlOrPath) {
12
10
  return urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
13
11
  }
14
- async function findUpMultiple(names, options = { limit: Number.POSITIVE_INFINITY, type: "file" }) {
12
+ function findUpMultipleSync(names, options = { limit: 1, type: "file" }) {
15
13
  let directory = path.resolve(toPath(options.cwd) ?? "");
16
14
  const { root } = path.parse(directory);
17
- const stopAt = path.resolve(directory, toPath(options.stopAt ?? root));
15
+ const stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);
18
16
  const limit = options.limit ?? Number.POSITIVE_INFINITY;
19
17
  if (typeof names === "function") {
20
18
  const foundPath = names(options.cwd);
21
- return locatePathSync([foundPath], { ...options, cwd: directory });
19
+ return locatePathSync([foundPath], options);
22
20
  }
23
- const runNameMatcher = async (name) => {
21
+ const runNameMatcher = (name) => {
24
22
  const paths = [name].flat();
25
- const runMatcher = async (locateOptions) => {
23
+ const runMatcher = (locateOptions) => {
26
24
  if (typeof name !== "function") {
27
- return locatePath(paths, locateOptions);
25
+ return locatePathSync(paths, locateOptions);
28
26
  }
29
- const foundPath = await name(locateOptions.cwd);
27
+ const foundPath = name(locateOptions.cwd);
30
28
  if (typeof foundPath === "string") {
31
- return locatePath([foundPath], locateOptions);
29
+ return locatePathSync([foundPath], locateOptions);
32
30
  }
33
31
  return foundPath;
34
32
  };
35
33
  const matches = [];
36
34
  while (true) {
37
- const foundPath = await runMatcher({ ...options, cwd: directory });
35
+ const foundPath = runMatcher({ ...options, cwd: directory });
38
36
  if (foundPath) {
39
37
  matches.push(path.resolve(directory, foundPath));
40
38
  }
@@ -45,12 +43,10 @@ async function findUpMultiple(names, options = { limit: Number.POSITIVE_INFINITY
45
43
  }
46
44
  return matches;
47
45
  };
48
- return (await Promise.allSettled(
49
- (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name))
50
- )).flat();
46
+ return (names && Array.isArray(names) ? names : [names]).map((name) => runNameMatcher(name)).flat();
51
47
  }
52
- async function findUp(names, options = { limit: 1, type: "file" }) {
53
- const matches = await findUpMultiple(names, options);
48
+ function findUpSync(names, options = { limit: 1, type: "file" }) {
49
+ const matches = findUpMultipleSync(names, options);
54
50
  return matches[0];
55
51
  }
56
52
 
@@ -79,34 +75,22 @@ var rootFiles = [
79
75
  "pnpm-lock.yml",
80
76
  "bun.lockb"
81
77
  ];
82
- var formatError = (path3) => ({
83
- type: `Cannot find workspace root upwards from known path. Files search list includes:
84
- ${rootFiles.join(
85
- "\n"
86
- )}`,
87
- path: path3
88
- });
89
- var searchUp = (target, cwd) => pipe(
90
- // FIXME: this should be async, or at least offer an async version in addition
91
- findUp(target, {
92
- cwd,
78
+ function findWorkspaceRoot(pathInsideMonorepo) {
79
+ const result = process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : findUpSync(rootFiles, {
80
+ cwd: pathInsideMonorepo ?? process.cwd(),
93
81
  type: "file",
94
82
  limit: 1
95
- }),
96
- fromNullable(formatError(cwd)),
97
- map(path2.dirname)
98
- );
99
- function findWorkspaceRoot(pathInsideMonorepo) {
100
- return process.env.STORM_WORKSPACE_ROOT ? process.env.STORM_WORKSPACE_ROOT : process.env.NX_WORKSPACE_ROOT_PATH ? process.env.NX_WORKSPACE_ROOT_PATH : pipe(
101
- fromNullable(formatError(""))(pathInsideMonorepo),
102
- chain((from) => searchUp(rootFiles, from)),
103
- alt(
104
- () => pipe(
105
- searchUp(rootFiles, process.cwd()),
106
- mapLeft(constant(formatError(process.cwd())))
107
- )
108
- )
109
- );
83
+ });
84
+ if (!result) {
85
+ throw new Error(
86
+ `Cannot find workspace root upwards from known path. Files search list includes:
87
+ ${rootFiles.join(
88
+ "\n"
89
+ )}
90
+ Path: ${path2}`
91
+ );
92
+ }
93
+ return result;
110
94
  }
111
95
  export {
112
96
  findWorkspaceRoot