cuelang-js

CUE for node.js & browser

Usage no npm install needed!

<script type="module">
  import cuelangJs from 'https://cdn.skypack.dev/cuelang-js';
</script>

README

cuelang-js

CUE for node.js & browser using WASM. Supports all commands of the CUE CLI.

  • CUE: v0.4.0-beta.1
  • Built with Go: 1.15.6

Install

npm install cuelang-js --save

Usage node.js

In node.js .cue files are loaded from the local file system.

import cue from 'cuelang-js'

const result = await cue('export', ['/path/to/your.cue'], {"--out": "json"})

Usage browser

In browser .cue files are loaded via memfs. Write your files to memfs before executing a command.

import cue, { memfs } from 'cuelang-js'

await memfs.writeFileSync('/your.cue', 'hello: "world"');
const result = await cue('export', ['/your.cue'], {"--out": "json"})

Imports

For external imports CUE will check the current working directory for a cue.mod directory.

Given the following import CUE will attempt to import from ./cue.mod/pkg/example/test

import (
    "example.com/test"
)

In the browser the current working directory path is root (/) use memfs to write your external package to the expected paths.

await memfs.mkdirSync('/cue.mod/pkg/example.com/test', { recursive: true })
await memfs.writeFileSync('/cue.mod/pkg/example.com/test/test.cue', 'package test\nmessage: "I was imported!"')

Version tracking

CUE cuelang-js
v0.4.0-beta.1 1.3.0
v0.3.2 1.2.0

Updating CUE

Feel free to PR if the CUE version needs bumping.

  1. In package.json update CUE_VERSION and run npm run build:wasm.
  2. Update CUE version at the top of this document
  3. Add new version to the version tracking table above.

Learning Resources