-
Notifications
You must be signed in to change notification settings - Fork 724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(wrangler): enforce single value on non-array arguments #7005
Conversation
🦋 Changeset detectedLatest commit: 18b523b The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
A wrangler prerelease is available for testing. You can install this latest build in your project with: npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-wrangler-7005 You can reference the automatically updated head of this PR with: npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/7005/npm-package-wrangler-7005 Or you can use npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-wrangler-7005 dev path/to/script.js Additional artifacts:npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-create-cloudflare-7005 --no-auto-update npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-cloudflare-kv-asset-handler-7005 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-miniflare-7005 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-cloudflare-pages-shared-7005 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-cloudflare-vitest-pool-workers-7005 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-cloudflare-workers-editor-shared-7005 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11458507774/npm-package-cloudflare-workers-shared-7005 Note that these links will no longer work once the GitHub Actions artifact expires.
Please ensure constraints are pinned, and |
7864a86
to
4c27cf8
Compare
// Yargs offers an `array: true` option that will always coerces the value to an array | ||
// e.g. `--name foo` becomes `{ name: ["foo"] }` instead of `{ name: "foo" }` | ||
// However, non-array arguments can still receives multiple values | ||
// e.g. `--name foo --name bar` becomes `{ name: ["foo", "bar"] }` regardless of the `array` setting | ||
// @see https://github.com/yargs/yargs/issues/1318 | ||
for (const [key, opt] of Object.entries(def.args)) { | ||
if (!opt.array) { | ||
yargs.check(demandSingleValue(key)); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good stuff! This util is intended for us to be more opinionated than yargs 👏
4bf4f4b
to
9386d88
Compare
}; | ||
} | ||
|
||
export class CommandLineArgsError extends UserError {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I moved it to errors.ts
since both demandOneOfOption
and demandSingleValue
need this error class.
abc064e
to
c1d4738
Compare
c1d4738
to
18b523b
Compare
What this PR solves / how to test
Fixes n/a
Author has addressed the following