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.tsUsing the CLI
The CLI can output some instructions, along with examples.
redact --helpPOSIX Shell (macOS and Linux)
This sets the scriptās stdin to the input file, and stdout to the output file.
redact < raw.json > redacted.jsonPowerShell (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.jsonUsing the library
Thereās also a simple example that shows you the input and output.
deno run https://deno.land/x/redact_json/example.tsHereā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);