forked from MapComplete/MapComplete
		
	Merge feature/svelte into develop
This commit is contained in:
		
						commit
						868d476891
					
				
					 120 changed files with 5168 additions and 10657 deletions
				
			
		|  | @ -1,4 +1,5 @@ | |||
| import { Utils } from "../Utils" | ||||
| import { Readable, Subscriber, Unsubscriber } from "svelte/store" | ||||
| 
 | ||||
| /** | ||||
|  * Various static utils | ||||
|  | @ -88,7 +89,7 @@ export class Stores { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| export abstract class Store<T> { | ||||
| export abstract class Store<T> implements Readable<T> { | ||||
|     abstract readonly data: T | ||||
| 
 | ||||
|     /** | ||||
|  | @ -113,6 +114,18 @@ export abstract class Store<T> { | |||
|     abstract map<J>(f: (t: T) => J): Store<J> | ||||
|     abstract map<J>(f: (t: T) => J, extraStoresToWatch: Store<any>[]): Store<J> | ||||
| 
 | ||||
|     public mapD<J>(f: (t: T) => J, extraStoresToWatch?: Store<any>[]): Store<J> { | ||||
|         return this.map((t) => { | ||||
|             if (t === undefined) { | ||||
|                 return undefined | ||||
|             } | ||||
|             if (t === null) { | ||||
|                 return null | ||||
|             } | ||||
|             return f(t) | ||||
|         }, extraStoresToWatch) | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Add a callback function which will run on future data changes | ||||
|      */ | ||||
|  | @ -258,6 +271,17 @@ export abstract class Store<T> { | |||
|             } | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Same as 'addCallbackAndRun', added to be compatible with Svelte | ||||
|      * @param run | ||||
|      * @param invalidate | ||||
|      */ | ||||
|     public subscribe(run: Subscriber<T> & ((value: T) => void), invalidate?): Unsubscriber { | ||||
|         // We don't need to do anything with 'invalidate', see
 | ||||
|         // https://github.com/sveltejs/svelte/issues/3859
 | ||||
|         return this.addCallbackAndRun(run) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export class ImmutableStore<T> extends Store<T> { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue