cql2-wasm
v0.5.3
Published
WASM interface for Common Query Language (CQL2)
Downloads
27
Readme
cql2-wasm
A small WebAssembly module for parsing and translating CQL2.
Usage
Add to your project:
npm i cql2-wasmThen:
import { CQL2 } from 'cql2-wasm'
const cql2 = new CQL2('collection = foo')
// Parse and display results
console.log('is_valid():', cql2.is_valid())
console.log('to_json():', cql2.to_json())
console.log('to_text():', cql2.to_text())Building
Get wasm-pack. Then (from the top-level directory in this repo):
scripts/buildwasmYou can then preview our WASM playground locally. Get uv, then:
uv sync
uv run mkdocs serveThe playground will be available at http://127.0.0.1:8000/cql2-rs/playground/. There is a live version available at http://developmentseed.org/cql2-rs/latest/playground/.
Testing
This package includes two types of tests:
Rust Unit Tests
Unit tests are written in tests/common/mod.rs and support execution in various environments.
[!NOTE] All demonstrated commands are to be run from the root of the repository
Firefox
Run tests/web.rs browser tests in a WASM environment using wasm-bindgen-test:
wasm-pack test --firefox wasmThen, open http://127.0.0.1:8000/ to see the test(s) run.
Node
Run tests/node.rs browser tests in a WASM environment using wasm-bindgen-test:
wasm-pack test --node wasmJavaScript Integration Tests
These tests are written in JavaScript and verify the actual JavaScript API surface that developers will use. The tests work with both nodejs and web targets:
# Test with nodejs target
wasm-pack build --target nodejs wasm
npm --prefix wasm test
# Test with web target
wasm-pack build --target web wasm
npm --prefix wasm test