diff --git a/src/client/stores/dictionary.ts b/src/client/stores/dictionary.ts index 6599ee2..a00bdab 100644 --- a/src/client/stores/dictionary.ts +++ b/src/client/stores/dictionary.ts @@ -1,9 +1,10 @@ +import { LocaleDictionary } from './../types/index' import { writable, derived } from 'svelte/store' import merge from 'deepmerge' -let dictionary: Record> +let dictionary: LocaleDictionary -const $dictionary = writable({}) +const $dictionary = writable({}) $dictionary.subscribe(newDictionary => { dictionary = newDictionary }) @@ -16,11 +17,9 @@ function hasLocaleDictionary(locale: string) { return locale in dictionary } -function addMessagesTo(locale: string, ...partials: any[]) { +function addMessagesTo(locale: string, ...partials: LocaleDictionary[]) { $dictionary.update(d => { - dictionary[locale] = merge.all( - [dictionary[locale] || {}].concat(partials) - ) + dictionary[locale] = merge.all([dictionary[locale] || {}].concat(partials)) return d }) } diff --git a/src/client/types/index.ts b/src/client/types/index.ts index 5e2d787..7fccda3 100644 --- a/src/client/types/index.ts +++ b/src/client/types/index.ts @@ -1,3 +1,7 @@ +export interface LocaleDictionary { + [key: string]: LocaleDictionary | LocaleDictionary[] | string | object +} + export interface MessageObject { id?: string locale?: string