
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
noarg is a lightweight Node.js package designed to simplify command-line argument parsing for CLI applications. With noarg, you can effortlessly define and parse command-line arguments and options, making it easier to build robust and user-friendly command-line interfaces.
required, optional, and list arguments with ease.help and usage documentation.app (program) <required arguments> <optional arguments> ...<list arguments> [options] [ignored arguments]
To install noarg package, you can use npm:
npm install noarg
You can import noarg into your Node.js application as follows:
import NoArg, { t } from 'noarg'
You can create a command with noarg.create() method. Each command can have its own set of options, arguments, and configurations.
const app = NoArg.create(commandName, commandConfig).on(commandHandler)
commandName: Name of the command.commandConfig: Configuration object for the command.commandHandler: Function to handle the command execution.import NoArg from 'noarg'
const app = NoArg.create('app', {
description: 'This is a test program',
flags: {
config: NoArg.string().ask('Where is the config?'),
},
arguments: [
{ name: 'arg-1', type: NoArg.number() },
{ name: 'arg-2', type: NoArg.boolean() },
{ name: 'arg-3', type: NoArg.string() },
],
optionalArguments: [
{ name: 'arg-4', type: NoArg.string() },
{ name: 'arg-5', type: NoArg.boolean() },
],
listArgument: {
name: 'args',
type: NoArg.string(),
minLength: 1,
maxLength: 3,
},
trailingArguments: '--',
config: {},
system: {},
}).on(([arg1, arg2, arg3, optArg4, optArg5, listArg, trailingArgs], flags) => {
console.log({ arg1, arg2, arg3, optArg4, optArg5, listArg, trailingArgs })
console.log(flags)
})
node app.js arg-1 arg-2 arg-3 optional-arg-1 listArg-1 listArg-2 --config config.json
NoArg.string(): Defines an option of type string.NoArg.number(): Defines an option of type number.NoArg.boolean(): Defines an option of type boolean.NoArg.array(): Defines an option of type array. (Only available for options)NoArg.tuple(): Defines an option of type tuple. (Only available for options)import NoArg from 'noarg'
const app = NoArg.create('app', {})
const listArguments = {
name: 'list',
type: NoArg.boolean(),
} as const
const config = NoArg.defineConfig({
arguments: [{ name: 'arg1', type: NoArg.string() }],
optionalArguments: [{ name: 'optArg1', type: NoArg.string() }],
flags: { hobbies: NoArg.array(NoArg.string()) },
listArguments,
})
app.create('dev', config)
app.create('build', config)
import NoArg from 'noarg'
NoArg.colors.enable()
NoArg.colors.disable()
// By default it's enabled
--help-usage flag.node app.js --help
node app.js --help-usage
noarg simplifies the process of parsing command-line arguments for Node.js applications. With its intuitive API and powerful features, you can easily build CLI applications with robust argument handling.
FAQs
### Introduction
The npm package noarg receives a total of 14 weekly downloads. As such, noarg popularity was classified as not popular.
We found that noarg demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.