draco-vis

Draco on the web.

Usage no npm install needed!

<script type="module">
  import dracoVis from 'https://cdn.skypack.dev/draco-vis';
</script>

README

Draco-Vis

npm version Build Status

A module for Draco on the web, written in Typescript. Learn more about Draco at https://uwdata.github.io/draco/.

Note that we use Emscripten to compile the Clingo constraint solver to WebAssembly so it runs inside your browser.

Installation

Install with yarn add draco-vis. See it in action on Observable at https://beta.observablehq.com/@domoritz/hello-draco.

API

Draco-Vis exports the Draco-Core API. In addition, it exposes the Draco object.

new Draco (updateStatus?: (text: string) => void, url?: string)

Constructs a Draco object. updateStatus is a callback used to log module status updates, defaulting to console.log. url may point to the base path of the hosting server, where '/clingo.js' from the package wasmclingo should rest, defaulting to the unpkg url of wasmclingo (you may want to specify your own server if speed is of priority).

draco.init (): Promise

Initializes Draco's solver, returning a Promise that will resolve once initialization completes.

draco.solve (program: string, options?: Option): SolutionSet

Solves the given Draco ASP program. Returns a SolutionSet if satisfiable.

draco.prepareData (data: any[])

Ingests the given data (a list of dictionaries), automatically parsing it for fields and datatypes, as well as various statistics.

draco.getSchema (): Schema

Returns the data Schema of this (will be null if prepareData has not yet been called).

draco.updateAsp (aspSet: {[s: string]: string})

Updates the constraints / programs of this.

draco.getConstraintSet (): ConstraintSet

Returns the ConstraintSet backing this.

Run locally

Run yarn to install dependencies. Then run yarn start.

Run yarn test to test the module.

Run yarn format to format the code.