feat: автообновление, шаблон zustand-store, документация

- Добавлено автоматическое обновление со спиннером (ora)
- Новый шаблон zustand-store
- Документация (FEATURES.md, LICENSE, README)
This commit is contained in:
2026-01-27 12:33:11 +03:00
parent d58eb04456
commit bdb7180d92
14 changed files with 725 additions and 124 deletions

View File

@@ -0,0 +1,2 @@
export * from './{{name.camelCase}}Store.type';
export * from './{{name.camelCase}}Store';

View File

@@ -0,0 +1,27 @@
import { create } from 'zustand';
import { devtools, persist } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import type { {{name.pascalCase}}State, {{name.pascalCase}}Store } from './{{name.camelCase}}Store.type';
export const defaultInitState: {{name.pascalCase}}State = {
deviceId: null,
};
const setDeviceId = (state: {{name.pascalCase}}Store, deviceId: string) => {
state.deviceId = deviceId;
};
export const use{{name.pascalCase}}Store = create<{{name.pascalCase}}Store>()(
devtools(
persist(
immer<{{name.pascalCase}}Store>((set) => ({
...defaultInitState,
setDeviceId: (deviceId) => set((state) => setDeviceId(state, deviceId)),
})),
{
name: '{{name.kebabCase}}-storage',
}
),
{ name: '{{name.pascalCase}}Store' }
)
);

View File

@@ -0,0 +1,9 @@
export type {{name.pascalCase}}State = {
deviceId: string | null;
};
export type {{name.pascalCase}}Actions = {
setDeviceId: (deviceId: string) => void;
};
export type {{name.pascalCase}}Store = {{name.pascalCase}}State & {{name.pascalCase}}Actions;