npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@carefrees/simple-store-utils

v0.0.18

Published

## 基础类

Downloads

83

Readme

状态管理基础api

基础类

// CSTU_Instance.ts 

import { CSTU_PathTypes, CSTU_RegisterProps, CSTU_RegisterWatchProps, CSTU_SelectorListItemType } from "./CSTU_interface";
export declare class CSTU_Instance {
    /**
     * 基础创建方法=====>获取数组数据
     * @param field 字段
     * */
    _get_CSTU_list: <K>(field: string) => K[];
    /**
     * 基础创建方法=====>获取对象数据
     * @param field 字段
    */
    _get_CSTU_store: <R = any>(field: string) => R;
    /**
     * 基础创建方法=====>获取 Map 对象数据
     * @param field 字段
     * */
    _get_CSTU_map: (field: string) => Map<Symbol | Object, CSTU_SelectorListItemType>;
    /**
     * 基础创建方法=====>注册组件
     * @param componentField 挂载组件存储 字段
     * @param storeField  操作数据存储 字段
     * @param initialField  初始值存储 字段
     * @param props 内部操作参数
     * @param prototype 是否在不改变原始数据存储地址方式直接更新值 (默认false)
     *
     * */
    _create_CSTU_register: <R = any>(componentField: string, storeField: string, initialField: string, props: CSTU_RegisterProps, prototype?: boolean) => () => void;
    /**
     * 基础创建方法=====>注册监听字段
     * @param watchField  挂载监听组件存储 字段
     * @param props 内部操作参数
     * */
    _create_CSTU_registerWatch: (watchField: string, props: CSTU_RegisterWatchProps) => () => void;
    /**
     * 基础创建方法=====>通知组件更新
     * @param componentField 挂载组件存储 字段
     * @param path 更新组件路径
     * */
    _create_CSTU_notice: (componentField: string, path: CSTU_PathTypes) => void;
    /**
     * 基础创建方法=====>批量更新组件, 当不传递值的时候,更新所有组件
     * @param componentField 挂载组件存储 字段
     * @param paths 更新组件路径集合
     *
    */
    _create_CSTU_bathNotice: (componentField: string, paths?: string[] | boolean) => void;
    /**
     * 基础创建方法=====>通知监听
     * @param watchField  挂载监听组件存储 字段
     * @param storeField  操作数据存储 字段
     * @param path 通知监听器的路径值更新
     * */
    _create_CSTU_noticeWatch: (watchField: string, storeField: string, path: CSTU_PathTypes) => void;
    /**
     * 基础创建方法=====>更新值
     * @param componentField 挂载组件存储 字段
     * @param storeField  操作数据存储 字段
     * @param watchField  挂载监听组件存储 字段
     * @param path 更新数据路径
     * @param value 数据
     * @param notice 通知更新
     * @param prototype 是否不改变原始数据存储地址方式直接更新值 (默认false)
     *
     * */
    _create_CSTU_updateValue: <K = any>(componentField: string, storeField: string, watchField: string | undefined | null, path: CSTU_PathTypes, value: K, notice?: boolean | string[], prototype?: boolean) => void;
    /**
     * 基础创建方法=====>批量数据更新
     * @param componentField 挂载组件存储 字段
     * @param storeField  操作数据存储 字段
     * @param watchField  挂载监听组件存储 字段
     * @param values 存储的数据
     * @param notice 通知更新
     * @param prototype 是否不改变原始数据存储地址方式直接更新值 (默认false)
     * */
    _create_CSTU_bathUpdateValue: (componentField: string, storeField: string, watchField: string | undefined | null, values: Record<string, any>, notice?: boolean | string[], prototype?: boolean) => void;
    /**
     * 基础创建方法=====>获取值
     * @param storeField  操作数据存储 字段
     * @param path 获取数据的路径
     * */
    _create_CSTU_getValue: (storeField: string, path?: CSTU_PathTypes) => any;
    /**
     * 基础创建方法=====>设置初始值
     * @param storeField  操作数据存储 字段
     * @param initialField  操作数据存储 字段
     * @param initialValue 初始值存储 字段
     * @param prototype 是否不改变原始数据存储地址方式存储 (默认false)
     *
    */
    _create_CSTU_init: <T = any>(storeField: string, initialField: string, initialValue?: T, prototype?: boolean) => void;
    /**获取状态*/
    _create_CSTU_getState: <T extends CSTU_Instance = CSTU_Instance>() => T;
    /**获取初始值*/
    _create_CSTU_getInitialState: <T extends CSTU_Instance = CSTU_Instance>() => T;
    /**
     * 监听注册监听方法
     * @param setField 方法集合存储 字段
     * @param listener 注册执行方法
     *
    */
    _crate_CSTU_registerSubscribe: <T extends CSTU_Instance = CSTU_Instance>(setField: string) => (listener: ListenerType<T>) => () => boolean;
    /**
     * 销毁注册监听方法数据
     * @param setField 方法集合存储 字段
     * @param listener 注册执行方法
     *
    */
    _crate_CSTU_destroySubscribe: (setField: string) => () => void;
}

