execli
Version:
Generate task-oriented CLIs declaratively
46 lines • 1.49 kB
JavaScript
export const getUserContext = (context) => {
const {
// @ts-expect-error: Private.
$0: _0,
// @ts-expect-error: Private.
_: _1,
// @ts-expect-error: Private.
"dry-run": _2, dryRun, from, only, secrets, skip, tag, until, ...userContext } = context;
// @ts-expect-error: The context has been stripped of the private properties.
return userContext;
};
export const createContextHolder = (initialContext) => {
let context = { ...initialContext, secrets: initialContext.secrets || [] };
const contextHolder = {
add(addedContext) {
const { debug: _debug, ...cleanedAddedContext } = getUserContext(
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
addedContext);
context = {
...context,
...cleanedAddedContext,
};
},
addSecret(secret) {
context = { ...context, secrets: [...context.secrets, secret] };
},
copy() {
return createContextHolder(context);
},
get() {
return context;
},
};
return contextHolder;
};
export const hideSecrets = ({ secrets }, text) => {
let safeText = text;
for (const secret of secrets) {
safeText = safeText
.split(secret)
.join("*".repeat(Math.min(20, secret.length)));
}
return safeText;
};
//# sourceMappingURL=context.js.map