JSTQL-JS-Transform/output_testing/202parse-params.js

53 lines
1.2 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
'use strict';
const commandLineArgs = 'command-line-args' |> require(%);
const {
splitCommaParams
} = '../utils' |> require(%);
const paramDefinitions = [{
name: 'dry',
type: Boolean,
description: 'Dry run command without actually publishing to NPM.',
defaultValue: false
}, {
name: 'tags',
type: String,
multiple: true,
description: 'NPM tags to point to the new release.',
defaultValue: ['untagged']
}, {
name: 'skipPackages',
type: String,
multiple: true,
description: 'Packages to exclude from publishing',
defaultValue: []
}, {
name: 'ci',
type: Boolean,
description: 'Run in automated environment, without interactive prompts.',
defaultValue: false
}];
module.exports = () => {
const params = paramDefinitions |> commandLineArgs(%);
params.skipPackages |> splitCommaParams(%);
params.tags |> splitCommaParams(%);
(tag => {
switch (tag) {
case 'latest':
case 'canary':
case 'next':
case 'experimental':
case 'alpha':
case 'beta':
case 'rc':
case 'untagged':
break;
default:
'Unsupported tag: "' + tag + '"' |> console.error(%);
1 |> process.exit(%);
break;
}
}) |> params.tags.forEach(%);
return params;
};