Redact JSON
Super small Deno library & CLI to redact JSON. Takes input over stdin, outputs over stdout. Doesn’t require any permissions.
deno install -qfn redact https://deno.land/x/redact_json/cli.ts
Using the CLI
The CLI can output some instructions, along with examples.
redact --help
POSIX Shell (macOS and Linux)
This sets the script’s stdin to the input file, and stdout to the output file.
redact < raw.json > redacted.json
PowerShell (Windows)
In PowerShell, you have to use a cmdlet to read the file and pipe it to the script.
Get-Content raw.json | redact > redacted.json
Using the library
There’s also a simple example that shows you the input and output.
deno run https://deno.land/x/redact_json/example.ts
Here’s a simple example that’s equivalent to the CLI examples above.
./raw.json
is read, redacted, and written to ./redacted.json
redact
is pure, and fully typed. It takes a JSONValue
and outputs a JSONValue
. It
won’t mutate the input value, but for various reasons, that can’t be enforced through
the type system (yet).
JSON.parse
returns JSONFile
, so that can help you with adding types to your
variables.
import { JSONFile, redact } from "https://deno.land/x/redact_json/mod.ts";
const text = await Deno.readTextFile("raw.json");
const json = JSON.parse(text) as JSONFile;
const redacted = redact(json);
const output = JSON.stringify(redacted);
await Deno.writeTextFile("redacted.json", output);