创建react使用相关hooks方法

// hooks/index.ts 

import { CSTU_ClassInterface, CSTU_InstanceProviderProps, Use_CSTU_InstanceItemRegisterProps, CSTU_PathTypes } from "../CSTU_interface";
import { CSTU_Instance } from "../CSTU_Instance";
/**
 * 创建====Context
 * @param instance 默认初始实例
 *
 * @example
 *
 * const context = create_CSTU_InstanceContext(new CSTU_Instance())
 *
 * */
export declare const create_CSTU_InstanceContext: <T = CSTU_Instance>(instance: T) => import("react").Context<T>;
/**
 * 创建==== 初始实例化 hooks
 * @param Instance class实例
 *
 * @example
 *
 * const useInitInstance = create_CSTU_Hooks_Instance(CSTU_Instance)
 *
 */
export declare function create_CSTU_Hooks_Instance<T = CSTU_Instance>(InstanceClas: CSTU_ClassInterface<T>): (instance?: T) => T[];
/**
 * 创建====Provider
 * @param use_CSTU_Instance 获取实例
 * @param Context
 *
 * @example
 *
 * const context = create_CSTU_InstanceContext(new CSTU_Instance())
 *
 * const use_CSTU_Instance = create_CSTU_Hooks_Instance(CSTU_Instance)
 *
 * const Provider = create_CSTU_InstanceProvider(use_CSTU_Instance,context)
 *
*/
export declare function create_CSTU_InstanceProvider<T = CSTU_Instance>(use_CSTU_Instance: (instance?: T) => T[], Context: React.Context<T>): (props: CSTU_InstanceProviderProps<T>) => import("react").FunctionComponentElement<import("react").ProviderProps<T>>;
/**
 * 创建====获取当前的状态管理实例
 * @param Context
 *
 * @example
 *
 * const context = create_CSTU_InstanceContext(new CSTU_Instance())
 *
 * const use_CSTU_InstanceContext = create_CSTU_hooks_InstanceContext(context)
 *
 * */
