varlock 0.7.1 → 0.7.3
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/dist/auto-load.js +2 -2
- package/dist/chunk-4JWJZ4P3.js +86 -0
- package/dist/chunk-4JWJZ4P3.js.map +1 -0
- package/dist/{chunk-B6SVDIAN.js → chunk-5LNYCOEO.js} +1490 -207
- package/dist/chunk-5LNYCOEO.js.map +1 -0
- package/dist/{chunk-MC4SUVBY.js → chunk-ANZNVJLY.js} +18 -8
- package/dist/chunk-ANZNVJLY.js.map +1 -0
- package/dist/chunk-CHQDS2PI.js +138 -0
- package/dist/chunk-CHQDS2PI.js.map +1 -0
- package/dist/{chunk-TQDVHRUW.js → chunk-CNDSEDGU.js} +14 -137
- package/dist/chunk-CNDSEDGU.js.map +1 -0
- package/dist/{chunk-JTK7LTYE.js → chunk-CS57IAAJ.js} +8 -17
- package/dist/chunk-CS57IAAJ.js.map +1 -0
- package/dist/chunk-EC3NKELX.js +79 -0
- package/dist/chunk-EC3NKELX.js.map +1 -0
- package/dist/{chunk-UGUCGDKH.js → chunk-FVFI4EQN.js} +6 -5
- package/dist/chunk-FVFI4EQN.js.map +1 -0
- package/dist/chunk-GXNQVEXD.js +15 -0
- package/dist/chunk-GXNQVEXD.js.map +1 -0
- package/dist/{chunk-BEV4WCAI.js → chunk-GYK3QFZB.js} +8 -4
- package/dist/chunk-GYK3QFZB.js.map +1 -0
- package/dist/{chunk-WKQ6WUA7.js → chunk-HMMDVPDG.js} +6 -5
- package/dist/chunk-HMMDVPDG.js.map +1 -0
- package/dist/chunk-J4PGGBUP.js +162 -0
- package/dist/chunk-J4PGGBUP.js.map +1 -0
- package/dist/chunk-N5O4Z32O.js +74 -0
- package/dist/chunk-N5O4Z32O.js.map +1 -0
- package/dist/{chunk-CHWXFSUK.js → chunk-NTGBMXQQ.js} +5 -5
- package/dist/{chunk-CHWXFSUK.js.map → chunk-NTGBMXQQ.js.map} +1 -1
- package/dist/{chunk-4KSIULUK.js → chunk-QLNQ3KVC.js} +5 -4
- package/dist/chunk-QLNQ3KVC.js.map +1 -0
- package/dist/{chunk-WHSHSZQR.js → chunk-R54KUFZA.js} +4 -4
- package/dist/{chunk-WHSHSZQR.js.map → chunk-R54KUFZA.js.map} +1 -1
- package/dist/{chunk-4MCJ5H6K.js → chunk-RYMTOGGL.js} +3 -3
- package/dist/{chunk-4MCJ5H6K.js.map → chunk-RYMTOGGL.js.map} +1 -1
- package/dist/chunk-W4CM34OJ.js +387 -0
- package/dist/chunk-W4CM34OJ.js.map +1 -0
- package/dist/{chunk-EQGPMXDI.js → chunk-ZB2JSJLY.js} +6 -5
- package/dist/chunk-ZB2JSJLY.js.map +1 -0
- package/dist/cli/cli-executable.js +177 -26
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-IYYV4PO6.js +5 -0
- package/dist/{config-item-VMLNH4QK.js.map → config-item-IYYV4PO6.js.map} +1 -1
- package/dist/dotenv-compat.js +2 -2
- package/dist/{env-graph-BI5ASRYd.d.ts → env-graph-BxA2OztA.d.ts} +60 -1
- package/dist/explain.command-VFR5SUW3.js +12 -0
- package/dist/explain.command-VFR5SUW3.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/init.command-HRY74HHU.js +12 -0
- package/dist/{init.command-C2WNQ4UP.js.map → init.command-HRY74HHU.js.map} +1 -1
- package/dist/install-plugin.command-WDCWQWT7.js +11 -0
- package/dist/install-plugin.command-WDCWQWT7.js.map +1 -0
- package/dist/lib/exec-sync-varlock.d.ts +7 -0
- package/dist/lib/exec-sync-varlock.js +1 -1
- package/dist/load.command-FNMIEIJB.js +12 -0
- package/dist/{load.command-5X3BSCLF.js.map → load.command-FNMIEIJB.js.map} +1 -1
- package/dist/plugin-lib.d.ts +2 -2
- package/dist/printenv.command-3HLXLNHS.js +12 -0
- package/dist/{printenv.command-XZEQ3CZB.js.map → printenv.command-3HLXLNHS.js.map} +1 -1
- package/dist/run.command-SXM3J6GI.js +13 -0
- package/dist/{run.command-FE26WTNO.js.map → run.command-SXM3J6GI.js.map} +1 -1
- package/dist/runtime/env.d.ts +1 -1
- package/dist/scan.command-PW7HYURX.js +14 -0
- package/dist/{scan.command-2M4RN4ZP.js.map → scan.command-PW7HYURX.js.map} +1 -1
- package/dist/telemetry.command-4HKKZK7N.js +11 -0
- package/dist/{telemetry.command-SPOD3GAJ.js.map → telemetry.command-4HKKZK7N.js.map} +1 -1
- package/dist/typegen.command-O6OXWCVX.js +12 -0
- package/dist/{typegen.command-RUNVYBAM.js.map → typegen.command-O6OXWCVX.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunk-4KSIULUK.js.map +0 -1
- package/dist/chunk-B6SVDIAN.js.map +0 -1
- package/dist/chunk-BEV4WCAI.js.map +0 -1
- package/dist/chunk-EQGPMXDI.js.map +0 -1
- package/dist/chunk-GCEP6UVQ.js +0 -60
- package/dist/chunk-GCEP6UVQ.js.map +0 -1
- package/dist/chunk-JMJCAFEL.js +0 -1434
- package/dist/chunk-JMJCAFEL.js.map +0 -1
- package/dist/chunk-JTK7LTYE.js.map +0 -1
- package/dist/chunk-K6M42GW2.js +0 -59
- package/dist/chunk-K6M42GW2.js.map +0 -1
- package/dist/chunk-MC4SUVBY.js.map +0 -1
- package/dist/chunk-TQDVHRUW.js.map +0 -1
- package/dist/chunk-UGUCGDKH.js.map +0 -1
- package/dist/chunk-WKQ6WUA7.js.map +0 -1
- package/dist/config-item-VMLNH4QK.js +0 -5
- package/dist/init.command-C2WNQ4UP.js +0 -11
- package/dist/load.command-5X3BSCLF.js +0 -11
- package/dist/printenv.command-XZEQ3CZB.js +0 -11
- package/dist/run.command-FE26WTNO.js +0 -12
- package/dist/scan.command-2M4RN4ZP.js +0 -12
- package/dist/telemetry.command-SPOD3GAJ.js +0 -10
- package/dist/typegen.command-RUNVYBAM.js +0 -11
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-load.ts"],"names":[],"mappings":";;;;;;;AAaA,IAAM,UAAA,GAAa,gBAAgB,mCAAA,EAAqC;AAAA,EACtE,WAAA,EAAa,IAAA;AAAA,EACb,eAAA,EAAiB;AACnB,CAAC,CAAA;AACD,OAAA,CAAQ,IAAI,aAAA,GAAgB,UAAA;AAG5B,cAAA,EAAe;AAEf,kBAAA,EAAmB;AACnB,yBAAA,EAA0B;AAC1B,mBAAA,EAAoB","file":"chunk-BEV4WCAI.js","sourcesContent":["import { execSyncVarlock } from './lib/exec-sync-varlock';\n\nimport { initVarlockEnv } from './runtime/env';\nimport { patchGlobalConsole } from './runtime/patch-console';\nimport { patchGlobalServerResponse } from './runtime/patch-server-response';\nimport { patchGlobalResponse } from './runtime/patch-response';\n\n// The varlock loading process uses async calls, but we need this to run synchronously.\n// because even with top level await, we run into hoisting issues where things happen out of order\n// so we call out to the CLI using execSync\n// this also isolates the varlock loading process from the end user process\n\n\nconst execResult = execSyncVarlock('load --format json-full --compact', {\n exitOnError: true,\n showLogsOnError: true,\n});\nprocess.env.__VARLOCK_ENV = execResult;\n\n// initialize varlock and patch globals as necessary\ninitVarlockEnv();\n// these will be no-ops if these are disabled by settings\npatchGlobalConsole();\npatchGlobalServerResponse();\npatchGlobalResponse();\n\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/telemetry.command.ts"],"names":[],"mappings":";;;;;;;;;AAWO,IAAM,cAAc,MAAA,CAAO;AAAA,EAChC,IAAA,EAAM,WAAA;AAAA,EACN,WAAA,EAAa,0CAAA;AAAA,EACb,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,YAAA;AAAA,MACN,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,QAAA,EAAU;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,EAAA,CAAA,CAWR,IAAA;AACJ,CAAC;AAEM,IAAM,SAAA,iCAA6D,GAAA,KAAQ;AAEhF,EAAA,IAAI,CAAC,CAAC,QAAA,EAAU,SAAS,EAAE,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA,EAAG;AACpD,IAAA,MAAM,IAAI,aAAa,8CAAA,EAAgD;AAAA,MACrE,SAAA,EAAW;AAAA,KACZ,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,YAAY,iBAAA,EAAkB;AACpC,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,SAAA,EAAW,aAAa,CAAA;AAEhD,EAAA,IAAI;AAEF,IAAA,IAAI,CAAC,UAAA,CAAW,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,KAAA,CAAM,SAAA,EAAW,EAAE,SAAA,EAAW,MAAM,CAAA;AAAA,IAC5C;AAGA,IAAA,IAAI,SAA8B,EAAC;AACnC,IAAA,IAAI,UAAA,CAAW,UAAU,CAAA,EAAG;AAC1B,MAAA,MAAM,aAAA,GAAgB,MAAM,QAAA,CAAS,UAAA,EAAY,OAAO,CAAA;AACxD,MAAA,MAAA,GAAS,IAAA,CAAK,MAAM,aAAa,CAAA;AAAA,IACnC;AAGA,IAAA,IAAI,GAAA,CAAI,MAAA,CAAO,IAAA,KAAS,SAAA,SAAkB,iBAAA,GAAoB,IAAA;AAAA,gBAClD,MAAA,CAAO,iBAAA;AACnB,IAAA,MAAM,UAAU,UAAA,EAAY,IAAA,CAAK,UAAU,MAAA,EAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAE3D,IAAA,IAAI,GAAA,CAAI,MAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AAChC,MAAA,OAAA,CAAQ,IAAI,uDAAkD,CAAA;AAAA,IAChE,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,IAAI,wDAAmD,CAAA;AAAA,IACjE;AACA,IAAA,OAAA,CAAQ,GAAA,CAAI,aAAA,EAAe,GAAA,CAAI,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,EACrD,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,mCAAmC,KAAK,CAAA;AACtD,IAAA,OAAO,aAAa,CAAC,CAAA;AAAA,EACvB;AACF,CAAA,EAvCmE,WAAA","file":"chunk-EQGPMXDI.js","sourcesContent":["import { join } from 'node:path';\nimport { mkdir, writeFile, readFile } from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { define } from 'gunshi';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport { gracefulExit } from 'exit-hook';\nimport { fmt } from '../helpers/pretty-format';\nimport { CliExitError } from '../helpers/exit-error';\nimport { getUserVarlockDir } from '../../lib/user-config-dir';\n\n\nexport const commandSpec = define({\n name: 'telemetry',\n description: 'Enable/disable anonymous usage analytics',\n args: {\n mode: {\n type: 'positional',\n description: '\"enable\" or \"disable\"',\n },\n },\n examples: `\nOpts in/out of anonymous usage analytics. This command creates/updates a configuration\nfile at $XDG_CONFIG_HOME/varlock/config.json (or ~/.config/varlock/config.json) saving\nyour preference.\n\nExamples:\n varlock telemetry disable # Opt out of telemetry\n varlock telemetry enable # Opt in to telemetry\n\n💡 Tip: You can also temporarily opt out by setting VARLOCK_TELEMETRY_DISABLED=1\nFor more information, visit https://varlock.dev/guides/telemetry/\n `.trim(),\n});\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n // TODO: remove this when gunshi supports types/validation for positional args\n if (!['enable', 'disable'].includes(ctx.values.mode)) {\n throw new CliExitError('additional arg must be \"enable\" or \"disable\"', {\n forceExit: true,\n });\n }\n\n const configDir = getUserVarlockDir();\n const configPath = join(configDir, 'config.json');\n\n try {\n // Create .varlock directory if it doesn't exist\n if (!existsSync(configDir)) {\n await mkdir(configDir, { recursive: true });\n }\n\n // Read existing config if it exists\n let config: Record<string, any> = {};\n if (existsSync(configPath)) {\n const configContent = await readFile(configPath, 'utf-8');\n config = JSON.parse(configContent);\n }\n\n // update config `telemetryDisabled` setting\n if (ctx.values.mode === 'disable') config.telemetryDisabled = true;\n else delete config.telemetryDisabled;\n await writeFile(configPath, JSON.stringify(config, null, 2));\n\n if (ctx.values.mode === 'enable') {\n console.log('✅ Successfully enabled anonymous usage analytics');\n } else {\n console.log('✅ Successfully disabled anonymous usage analytics');\n }\n console.log('> saved in:', fmt.filePath(configPath));\n } catch (error) {\n console.error('Failed to opt out of analytics:', error);\n return gracefulExit(1);\n }\n};\n"]}
|
package/dist/chunk-GCEP6UVQ.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { CliExitError, loadEnvGraph } from './chunk-TQDVHRUW.js';
|
|
2
|
-
import { runWithWorkspaceInfo } from './chunk-B6SVDIAN.js';
|
|
3
|
-
import { createDebug } from './chunk-6CCHLM3U.js';
|
|
4
|
-
import { __name } from './chunk-6PEHRAEP.js';
|
|
5
|
-
import fs from 'fs';
|
|
6
|
-
import path2 from 'path';
|
|
7
|
-
|
|
8
|
-
function readVarlockPackageJsonConfig(opts) {
|
|
9
|
-
const cwd = opts?.cwd ?? process.cwd();
|
|
10
|
-
const pkgPath = path2.join(cwd, "package.json");
|
|
11
|
-
if (!fs.existsSync(pkgPath)) return void 0;
|
|
12
|
-
try {
|
|
13
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
14
|
-
if (pkg.varlock && typeof pkg.varlock === "object") {
|
|
15
|
-
return pkg.varlock;
|
|
16
|
-
}
|
|
17
|
-
} catch {
|
|
18
|
-
}
|
|
19
|
-
return void 0;
|
|
20
|
-
}
|
|
21
|
-
__name(readVarlockPackageJsonConfig, "readVarlockPackageJsonConfig");
|
|
22
|
-
|
|
23
|
-
// src/lib/load-graph.ts
|
|
24
|
-
var debug = createDebug("varlock:load");
|
|
25
|
-
function loadVarlockEnvGraph(opts) {
|
|
26
|
-
const pkgLoadPath = readVarlockPackageJsonConfig()?.loadPath;
|
|
27
|
-
const resolvedEntryFilePath = opts?.entryFilePath ?? pkgLoadPath;
|
|
28
|
-
if (opts?.entryFilePath) {
|
|
29
|
-
debug("using path from --path flag: %s", path2.resolve(opts.entryFilePath));
|
|
30
|
-
} else if (pkgLoadPath) {
|
|
31
|
-
debug("using path from package.json varlock.loadPath: %s", path2.resolve(pkgLoadPath));
|
|
32
|
-
} else {
|
|
33
|
-
debug("no path configured, using cwd: %s", process.cwd());
|
|
34
|
-
}
|
|
35
|
-
if (resolvedEntryFilePath) {
|
|
36
|
-
const resolvedPath = path2.resolve(resolvedEntryFilePath);
|
|
37
|
-
if (!fs.existsSync(resolvedPath)) {
|
|
38
|
-
if (opts?.entryFilePath) {
|
|
39
|
-
throw new CliExitError(`The --path value does not exist: ${resolvedPath}`, {
|
|
40
|
-
suggestion: "Use `--path` to specify a valid file or directory."
|
|
41
|
-
});
|
|
42
|
-
} else {
|
|
43
|
-
throw new CliExitError(`The \`varlock.loadPath\` configured in package.json does not exist: ${resolvedPath}`, {
|
|
44
|
-
suggestion: "Update `varlock.loadPath` in your package.json to point to a valid file or directory."
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return runWithWorkspaceInfo(() => loadEnvGraph({
|
|
50
|
-
...opts,
|
|
51
|
-
entryFilePath: resolvedEntryFilePath,
|
|
52
|
-
afterInit: /* @__PURE__ */ __name(async (_g) => {
|
|
53
|
-
}, "afterInit")
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
56
|
-
__name(loadVarlockEnvGraph, "loadVarlockEnvGraph");
|
|
57
|
-
|
|
58
|
-
export { loadVarlockEnvGraph };
|
|
59
|
-
//# sourceMappingURL=chunk-GCEP6UVQ.js.map
|
|
60
|
-
//# sourceMappingURL=chunk-GCEP6UVQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/package-json-config.ts","../src/lib/load-graph.ts"],"names":["path","fs"],"mappings":";;;;;;;AAYO,SAAS,6BAA6B,IAAA,EAA+D;AAC1G,EAAA,MAAM,GAAA,GAAM,IAAA,EAAM,GAAA,IAAO,OAAA,CAAQ,GAAA,EAAI;AACrC,EAAA,MAAM,OAAA,GAAUA,KAAA,CAAK,IAAA,CAAK,GAAA,EAAK,cAAc,CAAA;AAC7C,EAAA,IAAI,CAAC,EAAA,CAAG,UAAA,CAAW,OAAO,GAAG,OAAO,MAAA;AACpC,EAAA,IAAI;AACF,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,GAAG,YAAA,CAAa,OAAA,EAAS,OAAO,CAAC,CAAA;AACxD,IAAA,IAAI,GAAA,CAAI,OAAA,IAAW,OAAO,GAAA,CAAI,YAAY,QAAA,EAAU;AAClD,MAAA,OAAO,GAAA,CAAI,OAAA;AAAA,IACb;AAAA,EACF,CAAA,CAAA,MAAQ;AAAA,EAA4B;AACpC,EAAA,OAAO,MAAA;AACT;AAXgB,MAAA,CAAA,4BAAA,EAAA,8BAAA,CAAA;;;ACJhB,IAAM,KAAA,GAAQ,YAAY,cAAc,CAAA;AAEjC,SAAS,oBAAoB,IAAA,EAIjC;AACD,EAAA,MAAM,WAAA,GAAc,8BAA6B,EAAG,QAAA;AACpD,EAAA,MAAM,qBAAA,GAAwB,MAAM,aAAA,IAAiB,WAAA;AAErD,EAAA,IAAI,MAAM,aAAA,EAAe;AACvB,IAAA,KAAA,CAAM,iCAAA,EAAmCA,KAAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,aAAa,CAAC,CAAA;AAAA,EAC3E,WAAW,WAAA,EAAa;AACtB,IAAA,KAAA,CAAM,mDAAA,EAAqDA,KAAAA,CAAK,OAAA,CAAQ,WAAW,CAAC,CAAA;AAAA,EACtF,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,mCAAA,EAAqC,OAAA,CAAQ,GAAA,EAAK,CAAA;AAAA,EAC1D;AAGA,EAAA,IAAI,qBAAA,EAAuB;AACzB,IAAA,MAAM,YAAA,GAAeA,KAAAA,CAAK,OAAA,CAAQ,qBAAqB,CAAA;AACvD,IAAA,IAAI,CAACC,EAAAA,CAAG,UAAA,CAAW,YAAY,CAAA,EAAG;AAChC,MAAA,IAAI,MAAM,aAAA,EAAe;AACvB,QAAA,MAAM,IAAI,YAAA,CAAa,CAAA,iCAAA,EAAoC,YAAY,CAAA,CAAA,EAAI;AAAA,UACzE,UAAA,EAAY;AAAA,SACb,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,MAAM,IAAI,YAAA,CAAa,CAAA,oEAAA,EAAuE,YAAY,CAAA,CAAA,EAAI;AAAA,UAC5G,UAAA,EAAY;AAAA,SACb,CAAA;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,oBAAA,CAAqB,MAAM,YAAA,CAAa;AAAA,IAC7C,GAAG,IAAA;AAAA,IACH,aAAA,EAAe,qBAAA;AAAA,IACf,SAAA,gCAAkB,EAAA,KAAO;AAAA,IAEzB,CAAA,EAFW,WAAA;AAAA,GAGZ,CAAC,CAAA;AACJ;AAvCgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA","file":"chunk-GCEP6UVQ.js","sourcesContent":["import path from 'node:path';\nimport fs from 'node:fs';\n\nexport type VarlockPackageJsonConfig = {\n /** Path to a specific .env file or directory to use as the entry point for loading */\n loadPath?: string;\n};\n\n/**\n * Reads varlock configuration from the `package.json` in `cwd`.\n * Returns undefined if no `package.json` exists or it has no `varlock` key.\n */\nexport function readVarlockPackageJsonConfig(opts?: { cwd?: string }): VarlockPackageJsonConfig | undefined {\n const cwd = opts?.cwd ?? process.cwd();\n const pkgPath = path.join(cwd, 'package.json');\n if (!fs.existsSync(pkgPath)) return undefined;\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));\n if (pkg.varlock && typeof pkg.varlock === 'object') {\n return pkg.varlock as VarlockPackageJsonConfig;\n }\n } catch { /* ignore parse errors */ }\n return undefined;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { loadEnvGraph } from '../env-graph';\nimport { CliExitError } from '../cli/helpers/exit-error';\nimport { runWithWorkspaceInfo } from './workspace-utils';\nimport { readVarlockPackageJsonConfig } from './package-json-config';\nimport { createDebug } from './debug';\n\nconst debug = createDebug('varlock:load');\n\nexport function loadVarlockEnvGraph(opts?: {\n currentEnvFallback?: string,\n /** Explicit entry file path - overrides package.json config */\n entryFilePath?: string,\n}) {\n const pkgLoadPath = readVarlockPackageJsonConfig()?.loadPath;\n const resolvedEntryFilePath = opts?.entryFilePath ?? pkgLoadPath;\n\n if (opts?.entryFilePath) {\n debug('using path from --path flag: %s', path.resolve(opts.entryFilePath));\n } else if (pkgLoadPath) {\n debug('using path from package.json varlock.loadPath: %s', path.resolve(pkgLoadPath));\n } else {\n debug('no path configured, using cwd: %s', process.cwd());\n }\n\n // Validate the path early so we can give a targeted error about where it came from\n if (resolvedEntryFilePath) {\n const resolvedPath = path.resolve(resolvedEntryFilePath);\n if (!fs.existsSync(resolvedPath)) {\n if (opts?.entryFilePath) {\n throw new CliExitError(`The --path value does not exist: ${resolvedPath}`, {\n suggestion: 'Use `--path` to specify a valid file or directory.',\n });\n } else {\n throw new CliExitError(`The \\`varlock.loadPath\\` configured in package.json does not exist: ${resolvedPath}`, {\n suggestion: 'Update `varlock.loadPath` in your package.json to point to a valid file or directory.',\n });\n }\n }\n }\n\n return runWithWorkspaceInfo(() => loadEnvGraph({\n ...opts,\n entryFilePath: resolvedEntryFilePath,\n afterInit: async (_g) => {\n // TODO: register varlock resolver\n },\n }));\n}\n"]}
|