Automated wiki update
							
								
								
									
										1
									
								
								docs/.nojekyll
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										1
									
								
								docs/.nojekyll
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
 | 
				
			||||||
							
								
								
									
										102
									
								
								docs/Home.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										102
									
								
								docs/Home.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					persist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# persist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Table of contents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Classes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Persist](classes/Persist.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Decorators
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [persist](Home.md#persist)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [PersistOptions](Home.md#persistoptions)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Decorators
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### persist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **persist**\<`T`\>(`options?`): (`target`: `any`, `prop`: `any`) => `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sync class property with persistent storage (LocalStorage by default)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Type parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name |
 | 
				
			||||||
 | 
					| :------ |
 | 
				
			||||||
 | 
					| `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type | Description |
 | 
				
			||||||
 | 
					| :------ | :------ | :------ |
 | 
				
			||||||
 | 
					| `options?` | [`PersistOptions`](Home.md#persistoptions)\<`T`\> & \{ `key?`: `string`  } | Configure using [PersistOptions](Home.md#persistoptions) |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`fn`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Decorator function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ (`target`, `prop`): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type |
 | 
				
			||||||
 | 
					| :------ | :------ |
 | 
				
			||||||
 | 
					| `target` | `any` |
 | 
				
			||||||
 | 
					| `prop` | `any` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**`Example`**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```ts
 | 
				
			||||||
 | 
					class ThemeEngine {
 | 
				
			||||||
 | 
					  @persist({default: 'os'}) current!: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const theme = new ThemeEngine();
 | 
				
			||||||
 | 
					console.log(theme.current) // Output: os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					theme.current = 'light'; //Any changes will be automatically saved to localStorage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					location.reload(); // Simulate refresh
 | 
				
			||||||
 | 
					console.log(theme.current) // Output: light
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:135
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### PersistOptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ƭ **PersistOptions**\<`T`\>: `Object`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Configurations persistence behaviour
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Type parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name |
 | 
				
			||||||
 | 
					| :------ |
 | 
				
			||||||
 | 
					| `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Type declaration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type | Description |
 | 
				
			||||||
 | 
					| :------ | :------ | :------ |
 | 
				
			||||||
 | 
					| `default?` | `T` | Default/Initial value if undefined |
 | 
				
			||||||
 | 
					| `storage?` | `Storage` | Storage implementation, defaults to LocalStorage |
 | 
				
			||||||
 | 
					| `type?` | `any` | Force value to have prototype |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:6
 | 
				
			||||||
							
								
								
									
										308
									
								
								docs/classes/Persist.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										308
									
								
								docs/classes/Persist.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,308 @@
 | 
				
			|||||||
 | 
					[persist](../Home.md) / Persist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Class: Persist\<T\>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sync variable's value with persistent storage (LocalStorage by default)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**`Example`**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```ts
 | 
				
			||||||
 | 
					const theme = new Persist('theme.current', {default: 'os'});
 | 
				
			||||||
 | 
					console.log(theme.value); // Output: os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					theme.value = 'light'; // Any changes to `.value` will automatically sync with localStorage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					location.reload(); // Simulate refresh
 | 
				
			||||||
 | 
					console.log(theme.value); // Output: light
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Type parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name |
 | 
				
			||||||
 | 
					| :------ |
 | 
				
			||||||
 | 
					| `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Table of contents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Constructors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [constructor](Persist.md#constructor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Properties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [\_value](Persist.md#_value)
 | 
				
			||||||
 | 
					- [key](Persist.md#key)
 | 
				
			||||||
 | 
					- [options](Persist.md#options)
 | 
				
			||||||
 | 
					- [storage](Persist.md#storage)
 | 
				
			||||||
 | 
					- [watches](Persist.md#watches)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Accessors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [value](Persist.md#value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Methods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [clear](Persist.md#clear)
 | 
				
			||||||
 | 
					- [load](Persist.md#load)
 | 
				
			||||||
 | 
					- [notify](Persist.md#notify)
 | 
				
			||||||
 | 
					- [save](Persist.md#save)
 | 
				
			||||||
 | 
					- [toString](Persist.md#tostring)
 | 
				
			||||||
 | 
					- [valueOf](Persist.md#valueof)
 | 
				
			||||||
 | 
					- [watch](Persist.md#watch)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Constructors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### constructor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• **new Persist**\<`T`\>(`key`, `options?`): [`Persist`](Persist.md)\<`T`\>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Type parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name |
 | 
				
			||||||
 | 
					| :------ |
 | 
				
			||||||
 | 
					| `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type | Description |
 | 
				
			||||||
 | 
					| :------ | :------ | :------ |
 | 
				
			||||||
 | 
					| `key` | `string` | Unique key value will be stored under |
 | 
				
			||||||
 | 
					| `options` | [`PersistOptions`](../Home.md#persistoptions)\<`T`\> | Configure using [PersistOptions](../Home.md#persistoptions) |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[`Persist`](Persist.md)\<`T`\>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:68
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Properties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### \_value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `Private` **\_value**: `T`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Private value field
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:31
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `Readonly` **key**: `string`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unique key value will be stored under
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:68
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• **options**: [`PersistOptions`](../Home.md#persistoptions)\<`T`\> = `{}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Configure using [PersistOptions](../Home.md#persistoptions)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:68
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `Private` `Readonly` **storage**: `Storage`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Where data gets physically stored
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:60
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `Private` **watches**: `Object` = `{}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Listeners which should be notified on changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Index signature
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▪ [key: `string`]: `Function`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:62
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Accessors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `get` **value**(): `T`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Current value or default if undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`T`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:34
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• `set` **value**(`v`): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Set value with proxy object wrapper to sync future changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type |
 | 
				
			||||||
 | 
					| :------ | :------ |
 | 
				
			||||||
 | 
					| `v` | `undefined` \| `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Methods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### clear
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **clear**(): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Delete value from storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:74
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### load
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **load**(): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Load value from storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### notify
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **notify**(`value`): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Notify listeners of change
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type |
 | 
				
			||||||
 | 
					| :------ | :------ |
 | 
				
			||||||
 | 
					| `value` | `T` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:108
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **save**(): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Save current value to storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:79
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### toString
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **toString**(): `string`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Return value as JSON string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`string`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:102
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### valueOf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **valueOf**(): `undefined` \| `Object`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Return raw value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`undefined` \| `Object`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:105
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					___
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### watch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ **watch**(`fn`): () => `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Callback to listen for changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Name | Type |
 | 
				
			||||||
 | 
					| :------ | :------ |
 | 
				
			||||||
 | 
					| `fn` | (`value`: `T`) => `any` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`fn`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					▸ (): `void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Callback to listen for changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Returns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`void`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Defined in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					persist.ts:95
 | 
				
			||||||
		Reference in New Issue
	
	Block a user