mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Refactor: moves all the newVariables part to features/variables directory * Feature: adds datasource type * Tests: adds reducer tests * Tests: covers data source actions with tests * Chore: reduces strict null errors * boilerplate that will be replaced by real code. * added old editor template. * added initial version of ad hoc editor. * added working (apart from add) version of the editor. * Added placeholder for picker. * Have a working UI. Need to connect it so we refresh the variables on changes. * variable should be updated now. * removed console.log * made the url work. * cleaned up the adapter. * added possiblity to create filter directly from table. * moved infotext from general reducer to extended value of adhoc. * fixed strict null errors. * fixed strict null errors. * fixed issue where remove was displayed before being added. * fixed issue with fragment key. * changed so template_src is using the redux variables. * minor refactorings. * moved adhoc picker to adhoc variable. * adding tests for reducer and fixed bug. * added tests or urlparser. * added tests for ad hoc actions. * added more tests. * added more tests. * fixed strict null error. * fixed copy n pase error. * added utilit for getting new variable index. * removed console.log * added location to reducerTester type and created a module type for it. * changed so we only have one builder pattern. * fixed tests to use static expected values. * fixed strict errors. * fixed more strict errors. Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
26 lines
561 B
TypeScript
26 lines
561 B
TypeScript
import cloneDeep from 'lodash/cloneDeep';
|
|
import { VariableModel } from 'app/features/templating/variable';
|
|
|
|
export class VariableBuilder<T extends VariableModel> {
|
|
protected variable: T;
|
|
|
|
constructor(initialState: T) {
|
|
const { uuid, index, global, ...rest } = initialState;
|
|
this.variable = cloneDeep({ ...rest, name: rest.type }) as T;
|
|
}
|
|
|
|
withName(name: string) {
|
|
this.variable.name = name;
|
|
return this;
|
|
}
|
|
|
|
withUUID(uuid: string) {
|
|
this.variable.uuid = uuid;
|
|
return this;
|
|
}
|
|
|
|
build(): T {
|
|
return this.variable;
|
|
}
|
|
}
|