export declare function create_CSTU_hooks_InstanceContext<T = CSTU_Instance>(Context: React.Context<T>): () => T;
/**
 * 创建====子组件注册更新
 * @param Context
 * @param registerFunName 注册方法名称
 *
 * @example
 *
 * const context = create_CSTU_InstanceContext(new CSTU_Instance())
 *
 * const useItemRegister = create_CSTU_hooks_InstanceItemRegister(context,"方法名称")
 *
 *
*/
export declare function create_CSTU_hooks_InstanceItemRegister<T = CSTU_Instance>(Context: React.Context<T>, registerFunName: string): (props: Use_CSTU_InstanceItemRegisterProps) => T;
/**
 * 创建====注册监听字段更新
 * @param registerWatchFunName 注册监听器的方法名称
 *
 * @example
 *
 * const use_CSTU_InstanceFieldWatch = create_CSTU_hooks_InstanceFieldWatch("方法名称")
 *
*/
export declare function create_CSTU_hooks_InstanceFieldWatch<T = CSTU_Instance>(registerWatchFunName: string): (instance: T, path: CSTU_PathTypes, fun?: (value: any) => void) => any;
/**
 * 创建====执行器
 * @param use_CSTU_Instance 获取实例
 * @param listenerField 监听方法存储数据字段
 * 
 * @example
 * 
 * const context = create_CSTU_InstanceContext(new CSTU_Instance())
 * 
 * const useInstanceContext = create_CSTU_hooks_InstanceContext(instanceContext)
 * 
 * const use_CSTU_InstanceSelector = create_CSTU_hooks_InstanceSelector(useInstance,"监听方法存储数据字段")
 * 
*/
export declare function create_CSTU_hooks_InstanceSelector<K = CSTU_Instance>(use_CSTU_Instance: (instance?: K) => K[], registerSelectorFunName: string, getSelectorValueFunName: string): <Selected = any>(selector: (state: K) => Selected, equalityFn?: (a: any, b: any) => boolean) => Selected;
/**
 * 更新页面状态
 * */
export declare const use_CSTU_Update: () => import("react").MutableRefObject<Function>;

/**
 * 创建一套状态管理
 * @param instance 实例
 * @param registerFunName 注册方法名称
 * @param registerWatchFunName 注册监听器的方法名称
 * @param registerSelectorFunName 注册执行器的方法名称
 * @param getSelectorValueFunName 获取最新值的方法名称
*/
export declare const create_CSTU_Hooks: <T = CSTU_Instance>(instance: CSTU_ClassInterface<T>, registerFunName: string, registerWatchFunName?: string, registerSelectorFunName?: string, getSelectorValueFunName?: string) => {
    instanceContext: import("react").Context<T>;
    useInstance: (instance?: T) => T[];
    useInstanceContext: () => T;
    InstanceProvider: (props: CSTU_InstanceProviderProps<T, any>) => import("react").FunctionComponentElement<import("react").ProviderProps<T>>;
    useInstanceItemRegister: (props: Use_CSTU_InstanceItemRegisterProps) => T;
    useInstanceFieldWatch: (instance: CSTU_Instance, path: CSTU_PathTypes, fun?: (value: any) => void) => any;
    useInstanceSelector: <Selected = any>(selector: (state: T) => Selected, equalityFn?: (a: any, b: any) => boolean) => Selected;
};

类型

// CSTU_interface.ts 

import type { CSTU_Instance } from "./CSTU_Instance";

export type CSTU_IntType = string | number | boolean | symbol;
export type CSTU_PathTypes = number | string | (number | string)[];

/**实现构造器类型**/
export interface CSTU_ClassInterface<T> {
    new (): T;
}
export interface CSTU_InstanceProviderProps<K = CSTU_Instance, T = any> {
    /**实例*/
    instance?: K;
    /**内容*/
    children?: React.ReactNode;
}
export interface Use_CSTU_InstanceItemRegisterProps {
    /**注册地址*/
    path: CSTU_PathTypes;
}
export interface CSTU_RegisterProps {
    /**注册地址*/
    path: CSTU_PathTypes;
    /**更新当前组件方法*/
    update: Function;
    /**是否保存*/
    preserve?: boolean;
}
export interface CSTU_RegisterWatchProps {
    /**监听字段存储地址*/
    path: CSTU_PathTypes;
    /**更新当前组件方法*/
    update: (value: any) => void;
}
export interface CSTU_SelectorListItemType<T extends CSTU_Instance = CSTU_Instance, TState = unknown, Selected = unknown> {
    /**上一次值*/
    preValue: TState;
    /**更新组件方法*/
    updateData: (value: Selected) => void;
    /**获取最新数据的 执行方法*/
    selector: (instance: T) => Selected;
    /**新老数据对比方法*/
    equalityFn?: (a: TState, b: TState) => boolean;
}