34 lines
825 B
JavaScript

/* eslint-disable @typescript-eslint/naming-convention */
const renderAny = require('wavedrom/lib/render-any');
const onmlStringify = require('onml/stringify.js');
const darkSkin = require('wavedrom/skins/dark');
const lightSkin = require('wavedrom/skins/default');
function selectSkin(skin) {
if (skin === 'dark') {
return darkSkin;
} else if (skin === 'light') {
return lightSkin;
}
return darkSkin;
}
/**
*
* @param {number} id
* @param {any} json
* @param {any} style 'dark' or 'light'
* @returns {string}
*/
function renderWaveDrom(id, json, style) {
const skin = selectSkin(style);
const renderObj = renderAny(id, json, skin);
const svgString = onmlStringify(renderObj);
return svgString;
}
const Wavedrom = {
renderWaveDrom
};
module.exports = Wavedrom;