@saasak/tool-env 1.2.0 → 1.2.2
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/bin/index.js +2 -2
- package/package.json +1 -1
- package/src/core.js +22 -24
package/bin/index.js
CHANGED
|
@@ -21,7 +21,7 @@ const __root = process.cwd();
|
|
|
21
21
|
|
|
22
22
|
const command = args._[0] || "write";
|
|
23
23
|
|
|
24
|
-
const secret = resolveSecret(args.secret);
|
|
24
|
+
const secret = resolveSecret(args.secret ? `file://${args.secret}` : '');
|
|
25
25
|
|
|
26
26
|
const envPath = args.env || ".env.json";
|
|
27
27
|
const envFile = path.resolve(__root, envPath);
|
|
@@ -290,7 +290,7 @@ async function runCommand() {
|
|
|
290
290
|
let envVars = {};
|
|
291
291
|
try {
|
|
292
292
|
envVars = load({
|
|
293
|
-
secret:
|
|
293
|
+
secret: secret,
|
|
294
294
|
targetEnv: args.target,
|
|
295
295
|
envPath: args.env,
|
|
296
296
|
applyToProcess: false,
|
package/package.json
CHANGED
package/src/core.js
CHANGED
|
@@ -136,32 +136,30 @@ export function resolveTargetAliases(allowedEnvs) {
|
|
|
136
136
|
* @returns {string} - Resolved secret or empty string if not provided
|
|
137
137
|
*/
|
|
138
138
|
export function resolveSecret(secretParam) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
} else if (secretParam.startsWith("file://")) {
|
|
148
|
-
try {
|
|
149
|
-
const value = fs.readFileSync(secretParam.slice(7), "utf8").trim();
|
|
150
|
-
if (value) return value;
|
|
151
|
-
} catch (_) {
|
|
152
|
-
// fall through to env vars
|
|
153
|
-
}
|
|
154
|
-
} else {
|
|
155
|
-
try {
|
|
156
|
-
return fs.readFileSync(secretParam, "utf8").trim();
|
|
157
|
-
} catch (_) {
|
|
158
|
-
// Not a readable file path — treat as literal secret string
|
|
159
|
-
return secretParam;
|
|
160
|
-
}
|
|
139
|
+
const getDefault = (v = '') => v || process.env.WRENV_SECRET || process.env.TARGET_SECRET || "";
|
|
140
|
+
const getFromStream = (stream) => {
|
|
141
|
+
try {
|
|
142
|
+
const value = fs.readFileSync(stream, "utf8").trim();
|
|
143
|
+
return getDefault(value);
|
|
144
|
+
} catch (_) {
|
|
145
|
+
return getDefault();
|
|
161
146
|
}
|
|
162
147
|
}
|
|
148
|
+
const isFile = (f) => {
|
|
149
|
+
try {
|
|
150
|
+
return fs.statSync(f).isFile();
|
|
151
|
+
} catch (_) {
|
|
152
|
+
return false
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (secretParam === "stdin")
|
|
157
|
+
return getFromStream(0);
|
|
163
158
|
|
|
164
|
-
|
|
159
|
+
if ((secretParam || '').startsWith("file://"))
|
|
160
|
+
return getFromStream(secretParam.slice(7));
|
|
161
|
+
|
|
162
|
+
return getDefault(secretParam)
|
|
165
163
|
}
|
|
166
164
|
|
|
167
165
|
/**
|
|
@@ -286,8 +284,8 @@ function findMonorepoRoot(cwd, envPath) {
|
|
|
286
284
|
*/
|
|
287
285
|
export function loadEnvJson(options = {}) {
|
|
288
286
|
const {
|
|
289
|
-
secret: secretParam,
|
|
290
287
|
targetEnv: targetParam,
|
|
288
|
+
secret: secretParam,
|
|
291
289
|
envPath = ".env.json",
|
|
292
290
|
cwd = process.cwd(),
|
|
293
291
|
} = options;
|