jsonnet-node-loader
A loader that allows Node.js to import Jsonnet settings from an ESModule file.
Features
- Support importing
.jsonnet
file
Installation
If you're using the npm or yarn CLI, then add the plugin by:
$ yarn add -D jsonnet-node-loader
$ 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
import data from './example.jsonnet';
console.log(data);
example.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
{
vars: {
foo: std.extVar('foo'),
var: std.extVar('bar'),
},
}
vars.mjs
import data from './vars.jsonnet?foo=1&bar=2';
console.log(data);
License
This software is released under the MIT License, see LICENSE.