jsonnet-node-loader

A loader that allows Node.js to import Jsonnet settings from an ES Module file.


Project maintained by kamiazya Hosted on GitHub Pages — Theme by mattgraham

NodeCI License: MIT tested with jest code style: prettier PRs Welcome Open in Visual Studio Code

jsonnet-node-loader

A loader that allows Node.js to import Jsonnet settings from an ESModule file.

Features

Installation

If you’re using the npm or yarn CLI, then add the plugin by:

NPM

# yarn
$ yarn add -D jsonnet-node-loader
# or npm
$ npm install --save-dev jsonnet-node-loader

Usage

loader option

Specify jsonnet-node-loader in the loader option and execute the file.

Then, when the jsonnet file is imported, the evaluated value is returned.

$ node --experimental-loader jsonnet-node-loader example.mjs
{
  person1: { name: 'Alice', welcome: 'Hello Alice!' },
  person2: { name: 'Bob', welcome: 'Hello Bob!' }
}
example.mjs ```js import data from './example.jsonnet'; console.log(data); ```
example.jsonnet ```jsonnet { person1: { name: "Alice", welcome: "Hello " + self.name + "!", }, person2: self.person1 { name: "Bob" }, } ```

Advanced usage

When using std.extVar(x), query parameters can be specified and passed when importing vars.jsonnet.

vars.jsonnet ```jsonnet { vars: { foo: std.extVar('foo'), var: std.extVar('bar'), }, } ```
vars.mjs ```js import data from './vars.jsonnet?foo=1&bar=2'; console.log(data); // { vars: { foo: '1', var: '2' } } ```

</details>

License

This software is released under the MIT License, see LICENSE.