Skip to content

pedropalhari/nq

Repository files navigation

⚡️ nq

nq is a batteries included tool to map JSON!

  • TIP: for best usage and autocomplete, make sure VSCode is accessible through code on your bash.

🎥 Preview

image info

📝 Examples

  • Installing globally
npm i -g @palhari/nq

echo '{ "users": [{ "name": "pedro" }, { "name": "palhari" }]}' | nq

# or also
nq <file>
  • Using npx
echo '{ "users": [{ "name": "pedro" }, { "name": "palhari" }]}' | npx @palhari/nq

# or also
npx @palhari/nq <file>

🤔 How to use it

  • You invoke nq on a JSON of choice.
  • A VSCode window appears with a default exported function.
  • The function has a parameter, json. The parameter has autocomplete from the input JSON.
  • Close the VSCode tab, the function runs.

⚙️ Options

  • -n, open in a new VSCode instance

🧠 Motivation

I'm a very big fan of jq. Unfortunately, I'm as much equally dumb to use it.

I really really like autocompletion. Besides strict typechecking it's a must, specially in small scripts you're tinkering with. Making sense of data needs to be visual and comprehensible.

My aim is to bring a little bit of that here.

Acknowledgments

There are two big main libraries that this project heavily depends on, tsm and json-to-ts. tsm is used to provide the runtime with a fast transpiler for the typescript function and json-to-ts is used to generate types from the input JSON. Be sure to check them out as they're really powerful on their own.

Also, nanoid is used for the file names.

About

⚡️ Batteries included JSON mapper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published