@salesforce/plugin-release-management
Version:
A plugin for preparing and publishing npm packages
57 lines • 1.69 kB
JavaScript
/*
* Copyright (c) 2020, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import { Env } from '@salesforce/kit';
const DEPENDENCIES = [
{
name: 'AWS_ACCESS_KEY_ID',
type: 'env',
condition: (flags) => !!flags.sign,
},
{
name: 'AWS_SECRET_ACCESS_KEY',
type: 'env',
condition: (flags) => !!flags.sign,
},
{
name: 'NPM_TOKEN',
type: 'env',
condition: (flags) => !flags.dryrun,
},
{
name: 'GH_TOKEN',
type: 'env',
condition: (flags) => !!flags.githubrelease,
},
];
/**
*
* @param args that flags being validated
* @param depFilter a filter function that runs on the above DEPENDENCIES
* @param condition a function that runs on the args
* @returns
*/
export function verifyDependencies(args, depFilter = (dep) => !!dep, condition = (a) => !!a && false) {
const env = new Env();
const results = [];
for (const dep of DEPENDENCIES.filter(depFilter)) {
const result = {
name: dep.name,
type: dep.type,
passed: true,
};
if (condition(args) || dep.condition?.(args)) {
result.passed = !!env.getString(dep.name);
if (!result.passed) {
result.message = `Set ${dep.name} environment variable`;
}
}
results.push(result);
}
const failures = results.filter((r) => r.passed === false).length;
return { failures, results };
}
//# sourceMappingURL=dependencies.js.map