diff options
Diffstat (limited to 'ui/src/plugins/dev.perfetto.ExampleState/index.ts')
-rw-r--r-- | ui/src/plugins/dev.perfetto.ExampleState/index.ts | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ui/src/plugins/dev.perfetto.ExampleState/index.ts b/ui/src/plugins/dev.perfetto.ExampleState/index.ts index 4303419db..ca7779ed1 100644 --- a/ui/src/plugins/dev.perfetto.ExampleState/index.ts +++ b/ui/src/plugins/dev.perfetto.ExampleState/index.ts @@ -27,12 +27,13 @@ interface State { // This example plugin shows using state that is persisted in the // permalink. class ExampleState implements Plugin<State> { - migrate(_initialState: unknown): State { - // TODO(hjd): Show validation example. - - return { - counter: 0, - }; + migrate(initialState: unknown): State { + if (initialState && typeof initialState === 'object' && + 'counter' in initialState && typeof initialState.counter === 'number') { + return {counter: initialState.counter}; + } else { + return {counter: 0}; + } } onActivate(_: PluginContext): void { @@ -56,7 +57,7 @@ class ExampleState implements Plugin<State> { } } -export const plugin: PluginInfo = { +export const plugin: PluginInfo<State> = { pluginId: 'dev.perfetto.ExampleState', plugin: ExampleState, }; |