mirror of
https://github.com/grafana/grafana.git
synced 2025-09-29 08:34:02 +08:00

* Variables: move state tree into a keyed state * Update public/app/features/variables/state/transactionReducer.ts Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com> * Chore: fix prettier error * Chore: renamed slices and lastUid * Chore: rename toUidAction * Chore: rename dashboardVariableReducer * Chore: rename state prop back to templating * Chore renames variable.dashboardUid * Chore: rename toDashboardVariableIdentifier * Chore: rename getDashboardVariable * Chore: rename getDashboardVariablesState * Chore: rename getDashboardVariables * Chore: some more renames * Chore: small clean up * Chore: small rename * Chore: removes unused function * Chore: rename VariableModel.stateKey * Chore: rename KeyedVariableIdentifier.stateKey * user essentials mob! 🔱 * user essentials mob! 🔱 * user essentials mob! 🔱 * user essentials mob! 🔱 Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com> Co-authored-by: kay delaney <kay@grafana.com> Co-authored-by: Alexandra Vargas <alexa1866@gmail.com> Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
31 lines
635 B
TypeScript
31 lines
635 B
TypeScript
import { cloneDeep } from 'lodash';
|
|
import { VariableModel } from 'app/features/variables/types';
|
|
|
|
export class VariableBuilder<T extends VariableModel> {
|
|
protected variable: T;
|
|
|
|
constructor(initialState: T) {
|
|
const { id, index, global, ...rest } = initialState;
|
|
this.variable = cloneDeep({ ...rest, name: rest.type }) as T;
|
|
}
|
|
|
|
withName(name: string) {
|
|
this.variable.name = name;
|
|
return this;
|
|
}
|
|
|
|
withId(id: string) {
|
|
this.variable.id = id;
|
|
return this;
|
|
}
|
|
|
|
withRootStateKey(key: string) {
|
|
this.variable.rootStateKey = key;
|
|
return this;
|
|
}
|
|
|
|
build(): T {
|
|
return this.variable;
|
|
}
|
|
}
|