Skip to content

Commit

Permalink
chore: refactor docs command (#2364)
Browse files Browse the repository at this point in the history
* chore: refactor docs command

* implement wrangler docs <comand>

* Create kind-students-doubt.md

* Update kind-students-doubt.md

* Update index.test.ts
  • Loading branch information
rozenmd authored Dec 9, 2022
1 parent 8173bcc commit 4bdb1f6
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 16 deletions.
7 changes: 7 additions & 0 deletions .changeset/kind-students-doubt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"wrangler": patch
---

fix: implement `wrangler docs <command>`

closes #2359
4 changes: 2 additions & 2 deletions packages/wrangler/src/__tests__/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe("wrangler", () => {
"wrangler
Commands:
wrangler docs 📚 Open wrangler's docs in your browser
wrangler docs [command] 📚 Open wrangler's docs in your browser
wrangler init [name] 📥 Create a wrangler.toml configuration file
wrangler dev [script] 👂 Start a local server for developing your worker
wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
Expand Down Expand Up @@ -78,7 +78,7 @@ describe("wrangler", () => {
wrangler
Commands:
wrangler docs 📚 Open wrangler's docs in your browser
wrangler docs [command] 📚 Open wrangler's docs in your browser
wrangler init [name] 📥 Create a wrangler.toml configuration file
wrangler dev [script] 👂 Start a local server for developing your worker
wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
Expand Down
94 changes: 94 additions & 0 deletions packages/wrangler/src/docs/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import { printWranglerBanner } from "..";
import { readConfig } from "../config";
import { logger } from "../logger";
import * as metrics from "../metrics";
import openInBrowser from "../open-in-browser";

import type {
CommonYargsOptions,
YargsOptionsToInterface,
} from "../yargs-types";
import type { ArgumentsCamelCase, Argv } from "yargs";

const argToUrlHash = {
init: "init",
generate: "generate",
dev: "dev",
publish: "publish",
delete: "delete",
"kv:namespace": "kvnamespace",
"kv:key": "kvkey",
"kv:bulk": "kvbulk",
"r2 bucket": "r2-bucket",
"r2 object": "r2-object",
secret: "secret",
"secret:bulk": "secretbulk",
tail: "tail",
pages: "pages",
login: "login",
logout: "logout",
whoami: "whoami",
types: "types",
deployments: "deployments",
};

export function docsOptions(yargs: Argv<CommonYargsOptions>) {
return yargs.positional("command", {
describe: "Enter the wrangler command you want to know more about",
type: "string",
// requiresArg: true,
choices: [
"init",
"dev",
"publish",
"delete",
"tail",
"secret",
"secret:bulk",
"kv:namespace",
"kv:key",
"kv:bulk",
"pages",
// "queues", //TODO: Undocumented
"r2 object",
"r2 bucket",
// "dispatch-namespace", // TODO: Undocumented - Workers for Platforms
// "d1", //TODO: Undocumented
// "pubsub", //TODO: Undocumented
"login",
"logout",
"whoami",
"types",
"deployments",
"api",
],
});
}

type DocsArgs = YargsOptionsToInterface<typeof docsOptions>;

function isValidParam(k: string): k is keyof typeof argToUrlHash {
return k in argToUrlHash;
}

export async function docsHandler(args: ArgumentsCamelCase<DocsArgs>) {
let urlToOpen =
"https://developers.cloudflare.com/workers/wrangler/commands/";

if (args.command === "api") {
//if api, take them to the API docs
urlToOpen = "https://developers.cloudflare.com/workers/wrangler/api/";
} else if (args.command && isValidParam(args.command)) {
//otherwise, they get the wrangler commands page
urlToOpen += `#${argToUrlHash[args.command]}`;
}

await printWranglerBanner();

logger.log(`Opening a link in your default browser: ${urlToOpen}`);
await openInBrowser(urlToOpen);
const config = readConfig(undefined, {});
await metrics.sendMetricsEvent("view docs", {
sendMetrics: config.send_metrics,
});
}
18 changes: 4 additions & 14 deletions packages/wrangler/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ import {
} from "./deprecated";
import { devHandler, devOptions } from "./dev";
import { workerNamespaceCommands } from "./dispatch-namespace";
import { docsHandler, docsOptions } from "./docs";
import { initHandler, initOptions } from "./init";
import { kvNamespace, kvKey, kvBulk } from "./kv";
import { logBuildFailure, logger } from "./logger";
import * as metrics from "./metrics";
import openInBrowser from "./open-in-browser";
import { pages } from "./pages";
import { formatMessage, ParseError } from "./parse";
import { publishOptions, publishHandler } from "./publish";
Expand Down Expand Up @@ -277,20 +277,10 @@ export function createCLIParser(argv: string[]) {

// docs
wrangler.command(
"docs",
"docs [command]",
"📚 Open wrangler's docs in your browser",
() => {},
async () => {
await printWranglerBanner();
const urlToOpen =
"https://developers.cloudflare.com/workers/wrangler/commands/";
logger.log(`Opening a link in your default browser: ${urlToOpen}`);
await openInBrowser(urlToOpen);
const config = readConfig(undefined, {});
await metrics.sendMetricsEvent("view docs", {
sendMetrics: config.send_metrics,
});
}
docsOptions,
docsHandler
);

// init
Expand Down

0 comments on commit 4bdb1f6

Please sign in to comment.