-
-
Notifications
You must be signed in to change notification settings - Fork 616
fix: allow custom redocly file using --redocly #2548
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: allow custom redocly file using --redocly #2548
Conversation
👷 Deploy request for openapi-ts pending review.Visit the deploys page to approve it
|
🦋 Changeset detectedLatest commit: d67d384 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 |
|
@drwpow or another maintainer, any chance I can get a review on this? |
duncanbeevers
left a comment
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.
This looks good to me, though you might consider extracting this new, slightly-more-complicated config-finding functionality to a helper function.
const input = flags._[0];
// load Redocly config (respect explicit --redocly path if provided)
function findRedocConfigPath() {
if (!flags.redocly) return findConfig();
const explicitPath = path.resolve(flags.redocly);
if (!fs.existsSync(explicitPath)) return undefined;
const stat = fs.statSync(explicitPath);
return stat.isDirectory() ? findConfig(explicitPath) : explicitPath;
}
const redocConfigPath = findRedocConfigPath();
if (flags.redocly && !redocConfigPath) {
errorAndExit(`Redocly config not found at: ${flags.redocly}`);
}
const redocly = redocConfigPath
? await loadConfig({ configPath: redocConfigPath })
: await createConfig({}, { extends: ["minimal"] });|
Thanks for the suggestion @duncanbeevers - much clearer! Does @kerwanp need to review to get this merged? |
Changes
Resolves #2190 in which the CLI hangs when specifying a different path for
redocly.yamlusing the--redoclyCLI flag. We've got severalredocly.yamlfiles so this fix is necessary for us.The old code only called
findConfigon thedirname()of the argument you passed, looking for aredocly.yamlin that directory - so it wasn't looking for the file path you specified on the command line. In addition, when it couldn't find a path, it silently fell back to a minimal config waiting on input with a valid config.Now it looks for either
redocly.yamlfile in the directory you've specified (old behavior), orand has clear error messages when it can't be found.
How to Review
Run the new test, or:
Happy path
Failure path
Checklist
docs/updated (if necessary)pnpm run update:examplesrun (only applicable for openapi-typescript)ERR_PNPM_NO_SCRIPT Missing script: update:examples