virool-pivot
Version:
A web-based exploratory visualization UI for Druid.io
125 lines (118 loc) • 2.91 kB
text/typescript
import { $, Executor, Dataset, basicExecutorFactory } from 'plywood';
import { DataSource, DataSourceJS } from './data-source';
var executor = basicExecutorFactory({
datasets: {
wiki: Dataset.fromJS([]),
twitter: Dataset.fromJS([])
}
});
export class DataSourceMock {
public static get WIKI_JS(): DataSourceJS {
return {
name: 'wiki',
title: 'Wiki',
engine: 'druid',
source: 'wiki',
subsetFilter: null,
introspection: 'none',
attributes: [
{ name: 'time', type: 'TIME' },
{ name: 'articleName', type: 'STRING' },
{ name: 'count', type: 'NUMBER', unsplitable: true, makerAction: { action: 'count' } }
],
dimensions: [
{
expression: {
name: 'time',
op: 'ref'
},
kind: 'time',
name: 'time',
title: 'Time'
},
{
expression: {
name: 'articleName',
op: 'ref'
},
kind: 'string',
name: 'articleName',
title: 'Article Name'
}
],
measures: [
{
name: 'count',
title: 'count',
expression: $('main').sum('$count').toJS()
}
],
timeAttribute: 'time',
defaultTimezone: 'Etc/UTC',
defaultFilter: { op: 'literal', value: true },
defaultDuration: 'P3D',
defaultSortMeasure: 'count',
defaultPinnedDimensions: ['articleName'],
refreshRule: {
time: new Date('2016-04-30T12:39:51.350Z'),
rule: "fixed"
}
};
}
public static get TWITTER_JS(): DataSourceJS {
return {
name: 'twitter',
title: 'Twitter',
engine: 'druid',
source: 'twitter',
subsetFilter: null,
introspection: 'none',
dimensions: [
{
expression: {
name: 'time',
op: 'ref'
},
kind: 'time',
name: 'time',
title: 'Time'
},
{
expression: {
name: 'twitterHandle',
op: 'ref'
},
kind: 'string',
name: 'twitterHandle',
title: 'Twitter Handle'
}
],
measures: [
{
name: 'count',
title: 'count',
expression: {
name: 'count',
op: 'ref'
}
}
],
timeAttribute: 'time',
defaultTimezone: 'Etc/UTC',
defaultFilter: { op: 'literal', value: true },
defaultDuration: 'P3D',
defaultSortMeasure: 'count',
defaultPinnedDimensions: ['tweet'],
refreshRule: {
refresh: "PT1M",
rule: "fixed"
}
};
}
static wiki() {
return DataSource.fromJS(DataSourceMock.WIKI_JS, { executor });
}
static twitter() {
return DataSource.fromJS(DataSourceMock.TWITTER_JS, { executor });
}
}