UNPKG

kibana-123

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

49 lines (39 loc) 976 B
import { parse as parseUrl, format as formatUrl } from 'url'; class Loader { constructor({ name, query } = {}) { if (!name) { throw new Error('Loaders must define a name'); } this.name = name; this.query = query || {}; } static fromUrl(url) { const parsed = parseUrl(url, true); return new Loader({ name: parsed.pathname, query: parsed.query }); } toString() { return formatUrl({ pathname: this.name, query: this.query }); } setQueryParam(name, value) { this.query[name] = value; return this; } } function parseLoader(spec) { if (typeof spec === 'string') { return Loader.fromUrl(spec); } return new Loader(spec); } export const makeLoaderString = (loaders) => { return loaders.map(parseLoader).map(l => l.toString()).join('!'); }; export const setLoaderQueryParam = (loader, name, value) => { return parseLoader(loader).setQueryParam(name, value).toString(); };