diff --git a/.prettierignore b/.prettierignore index f55943b..d0eabdb 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,4 +4,5 @@ /.nx/cache pnpm-*.yaml -/.nx/workspace-data \ No newline at end of file +/.nx/workspace-data +packages/history-utility/docs/modules.md \ No newline at end of file diff --git a/packages/history-utility/docs/modules.md b/packages/history-utility/docs/modules.md index a21678b..591618b 100644 --- a/packages/history-utility/docs/modules.md +++ b/packages/history-utility/docs/modules.md @@ -23,22 +23,22 @@ #### Type parameters | Name | -| :------ | -| `T` | +| :--- | +| `T` | #### Type declaration -| Name | Type | Description | -| :------ | :------ | :------ | -| `index` | `number` | the history index of the current snapshot | -| `nodes` | [`HistoryNode`](modules.md#historynode)\<`T`\>[] | the nodes of the history for each change | -| `wip` | `Snapshot`\<`T`\> \| typeof `EMPTY_WIP` | field for holding sandbox changes; used to avoid infinite loops | +| Name | Type | Description | +| :------ | :----------------------------------------------- | :-------------------------------------------------------------- | +| `index` | `number` | the history index of the current snapshot | +| `nodes` | [`HistoryNode`](modules.md#historynode)\<`T`\>[] | the nodes of the history for each change | +| `wip` | `Snapshot`\<`T`\> \| typeof `EMPTY_WIP` | field for holding sandbox changes; used to avoid infinite loops | #### Defined in [packages/history-utility/src/index.ts:28](https://github.com/valtiojs/valtio-history/blob/7147554/packages/history-utility/src/index.ts#L28) -___ +--- ### HistoryNode @@ -47,22 +47,22 @@ ___ #### Type parameters | Name | -| :------ | -| `T` | +| :--- | +| `T` | #### Type declaration -| Name | Type | Description | -| :------ | :------ | :------ | -| `createdAt` | `Date` | The date when the node was created | -| `snapshot` | `Snapshot`\<`T`\> | The snapshot being tracked | -| `updatedAt?` | `Date` | The date when the node was updated. Will be undefined if the node was never updated. | +| Name | Type | Description | +| :----------- | :---------------- | :----------------------------------------------------------------------------------- | +| `createdAt` | `Date` | The date when the node was created | +| `snapshot` | `Snapshot`\<`T`\> | The snapshot being tracked | +| `updatedAt?` | `Date` | The date when the node was updated. Will be undefined if the node was never updated. | #### Defined in [packages/history-utility/src/index.ts:10](https://github.com/valtiojs/valtio-history/blob/7147554/packages/history-utility/src/index.ts#L10) -___ +--- ### HistoryOptions @@ -70,8 +70,8 @@ ___ #### Type declaration -| Name | Type | Description | -| :------ | :------ | :------ | +| Name | Type | Description | +| :--------------- | :-------- | :---------------------------------------------------------------- | | `skipSubscribe?` | `boolean` | determines if the internal subscribe behaviour should be skipped. | #### Defined in @@ -86,6 +86,7 @@ ___ This creates a new proxy with history support (ProxyHistoryObject). It includes following main properties:
+ - value: any value (does not have to be an object)
- history: an object holding the history of snapshots and other metadata
- history.index: the history index of the current snapshot
@@ -99,15 +100,15 @@ Notes:
#### Type parameters | Name | -| :------ | -| `V` | +| :--- | +| `V` | #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `initialValue` | `V` | any value to be tracked | -| `options?` | `boolean` \| [`HistoryOptions`](modules.md#historyoptions) | use to configure the proxyWithHistory utility. | +| Name | Type | Description | +| :------------- | :--------------------------------------------------------- | :--------------------------------------------- | +| `initialValue` | `V` | any value to be tracked | +| `options?` | `boolean` \| [`HistoryOptions`](modules.md#historyoptions) | use to configure the proxyWithHistory utility. | #### Returns @@ -115,36 +116,36 @@ Notes:
proxyObject -| Name | Type | Description | -| :------ | :------ | :------ | -| `canRedo` | () => `boolean` | a function to return true if redo is available **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | -| `canUndo` | () => `boolean` | a function to return true if undo is available **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | -| `clone` | \(`value`: `T`) => `T` | utility to clone a snapshot | -| `getCurrentChangeDate` | () => `undefined` \| `Date` | get the date when a node was entered into history. **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | -| `getNode` | (`index`: `number`) => `undefined` \| [`HistoryNode`](modules.md#historynode)\<`V`\> | utility method to get a history node. The snapshot within this node is already cloned and will not affect the original value if updated. | -| `goTo` | (`index`: `number`) => `void` | a function to go to a specific index in history | -| `history` | [`History`](modules.md#history)\<`V`\> & `AsRef` | an object holding the history of snapshots and other metadata
- history.index: the history index to the current snapshot
- history.nodes: the nodes of the history for each change
- history.wip: field for holding sandbox changes; used to avoid infinite loops
| -| `redo` | () => `void` | a function to go forward in history | -| `remove` | (`index`: `number`) => `undefined` \| [`HistoryNode`](modules.md#historynode)\<`V`\> | The remove method is only invoked when there are more than one nodes and when a valid index is provided. If the current index is removed, An index greater than the current index will be preferred as the next value. | -| `replace` | (`index`: `number`, `value`: `INTERNAL_Snapshot`\<`V`\>) => `void` | utility to replace a value in history. The history changes will not be affected, only the value to be replaced. If a base value is needed to operate on, the `getNode` utility can be used to retrieve a cloned historyNode.

Notes:
- No operations are done on the value provided to this utility.
- This is an advanced method, please ensure the value provided is a snapshot of the same type of the value being tracked.
| -| `saveHistory` | () => `void` | a function to execute saving history when changes are made to `value` | -| `shouldSaveHistory` | (`ops`: `Op`[]) => `boolean` | a function that returns true when the history should be updated | -| `subscribe` | () => () => `void` | a function to subscribe to changes made to `value` | -| `undo` | () => `void` | a function to go back in history | -| `value` | `V` | any value to be tracked (does not have to be an object) | -| `get currentChangeDate()` | `undefined` \| `Date` | - | -| `get currentIndex()` | `number` | - | -| `get historyNodeCount()` | `number` | - | -| `get isRedoEnabled()` | `boolean` | - | -| `get isUndoEnabled()` | `boolean` | - | +| Name | Type | Description | +| :------------------------ | :----------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `canRedo` | () => `boolean` | a function to return true if redo is available **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | +| `canUndo` | () => `boolean` | a function to return true if undo is available **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | +| `clone` | \(`value`: `T`) => `T` | utility to clone a snapshot | +| `getCurrentChangeDate` | () => `undefined` \| `Date` | get the date when a node was entered into history. **`Deprecated`** **`See`** [https://github.com/valtiojs/valtio-history/issues/10](https://github.com/valtiojs/valtio-history/issues/10) | +| `getNode` | (`index`: `number`) => `undefined` \| [`HistoryNode`](modules.md#historynode)\<`V`\> | utility method to get a history node. The snapshot within this node is already cloned and will not affect the original value if updated. | +| `goTo` | (`index`: `number`) => `void` | a function to go to a specific index in history | +| `history` | [`History`](modules.md#history)\<`V`\> & `AsRef` | an object holding the history of snapshots and other metadata
- history.index: the history index to the current snapshot
- history.nodes: the nodes of the history for each change
- history.wip: field for holding sandbox changes; used to avoid infinite loops
| +| `redo` | () => `void` | a function to go forward in history | +| `remove` | (`index`: `number`) => `undefined` \| [`HistoryNode`](modules.md#historynode)\<`V`\> | The remove method is only invoked when there are more than one nodes and when a valid index is provided. If the current index is removed, An index greater than the current index will be preferred as the next value. | +| `replace` | (`index`: `number`, `value`: `INTERNAL_Snapshot`\<`V`\>) => `void` | utility to replace a value in history. The history changes will not be affected, only the value to be replaced. If a base value is needed to operate on, the `getNode` utility can be used to retrieve a cloned historyNode.

Notes:
- No operations are done on the value provided to this utility.
- This is an advanced method, please ensure the value provided is a snapshot of the same type of the value being tracked.
| +| `saveHistory` | () => `void` | a function to execute saving history when changes are made to `value` | +| `shouldSaveHistory` | (`ops`: `Op`[]) => `boolean` | a function that returns true when the history should be updated | +| `subscribe` | () => () => `void` | a function to subscribe to changes made to `value` | +| `undo` | () => `void` | a function to go back in history | +| `value` | `V` | any value to be tracked (does not have to be an object) | +| `get currentChangeDate()` | `undefined` \| `Date` | - | +| `get currentIndex()` | `number` | - | +| `get historyNodeCount()` | `number` | - | +| `get isRedoEnabled()` | `boolean` | - | +| `get isUndoEnabled()` | `boolean` | - | **`Example`** ```ts -import { proxyWithHistory } from 'valtio-history' +import { proxyWithHistory } from 'valtio-history'; const state = proxyWithHistory({ count: 1, -}) +}); ``` #### Defined in