@rixthetyrunt/baseh
v1.0.1
Published
a base-64 alternative which makes encoded data look like some GOOFY held down h (and friends) down a keyboard a bunch.
Readme
baseh.js
a base-64 alternative which makes encoded data look like some GOOFY held down h (and friends) down a keyboard a bunch. and maybe even added some... exclamation marks?
usage
you have two ways to use this package, though the latter is only for encoding.
1st way: calling
you can call the export from require("@rixthetyrunt/baseh") with a string/buffer/whatever-Buffer.from-supports to either encode or decode.
you only need to pass the object to encode/decode.
the package will try to decode first, but if that fails, it encodes instead.
2nd way: streaming
yup, that's right, the first ever package i ever made that supports streaming!
here's an example:
require("fs").createReadStream("input.png").pipe(require("@rixthetyrunt/baseh")).pipe(require("fs").createWriteStream("output.baseh"))as you can see, the baseh package is a function, but with EventEmitter-like methods tacked on. you know whats the best part? the package's streamer is reusable!
meaning, you can call that above example however much you'd like. you can stuff it with http requests, pngs, json, even more pngs, and nothing would explode!
though be warned, this method might not work for every single use case you can imagine.
here's another example from the node repl:
> baseh = require("@rixthetyrunt/baseh")
[Function: baseh] {
on: [Function: on],
once: [Function: once],
emit: [Function: emit],
write: [Function: write],
end: [Function: end],
pipe: [Function: pipe],
removeListener: [Function: removeListener]
}
> baseh("Hello, world!")
'iihkiJJjIIhkKjJjHhhKIJJKIjjkkHjjHhi!!'
> new Readable({read(){[this.push("H"),this.push("e"),this.push("l"),this.push("l"),this.push("o"),this.push(","),this.push(" "),this.push("world!"),this.push(null)]}}).pipe(baseh).pipe(process.stdout)
undefined
> iihkiJJjIIhkKjJjHhhKIJJKIjjkkHjjHhi!!
> (note that piping is async for some reason)
why
i was intrigued by how complicated base64 looks, yet under the hood it was just "binary to index on an alphabet".
so i did exactly that, BUT i made it with my own flair!
