From e8fb41f01589c42d2b98912d0d8f2df20fbb9213 Mon Sep 17 00:00:00 2001 From: Benjamin Fischer Date: Sun, 9 May 2021 13:58:44 +0200 Subject: [PATCH] feat: add global parseFlags method --- deps.ts | 5 +++++ dzx.ts | 3 ++- mod.ts | 3 ++- src/parse_flags.ts | 11 +++++++++++ types.d.ts | 16 +++++++++++++++- 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 src/parse_flags.ts diff --git a/deps.ts b/deps.ts index 3877ef7..39bf252 100644 --- a/deps.ts +++ b/deps.ts @@ -2,3 +2,8 @@ export { join } from "https://deno.land/std@0.95.0/path/mod.ts"; export { colors } from "https://deno.land/x/cliffy@v0.18.2/ansi/colors.ts"; export { iter, readAll } from "https://deno.land/std@0.95.0/io/util.ts"; export { default as escapeStr } from "https://esm.sh/shq@1.0.2"; +export { parse as parseFlags } from "https://deno.land/std@0.95.0/flags/mod.ts"; +export type { + ArgParsingOptions, + Args, +} from "https://deno.land/std@0.95.0/flags/mod.ts"; diff --git a/dzx.ts b/dzx.ts index f4a574f..590db83 100755 --- a/dzx.ts +++ b/dzx.ts @@ -1,12 +1,13 @@ /// import { join, readAll } from "./deps.ts"; -import { $, cd, quote } from "./mod.ts"; +import { $, cd, parseFlags, quote } from "./mod.ts"; import { error } from "./src/_utils.ts"; window.$ = $; window.cd = cd; window.quote = quote; +window.parseFlags = parseFlags; const script: string | undefined = Deno.args[0]; diff --git a/mod.ts b/mod.ts index 8470b5b..06b3bde 100644 --- a/mod.ts +++ b/mod.ts @@ -2,6 +2,7 @@ import { colors, escapeStr } from "./deps.ts"; import { cd } from "./src/cd.ts"; import { exec } from "./src/exec.ts"; import { quote } from "./src/quote.ts"; +import { parseFlags } from "./src/parse_flags.ts"; export type $ = typeof exec & typeof colors & { verbose: boolean; @@ -22,4 +23,4 @@ $.cwd = Deno.cwd(); $.quote = escapeStr; $.throwErors = false; -export { cd, quote }; +export { cd, parseFlags, quote }; diff --git a/src/parse_flags.ts b/src/parse_flags.ts new file mode 100644 index 0000000..7b48ce6 --- /dev/null +++ b/src/parse_flags.ts @@ -0,0 +1,11 @@ +import { ArgParsingOptions, Args, parseFlags as _parseFlags } from "../deps.ts"; + +export function parseFlags( + args: Array, + options?: ArgParsingOptions, +): Args { + if ($.verbose) { + console.log($.brightMagenta(">_ %s"), args.join(" ")); + } + return _parseFlags(args, options); +} diff --git a/types.d.ts b/types.d.ts index 26e5e46..8bf5a68 100755 --- a/types.d.ts +++ b/types.d.ts @@ -1,13 +1,27 @@ -import type { $, cd as _cd, quote as _quote } from "./mod.ts"; +import type { + $, + cd as _cd, + parseFlags as _parseFlags, + quote as _quote, +} from "./mod.ts"; +import type { + ArgParsingOptions as _ArgParsingOptions, + Args as _Args, +} from "./deps.ts"; declare global { const $: $; const cd: typeof _cd; const quote: typeof _quote; + const parseFlags: typeof _parseFlags; + + type ArgParsingOptions = _ArgParsingOptions; + type Args = _Args; interface Window { $: $; cd: typeof _cd; quote: typeof _quote; + parseFlags: typeof _parseFlags; } }