UNPKG

mume-with-litvis

Version:

Fork of mume with added http://litvis.org/

55 lines 2.25 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.toSVG = void 0; const vega_loader_1 = require("vega-loader"); const vega = require("vega"); const arrow = require("vega-loader-arrow"); const YAML = require("yamljs"); const utility = require("./utility"); (0, vega_loader_1.formats)("arrow", arrow); function renderVega(spec, baseURL) { return __awaiter(this, void 0, void 0, function* () { const svgHeader = '<?xml version="1.0" encoding="utf-8"?>\n' + '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ' + '"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'; if (baseURL && baseURL[baseURL.length - 1] !== "/") { baseURL += "/"; } const view = utility.allowUnsafe(() => new vega.View(vega.parse(spec), { loader: (0, vega_loader_1.loader)({ baseURL }), // logLevel: vega.Warn, // <= this will cause Atom unsafe eval error. renderer: "none", }).initialize()); return svgHeader + (yield view.toSVG()); }); } /** * Modifed from the `vg2svg` file. * @param spec The vega code. */ function toSVG(spec = "", baseURL = "") { return __awaiter(this, void 0, void 0, function* () { spec = spec.trim(); let d; if (spec[0] !== "{") { // yaml d = YAML.parse(spec); } else { // json d = JSON.parse(spec); } return renderVega(d, baseURL); }); } exports.toSVG = toSVG; //# sourceMappingURL=vega.js.map