mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
|
# Package Scripts
|
||
|
|
||
|
WIP walkthrough of `package.json` scripts.
|
||
|
|
||
|
## `theme` & `theme:watch`
|
||
|
|
||
|
These run the Chakra CLI to generate types for the theme, or watch for code change and re-generate the types.
|
||
|
|
||
|
The CLI essentially monkeypatches Chakra's files in `node_modules`.
|
||
|
|
||
|
## `postinstall`
|
||
|
|
||
|
The `postinstall` script patches a few packages and runs the Chakra CLI to generate types for the theme.
|
||
|
|
||
|
### Patch `@chakra-ui/cli`
|
||
|
|
||
|
See: <https://github.com/chakra-ui/chakra-ui/issues/7394>
|
||
|
|
||
|
### Patch `redux-persist`
|
||
|
|
||
|
We want to persist the canvas state to `localStorage` but many canvas operations change data very quickly, so we need to debounce the writes to `localStorage`.
|
||
|
|
||
|
`redux-persist` is unfortunately unmaintained. The repo's current code is nonfunctional, but the last release's code depends on a package that was removed from `npm` for being malware, so we cannot just fork it.
|
||
|
|
||
|
So, we have to patch it directly. Perhaps a better way would be to write a debounced storage adapter, but I couldn't figure out how to do that.
|
||
|
|
||
|
### Patch `redux-deep-persist`
|
||
|
|
||
|
This package makes blacklisting and whitelisting persist configs very simple, but we have to patch it to match `redux-persist` for the types to work.
|