@flowlist/js-core 4.0.6-beta.0 → 4.0.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enum.ts","../src/utils.ts","../src/setters.ts","../src/actions.ts"],"names":["generateFieldName"],"mappings":"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","file":"index.global.js","sourcesContent":["// enum.ts\nconst FETCH_TYPE_ARRAY = ['jump', 'sinceId', 'page', 'seenIds', 'auto'] as const\n\nexport default {\n SETTER_TYPE: {\n RESET: 0,\n MERGE: 1\n } as const,\n FETCH_TYPE_ARRAY,\n FETCH_TYPE: {\n PAGINATION: FETCH_TYPE_ARRAY[0],\n SINCE_FIRST_OR_END_ID: FETCH_TYPE_ARRAY[1],\n SCROLL_LOAD_MORE: FETCH_TYPE_ARRAY[2],\n HAS_LOADED_IDS: FETCH_TYPE_ARRAY[3],\n AUTO: FETCH_TYPE_ARRAY[4]\n } as const,\n CHANGE_TYPE: {\n SEARCH_FIELD: 'search',\n RESET_FIELD: 'reset',\n RESULT_UPDATE_KV: 'update',\n RESULT_ADD_AFTER: 'push',\n RESULT_ADD_BEFORE: 'unshift',\n RESULT_REMOVE_BY_ID: 'delete',\n RESULT_INSERT_TO_BEFORE: 'insert-before',\n RESULT_INSERT_TO_AFTER: 'insert-after',\n RESULT_LIST_MERGE: 'patch',\n RESULT_ITEM_MERGE: 'merge'\n } as const,\n FIELD_DATA: {\n RESULT_KEY: 'result',\n EXTRA_KEY: 'extra'\n } as const,\n DEFAULT_UNIQUE_KEY_NAME: 'id'\n} as const\n","// utils.ts\nimport ENUM from './enum'\nimport type {\n ApiContract,\n DefaultField,\n FetchType,\n FieldKeys,\n GenerateParamsResp,\n GenerateParamsType,\n KeyMap,\n ObjectKey,\n RequestParams\n} from './types'\n\n// ========== 类型守卫函数 ==========\n\nexport const isArray = (data: unknown): data is any[] => Array.isArray(data)\n\n/**\n * 检查是否为对象结果\n */\nexport const isResultObject = (data: unknown): data is Record<string, any> =>\n !isArray(data) && typeof data === 'object' && data !== null\n\n/**\n * 检查是否为 ObjectKey\n */\nexport const isObjectKey = (value: unknown): value is ObjectKey =>\n typeof value === 'string' || typeof value === 'number'\n\n/**\n * 检查是否为 KeyMap\n */\nexport const isKeyMap = (value: unknown): value is KeyMap =>\n typeof value === 'object' && value !== null && !isArray(value)\n\n/**\n * 检查是否为 KeyMap 数组\n */\nexport const isKeyMapArray = (value: unknown): value is KeyMap[] =>\n isArray(value) &&\n value.every((item) => typeof item === 'object' && item !== null)\n\n/**\n * 检查是否为 ObjectKey 数组\n */\nexport const isObjectKeyArray = (value: unknown): value is ObjectKey[] =>\n isArray(value) &&\n value.every((item) => typeof item === 'string' || typeof item === 'number')\n\nexport const stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return String(value)\n }\n try {\n if (isArray(value)) {\n return JSON.stringify(value)\n }\n if (isKeyMap(value)) {\n const keys = Object.keys(value).sort()\n const obj: Record<string, unknown> = {}\n const len = keys.length\n for (let i = 0; i < len; i++) {\n const k = keys[i]\n obj[k] = value[k]\n }\n return JSON.stringify(obj)\n }\n return '[Unsupported Object]'\n } catch {\n return '[Circular Object/Value]'\n }\n}\n\nconst extractUniqueKey = (\n item: KeyMap,\n uniqueKey: string\n): ObjectKey | undefined => {\n if (!isKeyMap(item)) return undefined\n\n const val = item[uniqueKey]\n if (isObjectKey(val)) {\n return val\n }\n\n if (uniqueKey.includes('.')) {\n const deepVal = getObjectDeepValue(item, uniqueKey)\n if (isObjectKey(deepVal)) {\n return deepVal\n }\n }\n return undefined\n}\n\nexport const isObjectResult = (\n data: unknown\n): data is Record<string, unknown> => {\n if (typeof data !== 'object' || data === null) {\n return false\n }\n // 这是一个比较特定的检查,检查是否 *没有* 'result' 属性且是对象\n // 原逻辑保留,但通常 API 响应应该包含 result\n return !Object.prototype.hasOwnProperty.call(data, 'result')\n}\n\nexport const generateDefaultField = <T = any>(\n opts: Partial<DefaultField<T>> = {}\n): DefaultField<T> => ({\n result: [] as unknown as T, // 默认为空数组,但强制转换为泛型 T\n noMore: false,\n nothing: false,\n loading: false,\n error: null,\n extra: null,\n fetched: false,\n page: 0,\n total: 0,\n ...opts\n})\n\nexport const generateFieldName = <P extends RequestParams, R>({\n func,\n query\n}: {\n func: ApiContract<P, R>\n query?: P\n}): string => {\n let result = func.id\n if (!query) {\n return result\n }\n // 强制转换为 Record 以便遍历\n const queryObj = query as Record<string, unknown>\n const filteredKeys = Object.keys(queryObj)\n .filter((key) => !func.paramsIgnore.includes(key))\n .sort()\n\n const len = filteredKeys.length\n for (let i = 0; i < len; i++) {\n const key = filteredKeys[i]\n const value = queryObj[key]\n let safeValue: string\n\n if (typeof value === 'object' && value !== null) {\n safeValue = stableSerialize(value)\n } else {\n safeValue = String(value)\n }\n\n const encoded = encodeURIComponent(safeValue)\n result += `-${key}-${encoded}`\n }\n\n return result\n}\n\nexport const getObjectDeepValue = (\n field: unknown,\n keys: string | string[]\n): unknown => {\n if (!keys || (isArray(keys) && keys.length === 0)) {\n return field\n }\n\n const keysArr = isArray(keys) ? keys : keys.split('.')\n let result: any = field\n const len = keysArr.length\n\n for (let i = 0; i < len; i++) {\n if (result == null || typeof result !== 'object') {\n return undefined\n }\n // 这里不再严格检查 isKeyMap,因为只要是对象就可以取值\n result = result[keysArr[i]]\n }\n\n return result\n}\n\nexport const updateObjectDeepValue = (\n field: KeyMap,\n changeKey: string,\n value: unknown\n): void => {\n if (!changeKey) return\n\n const keys = changeKey.split('.')\n const lastKey = keys.pop()\n if (!lastKey) return\n\n let current: KeyMap = field\n const len = keys.length\n\n for (let i = 0; i < len; i++) {\n const key = keys[i]\n const currentVal = current[key]\n if (currentVal == null || typeof currentVal !== 'object') {\n current[key] = {}\n }\n const next = current[key]\n if (isKeyMap(next)) {\n current = next\n } else {\n return\n }\n }\n\n if (current != null && typeof current === 'object') {\n current[lastKey] = value\n }\n}\n\nexport const searchValueByKey = (\n result: any[] | Record<string, any>,\n id: ObjectKey,\n key: string\n): unknown => {\n if (isArray(result)) {\n const index = computeMatchedItemIndex(id, result, key)\n return index >= 0 ? result[index] : undefined\n }\n if (isResultObject(result)) {\n return result[String(id)]\n }\n return undefined\n}\n\nexport const computeMatchedItemIndex = (\n itemId: ObjectKey,\n fieldArr: any[],\n changingKey: string\n): number => {\n const stringifiedItemId = String(itemId)\n const len = fieldArr.length\n\n for (let i = 0; i < len; i++) {\n const item = fieldArr[i]\n if (!isKeyMap(item)) continue\n\n const itemValue = getObjectDeepValue(item, changingKey)\n if (String(itemValue) === stringifiedItemId) {\n return i\n }\n }\n\n return -1\n}\n\nexport const combineArrayData = (\n fieldArray: any[],\n value: any[] | Record<ObjectKey, KeyMap>,\n changingKey: string\n): void => {\n const fieldArrayMap = new Map<string, number>()\n const arrLen = fieldArray.length\n\n for (let i = 0; i < arrLen; i++) {\n const item = fieldArray[i]\n if (!isKeyMap(item)) continue\n const id = getObjectDeepValue(item, changingKey)\n if (id !== undefined) {\n fieldArrayMap.set(String(id), i)\n }\n }\n\n if (isArray(value)) {\n const valLen = value.length\n for (let i = 0; i < valLen; i++) {\n const col = value[i]\n if (!isKeyMap(col)) continue\n const stringifyId = String(getObjectDeepValue(col, changingKey))\n\n const index = fieldArrayMap.get(stringifyId)\n\n if (index !== undefined) {\n const existingItem = fieldArray[index]\n if (isKeyMap(existingItem)) {\n Object.assign(existingItem, col)\n }\n }\n }\n } else if (isKeyMap(value)) {\n const entries = Object.entries(value)\n const entLen = entries.length\n for (let i = 0; i < entLen; i++) {\n const [uniqueId, col] = entries[i]\n if (!isKeyMap(col)) continue\n\n const index = fieldArrayMap.get(uniqueId)\n\n if (index !== undefined) {\n const existingItem = fieldArray[index]\n if (isKeyMap(existingItem)) {\n Object.assign(existingItem, col)\n }\n }\n }\n }\n}\n\nexport const setReactivityField = (\n field: DefaultField,\n key: FieldKeys,\n value: unknown,\n type: FetchType,\n insertBefore: boolean\n): void => {\n const fieldAny = field as any // 为了动态赋值,暂时断言为 any\n\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n fieldAny[key] = value\n return\n }\n\n if (key !== ENUM.FIELD_DATA.RESULT_KEY) {\n if (isArray(value)) {\n const current = fieldAny[key]\n const currentArr = isArray(current) ? current : []\n const newValue = insertBefore\n ? [...value, ...currentArr]\n : [...currentArr, ...value]\n fieldAny[key] = newValue\n } else {\n fieldAny[key] = value\n }\n return\n }\n\n // Handle Result Logic\n const resultField = field.result\n const valueObj = value as KeyMap\n\n if (isArray(value)) {\n const currentArr = isArray(resultField) ? resultField : []\n const valueArr = value as KeyMap[]\n\n if (insertBefore) {\n if (valueArr.length === 0) return\n if (currentArr.length === 0) {\n field.result = valueArr as any\n return\n }\n field.result = valueArr.concat(currentArr) as any\n } else {\n if (valueArr.length === 0) return\n if (currentArr.length === 0) {\n field.result = valueArr as any\n return\n }\n field.result = currentArr.concat(valueArr) as any\n }\n return\n }\n\n // Handle Object Result Logic\n let target = resultField as Record<string, any>\n if (isArray(resultField)) {\n target = {}\n field.result = target as any\n } else if (typeof resultField !== 'object' || resultField === null) {\n target = {}\n field.result = target as any\n }\n\n const keys = Object.keys(valueObj)\n const len = keys.length\n for (let i = 0; i < len; i++) {\n const subKey = keys[i]\n const existing = target[subKey]\n const incoming = valueObj[subKey]\n\n if (existing !== undefined) {\n if (insertBefore) {\n target[subKey] =\n isArray(incoming) && isArray(existing)\n ? [...incoming, ...existing]\n : incoming\n } else {\n target[subKey] =\n isArray(existing) && isArray(incoming)\n ? [...existing, ...incoming]\n : incoming\n }\n } else {\n target[subKey] = incoming\n }\n }\n}\n\nexport const computeResultLength = (data: unknown): number => {\n if (isArray(data)) {\n return data.length\n }\n if (isKeyMap(data)) {\n let acc = 0\n const values = Object.values(data)\n const len = values.length\n for (let i = 0; i < len; i++) {\n const val = values[i]\n if (isArray(val)) {\n acc += val.length\n }\n }\n return acc\n }\n return 0\n}\n\nconst getSeenIdsString = (arr: any[], uniqueKey: string): string => {\n if (!isArray(arr)) return ''\n const ids: ObjectKey[] = []\n const len = arr.length\n\n for (let i = 0; i < len; i++) {\n const id = extractUniqueKey(arr[i], uniqueKey)\n if (id !== undefined) {\n ids.push(id)\n }\n }\n return ids.join(',')\n}\n\nexport const generateRequestParams = ({\n field,\n uniqueKey = ENUM.DEFAULT_UNIQUE_KEY_NAME,\n query = {},\n type\n}: GenerateParamsType): GenerateParamsResp => {\n const result: GenerateParamsResp = { ...query }\n const isFetched = field.fetched\n const fieldResultAny = field.result as any // 内部逻辑断言\n\n const getSafeObjectKey = (item: unknown): ObjectKey | undefined => {\n return extractUniqueKey(item as KeyMap, uniqueKey)\n }\n\n if (isFetched) {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n if (isArray(fieldResultAny)) {\n result.seen_ids = getSeenIdsString(fieldResultAny, uniqueKey)\n const targetIndex = query.is_up ? 0 : fieldResultAny.length - 1\n const targetItem = fieldResultAny[targetIndex]\n result.since_id = getSafeObjectKey(targetItem)\n }\n result.is_up = query.is_up ? 1 : 0\n result.page = typeof query.page === 'number' ? query.page : field.page + 1\n } else if (type === ENUM.FETCH_TYPE.HAS_LOADED_IDS) {\n if (isArray(fieldResultAny)) {\n result.seen_ids = getSeenIdsString(fieldResultAny, uniqueKey)\n }\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n if (isArray(fieldResultAny)) {\n const targetIndex = query.is_up ? 0 : fieldResultAny.length - 1\n const targetItem = fieldResultAny[targetIndex]\n result.since_id = getSafeObjectKey(targetItem)\n }\n result.is_up = query.is_up ? 1 : 0\n } else if (type === ENUM.FETCH_TYPE.PAGINATION) {\n result.page = typeof query.page === 'number' ? query.page : undefined\n } else if (type === ENUM.FETCH_TYPE.SCROLL_LOAD_MORE) {\n result.page = field.page + 1\n }\n } else {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n result.seen_ids = ''\n result.since_id = isObjectKey(query.sinceId)\n ? query.sinceId\n : query.is_up\n ? 999999999\n : 0\n result.is_up = query.is_up ? 1 : 0\n result.page =\n typeof query.page === 'number' ? query.page : field.page || 1\n } else if (type === ENUM.FETCH_TYPE.HAS_LOADED_IDS) {\n result.seen_ids = ''\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n result.since_id = isObjectKey(query.sinceId)\n ? query.sinceId\n : query.is_up\n ? 999999999\n : 0\n result.is_up = query.is_up ? 1 : 0\n } else if (type === ENUM.FETCH_TYPE.PAGINATION) {\n result.page = typeof query.page === 'number' ? query.page : field.page\n } else if (type === ENUM.FETCH_TYPE.SCROLL_LOAD_MORE) {\n result.page = 1\n }\n }\n\n return result\n}\n\nexport const toObjectKey = (\n id: ObjectKey | ObjectKey[] | undefined\n): ObjectKey | undefined => {\n if (id === undefined) return undefined\n if (isObjectKey(id)) return id\n if (isObjectKeyArray(id) && id.length > 0) return id[0]\n return undefined\n}\n\nexport const getResultAsArray = (field: DefaultField): any[] | null => {\n const result = field[ENUM.FIELD_DATA.RESULT_KEY]\n return isArray(result) ? result : null\n}\n\nexport const updateArrayItem = (\n arr: any[],\n index: number,\n updater: (item: KeyMap) => KeyMap\n): void => {\n if (index >= 0 && index < arr.length) {\n const item = arr[index]\n if (isKeyMap(item)) {\n arr[index] = updater(item)\n }\n }\n}\n","// setters.ts\nimport ENUM from './enum'\nimport {\n computeResultLength,\n isObjectResult,\n setReactivityField\n} from './utils'\n\nimport type { BaseApiResponse, SetDataType, SetErrorType } from './types'\n\nexport const SET_DATA = ({\n getter,\n setter,\n data,\n fieldName,\n type,\n page,\n insertBefore\n}: SetDataType): Promise<void> => {\n return new Promise((resolve, reject) => {\n const fieldData = getter(fieldName)\n if (!fieldData) {\n reject(new Error(`Field ${fieldName} not found.`))\n return\n }\n\n // 强制类型转换以进行写入\n const field = fieldData\n\n let result: any\n let extra: unknown\n\n if (isObjectResult(data)) {\n result = data\n field.nothing = false\n field.fetched = true\n field.noMore = true\n field.page = -1\n } else {\n const apiResponse = data as BaseApiResponse\n result = apiResponse.result\n extra = apiResponse.extra\n const isEmpty = computeResultLength(result) === 0\n field.nothing = field.fetched ? false : isEmpty\n field.fetched = true\n field.total = apiResponse.total || 0\n\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n field.noMore = false\n field.page = +page\n } else {\n field.noMore =\n typeof apiResponse.no_more === 'undefined'\n ? isEmpty\n : apiResponse.no_more || isEmpty\n field.page = field.page + 1\n }\n }\n\n field.loading = false\n\n setReactivityField(\n field,\n ENUM.FIELD_DATA.RESULT_KEY,\n result,\n type,\n insertBefore\n )\n\n if (extra !== undefined && extra !== null) {\n setReactivityField(\n field,\n ENUM.FIELD_DATA.EXTRA_KEY,\n extra,\n type,\n insertBefore\n )\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: field,\n callback: () => {\n resolve()\n }\n })\n })\n}\n\nexport const SET_ERROR = ({ setter, fieldName, error }: SetErrorType): void => {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: {\n error,\n loading: false\n }\n })\n}\n","import ENUM from './enum'\nimport { SET_DATA, SET_ERROR } from './setters'\nimport {\n combineArrayData,\n computeMatchedItemIndex,\n computeResultLength,\n generateDefaultField,\n generateRequestParams,\n getObjectDeepValue,\n getResultAsArray,\n isArray,\n isKeyMap,\n isKeyMapArray,\n isObjectKey,\n isObjectKeyArray,\n searchValueByKey,\n stableSerialize,\n toObjectKey,\n updateArrayItem,\n updateObjectDeepValue\n} from './utils'\n\nimport type {\n ApiContract,\n BaseApiResponse,\n DefaultField,\n FetchType,\n InitDataType,\n InitStateType,\n KeyMap,\n LoadMoreType,\n ObjectKey,\n RequestParams,\n UpdateStateType\n} from './types'\n\n// --- 辅助函数:生成字段名 ---\nexport const generateFieldName = <P extends RequestParams, R>({\n func,\n query\n}: {\n func: ApiContract<P, R>\n query?: P\n}): string => {\n let result = func.id\n if (!query) return result\n\n const queryObj = query as Record<string, unknown>\n const filteredKeys = Object.keys(queryObj)\n .filter((key) => !func.paramsIgnore.includes(key))\n .sort()\n\n for (const key of filteredKeys) {\n const value = queryObj[key]\n const safeValue =\n typeof value === 'object' && value !== null\n ? stableSerialize(value)\n : String(value)\n result += `-${key}-${encodeURIComponent(safeValue)}`\n }\n return result\n}\n\n// --- API 构造器 ---\nexport const createApi = <P extends RequestParams, R>(options: {\n id: string\n type?: FetchType\n uniqueKey?: string\n paramsIgnore?: string[]\n fetcher: (params: P) => Promise<BaseApiResponse<R>>\n}): ApiContract<P, R> => {\n const fn = ((params: P) => options.fetcher(params)) as ApiContract<P, R>\n\n const metadata: Partial<ApiContract<P, R>> = {\n id: options.id,\n type: options.type || (ENUM.FETCH_TYPE.SCROLL_LOAD_MORE as FetchType),\n uniqueKey: options.uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME,\n paramsIgnore: [\n 'page',\n 'is_up',\n 'since_id',\n 'seen_ids',\n '__refresh__',\n '__reload__',\n ...(options.paramsIgnore || [])\n ]\n }\n\n return Object.freeze(Object.assign(fn, metadata))\n}\n\n// --- 核心 Action:initState ---\nexport const initState = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n opts\n}: InitStateType<P, R>): Promise<void> => {\n return new Promise((resolve) => {\n const fieldName = generateFieldName({ func, query })\n if (getter(fieldName)) return resolve()\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(opts),\n callback: () => resolve()\n })\n })\n}\n\n// --- 核心 Action:initData ---\nexport const initData = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n callback\n}: InitDataType<P, R>): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n\n const doRefresh = !!query?.__refresh__\n const needReset = !!query?.__reload__\n const directlyLoadData = doRefresh && !needReset\n\n if (fieldData && fieldData.error && !doRefresh) return resolve()\n if (fieldData && fieldData.loading) return resolve()\n if (fieldData && fieldData.fetched && !doRefresh) return resolve()\n\n const params = generateRequestParams({\n field: generateDefaultField({ ...fieldData, fetched: false }),\n uniqueKey: func.uniqueKey,\n type: func.type,\n query: query as KeyMap\n })\n\n const executeFetch = () => {\n func(params as P)\n .then((data) => {\n const commitData = () => {\n SET_DATA({\n getter,\n setter,\n data: data as BaseApiResponse,\n fieldName,\n type: func.type,\n page: params.page || 0,\n insertBefore: false\n }).then(() => {\n callback?.({ params: params as P, data, refresh: doRefresh })\n resolve()\n })\n }\n\n if (directlyLoadData) {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(),\n callback: commitData\n })\n } else {\n commitData()\n }\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n\n if (directlyLoadData) {\n executeFetch()\n } else {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: { ...generateDefaultField(), loading: true, error: null },\n callback: executeFetch\n })\n }\n })\n\n// --- 核心 Action:loadMore ---\nexport const loadMore = <P extends RequestParams, R>({\n getter,\n setter,\n query,\n func,\n errorRetry,\n callback\n}: LoadMoreType<P, R>): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n if (!fieldData || fieldData.loading || fieldData.nothing) return resolve()\n if (fieldData.noMore && !errorRetry) return resolve()\n\n const type = func.type\n if (\n type === ENUM.FETCH_TYPE.PAGINATION &&\n query?.page != null &&\n Number(query.page) === fieldData.page\n ) {\n return resolve()\n }\n\n const loadingState: Partial<DefaultField> =\n type === ENUM.FETCH_TYPE.PAGINATION\n ? { loading: true, error: null, result: [], extra: null }\n : { loading: true, error: null }\n\n const params = generateRequestParams({\n field: fieldData,\n uniqueKey: func.uniqueKey,\n type,\n query: query as KeyMap\n })\n\n if (fieldData.extra) params.extra = fieldData.extra\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: loadingState,\n callback: () => {\n func(params as P)\n .then((data) => {\n SET_DATA({\n getter,\n setter,\n data: data as BaseApiResponse,\n type,\n fieldName,\n page: params.page || 0,\n insertBefore: !!query?.is_up\n }).then(() => {\n callback?.({ params: params as P, data, refresh: false })\n resolve()\n })\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n })\n })\n\n// --- 核心 Action:updateState ---\nexport const updateState = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n method,\n id,\n value,\n changeKey\n}: UpdateStateType<P, R>): Promise<unknown> => {\n return new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n if (!fieldData) {\n reject(new Error(`Field ${fieldName} not found.`))\n return\n }\n\n if (fieldData.page === -1) {\n resolve(null)\n return\n }\n\n const _id = id\n const _uniqueKey = func.uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME\n const _changeKey = changeKey || ENUM.FIELD_DATA.RESULT_KEY\n const beforeLength = computeResultLength(\n fieldData[ENUM.FIELD_DATA.RESULT_KEY]\n )\n\n const newFieldData: DefaultField = { ...fieldData }\n const resultArray = getResultAsArray(newFieldData)\n\n if (method === ENUM.CHANGE_TYPE.SEARCH_FIELD) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for SEARCH_FIELD.'))\n return\n }\n const searchResult = resultArray\n ? searchValueByKey(resultArray, objectKeyId, _uniqueKey)\n : undefined\n resolve(searchResult)\n return // 搜索操作不需要更新状态\n } else if (method === ENUM.CHANGE_TYPE.RESULT_UPDATE_KV) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for RESULT_UPDATE_KV.'))\n return\n }\n if (resultArray) {\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n resultArray,\n _uniqueKey\n )\n if (matchedIndex >= 0 && isKeyMap(resultArray[matchedIndex])) {\n updateObjectDeepValue(resultArray[matchedIndex], _changeKey, value)\n }\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_ITEM_MERGE) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for RESULT_ITEM_MERGE.'))\n return\n }\n if (resultArray && isKeyMap(value)) {\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n resultArray,\n _uniqueKey\n )\n updateArrayItem(resultArray, matchedIndex, (item) => ({\n ...item,\n ...value\n }))\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESET_FIELD) {\n // 使用特定字段更新而不是通用 KeyMap\n if (_changeKey === ENUM.FIELD_DATA.RESULT_KEY && isKeyMapArray(value)) {\n newFieldData.result = value\n } else if (_changeKey === ENUM.FIELD_DATA.EXTRA_KEY && isKeyMap(value)) {\n newFieldData.extra = value\n }\n resolve(null)\n } else {\n // 获取要修改的值\n let modifyValue: unknown\n if (_changeKey === ENUM.FIELD_DATA.RESULT_KEY) {\n modifyValue = newFieldData.result\n } else if (_changeKey === ENUM.FIELD_DATA.EXTRA_KEY) {\n modifyValue = newFieldData.extra\n } else {\n modifyValue = getObjectDeepValue(newFieldData, _changeKey)\n }\n if (modifyValue == null) {\n modifyValue = []\n }\n\n const objectKeyId = toObjectKey(_id)\n const matchedIndex =\n objectKeyId !== undefined && isKeyMapArray(modifyValue)\n ? computeMatchedItemIndex(objectKeyId, modifyValue, _uniqueKey)\n : -1\n\n switch (method) {\n case ENUM.CHANGE_TYPE.RESULT_ADD_AFTER:\n if (isArray(modifyValue)) {\n modifyValue = isArray(value)\n ? [...modifyValue, ...value]\n : [...modifyValue, value]\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_ADD_BEFORE:\n if (isArray(modifyValue)) {\n modifyValue = isArray(value)\n ? [...value, ...modifyValue]\n : [value, ...modifyValue]\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_REMOVE_BY_ID:\n if (isKeyMapArray(modifyValue)) {\n if (matchedIndex >= 0) {\n modifyValue.splice(matchedIndex, 1)\n } else if (isObjectKeyArray(_id)) {\n const idSet = new Set<ObjectKey>(_id)\n modifyValue = modifyValue.filter((item) => {\n const itemKey = getObjectDeepValue(item, _uniqueKey)\n return !isObjectKey(itemKey) || !idSet.has(itemKey)\n })\n }\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_INSERT_TO_BEFORE:\n if (isArray(modifyValue) && matchedIndex >= 0) {\n modifyValue.splice(matchedIndex, 0, value)\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_INSERT_TO_AFTER:\n if (isArray(modifyValue) && matchedIndex >= 0) {\n modifyValue.splice(matchedIndex + 1, 0, value)\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_LIST_MERGE:\n if (isKeyMapArray(modifyValue)) {\n if (isKeyMapArray(value)) {\n combineArrayData(modifyValue, value, _uniqueKey)\n } else if (isKeyMap(value)) {\n // value 是 KeyMap,需要检查是否为 Record<ObjectKey, KeyMap>\n const valueAsRecord: Record<ObjectKey, KeyMap> = {}\n for (const [k, v] of Object.entries(value)) {\n if (isKeyMap(v)) {\n valueAsRecord[k] = v\n }\n }\n combineArrayData(modifyValue, valueAsRecord, _uniqueKey)\n }\n }\n break\n default:\n resolve(null)\n return\n }\n // 更新对应字段的值\n if (\n _changeKey === ENUM.FIELD_DATA.RESULT_KEY &&\n isKeyMapArray(modifyValue)\n ) {\n newFieldData.result = modifyValue\n } else if (\n _changeKey === ENUM.FIELD_DATA.EXTRA_KEY &&\n isKeyMap(modifyValue)\n ) {\n newFieldData.extra = modifyValue\n }\n resolve(null)\n }\n\n const afterLength = computeResultLength(\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY]\n )\n newFieldData.total = newFieldData.total + afterLength - beforeLength\n newFieldData.nothing = afterLength === 0\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: newFieldData,\n callback: () => {\n resolve(null)\n }\n })\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/enum.ts","../src/utils.ts","../src/setters.ts","../src/actions.ts"],"names":["generateFieldName"],"mappings":"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","file":"index.global.js","sourcesContent":["// enum.ts\nconst FETCH_TYPE_ARRAY = ['jump', 'sinceId', 'page', 'seenIds', 'auto'] as const\n\nexport default {\n SETTER_TYPE: {\n RESET: 0,\n MERGE: 1\n } as const,\n FETCH_TYPE_ARRAY,\n FETCH_TYPE: {\n PAGINATION: FETCH_TYPE_ARRAY[0],\n SINCE_FIRST_OR_END_ID: FETCH_TYPE_ARRAY[1],\n SCROLL_LOAD_MORE: FETCH_TYPE_ARRAY[2],\n HAS_LOADED_IDS: FETCH_TYPE_ARRAY[3],\n AUTO: FETCH_TYPE_ARRAY[4]\n } as const,\n CHANGE_TYPE: {\n SEARCH_FIELD: 'search',\n RESET_FIELD: 'reset',\n RESULT_UPDATE_KV: 'update',\n RESULT_ADD_AFTER: 'push',\n RESULT_ADD_BEFORE: 'unshift',\n RESULT_REMOVE_BY_ID: 'delete',\n RESULT_INSERT_TO_BEFORE: 'insert-before',\n RESULT_INSERT_TO_AFTER: 'insert-after',\n RESULT_LIST_MERGE: 'patch',\n RESULT_ITEM_MERGE: 'merge'\n } as const,\n FIELD_DATA: {\n RESULT_KEY: 'result',\n EXTRA_KEY: 'extra'\n } as const,\n DEFAULT_UNIQUE_KEY_NAME: 'id'\n} as const\n","// utils.ts\nimport ENUM from './enum'\nimport type {\n ApiContract,\n DefaultField,\n FetchType,\n FieldKeys,\n GenerateParamsResp,\n GenerateParamsType,\n KeyMap,\n ObjectKey,\n RequestParams\n} from './types'\n\n// ========== 类型守卫函数 ==========\n\nexport const isArray = (data: unknown): data is any[] => Array.isArray(data)\n\n/**\n * 检查是否为对象结果\n */\nexport const isResultObject = (data: unknown): data is Record<string, any> =>\n !isArray(data) && typeof data === 'object' && data !== null\n\n/**\n * 检查是否为 ObjectKey\n */\nexport const isObjectKey = (value: unknown): value is ObjectKey =>\n typeof value === 'string' || typeof value === 'number'\n\n/**\n * 检查是否为 KeyMap\n */\nexport const isKeyMap = (value: unknown): value is KeyMap =>\n typeof value === 'object' && value !== null && !isArray(value)\n\n/**\n * 检查是否为 KeyMap 数组\n * 性能优化:使用 for 循环替代 every,提前退出\n */\nexport const isKeyMapArray = (value: unknown): value is KeyMap[] => {\n if (!isArray(value)) return false\n const len = value.length\n for (let i = 0; i < len; i++) {\n const item = value[i]\n if (typeof item !== 'object' || item === null) {\n return false\n }\n }\n return true\n}\n\n/**\n * 检查是否为 ObjectKey 数组\n * 性能优化:使用 for 循环替代 every,提前退出\n */\nexport const isObjectKeyArray = (value: unknown): value is ObjectKey[] => {\n if (!isArray(value)) return false\n const len = value.length\n for (let i = 0; i < len; i++) {\n const item = value[i]\n const itemType = typeof item\n if (itemType !== 'string' && itemType !== 'number') {\n return false\n }\n }\n return true\n}\n\nexport const stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return String(value)\n }\n try {\n if (isArray(value)) {\n return JSON.stringify(value)\n }\n if (isKeyMap(value)) {\n const keys = Object.keys(value).sort()\n const obj: Record<string, unknown> = {}\n const len = keys.length\n for (let i = 0; i < len; i++) {\n const k = keys[i]\n obj[k] = value[k]\n }\n return JSON.stringify(obj)\n }\n return '[Unsupported Object]'\n } catch {\n return '[Circular Object/Value]'\n }\n}\n\nconst extractUniqueKey = (\n item: KeyMap,\n uniqueKey: string\n): ObjectKey | undefined => {\n if (!isKeyMap(item)) return undefined\n\n const val = item[uniqueKey]\n if (isObjectKey(val)) {\n return val\n }\n\n if (uniqueKey.includes('.')) {\n const deepVal = getObjectDeepValue(item, uniqueKey)\n if (isObjectKey(deepVal)) {\n return deepVal\n }\n }\n return undefined\n}\n\nexport const isObjectResult = (\n data: unknown\n): data is Record<string, unknown> => {\n if (typeof data !== 'object' || data === null) {\n return false\n }\n // 这是一个比较特定的检查,检查是否 *没有* 'result' 属性且是对象\n // 原逻辑保留,但通常 API 响应应该包含 result\n return !Object.prototype.hasOwnProperty.call(data, 'result')\n}\n\nexport const generateDefaultField = <T = any>(\n opts: Partial<DefaultField<T>> = {}\n): DefaultField<T> => ({\n result: [] as unknown as T, // 默认为空数组,但强制转换为泛型 T\n noMore: false,\n nothing: false,\n loading: false,\n error: null,\n extra: null,\n fetched: false,\n page: 0,\n total: 0,\n ...opts\n})\n\nexport const generateFieldName = <P extends RequestParams, R>({\n func,\n query\n}: {\n func: ApiContract<P, R>\n query?: P\n}): string => {\n // 快速路径:无 query\n if (!query) {\n return func.id\n }\n\n // 计算 fieldName\n let result = func.id\n const keys = Object.keys(query)\n const paramsIgnore = func.paramsIgnore\n const filteredKeys: string[] = []\n\n // 优化:减少闭包创建,直接过滤\n const keysLen = keys.length\n for (let i = 0; i < keysLen; i++) {\n const key = keys[i]\n if (!paramsIgnore.includes(key)) {\n filteredKeys.push(key)\n }\n }\n\n // 排序保证稳定性\n filteredKeys.sort()\n\n const len = filteredKeys.length\n for (let i = 0; i < len; i++) {\n const key = filteredKeys[i]\n const value = query[key]\n let safeValue: string\n\n if (typeof value === 'object' && value !== null) {\n safeValue = stableSerialize(value)\n } else {\n safeValue = String(value)\n }\n\n const encoded = encodeURIComponent(safeValue)\n result += `-${key}-${encoded}`\n }\n\n return result\n}\n\nexport const getObjectDeepValue = (\n field: unknown,\n keys: string | string[]\n): unknown => {\n if (!keys || (Array.isArray(keys) && (keys as string[]).length === 0))\n return field\n\n const keysArr = Array.isArray(keys)\n ? (keys as string[])\n : (keys as string).split('.')\n let cur: any = field\n for (let i = 0, n = keysArr.length; i < n; ++i) {\n if (cur == null || typeof cur !== 'object') return undefined\n cur = cur[keysArr[i]]\n }\n\n return cur\n}\n\nexport const updateObjectDeepValue = (\n field: KeyMap,\n changeKey: string,\n value: unknown\n): void => {\n if (!changeKey) return\n\n const keys = changeKey.split('.')\n const lastKey = keys.pop()\n if (!lastKey) return\n\n let current: KeyMap = field\n const len = keys.length\n\n for (let i = 0; i < len; i++) {\n const key = keys[i]\n const currentVal = current[key]\n if (currentVal == null || typeof currentVal !== 'object') {\n current[key] = {}\n }\n const next = current[key]\n if (isKeyMap(next)) {\n current = next\n } else {\n return\n }\n }\n\n if (current != null && typeof current === 'object') {\n current[lastKey] = value\n }\n}\n\nexport const searchValueByKey = (\n result: any[] | Record<string, any>,\n id: ObjectKey,\n key: string\n): unknown => {\n if (isArray(result)) {\n const index = computeMatchedItemIndex(id, result, key)\n return index >= 0 ? result[index] : undefined\n }\n if (isResultObject(result)) {\n return result[String(id)]\n }\n return undefined\n}\n\n/**\n * 查找匹配项的索引\n * 性能优化:\n * 1. 提前字符串化避免重复转换\n * 2. 优化简单 key 的访问路径(无需 split)\n * 3. 减少函数调用开销\n */\nexport const computeMatchedItemIndex = (\n itemId: ObjectKey,\n fieldArr: any[],\n changingKey: string\n): number => {\n const stringifiedItemId = String(itemId)\n const len = fieldArr.length\n const isSimpleKey = !changingKey.includes('.')\n\n // 快速路径:简单 key(无需深度访问)\n if (isSimpleKey) {\n for (let i = 0; i < len; i++) {\n const item = fieldArr[i]\n if (!isKeyMap(item)) continue\n if (String(item[changingKey]) === stringifiedItemId) {\n return i\n }\n }\n } else {\n // 慢速路径:深度 key\n for (let i = 0; i < len; i++) {\n const item = fieldArr[i]\n if (!isKeyMap(item)) continue\n const itemValue = getObjectDeepValue(item, changingKey)\n if (String(itemValue) === stringifiedItemId) {\n return i\n }\n }\n }\n\n return -1\n}\n\n/**\n * 合并数组数据\n * 性能优化:\n * 1. 使用 Map 进行 O(1) 查找\n * 2. 创建新对象确保响应式\n * 3. 缓存 changingKey 的解析结果\n */\nexport const combineArrayData = (\n fieldArray: any[],\n value: any[] | Record<ObjectKey, KeyMap>,\n changingKey: string\n): void => {\n const fieldArrayMap = new Map<string, number>()\n const arrLen = fieldArray.length\n\n // 构建索引 Map,复用 changingKey 解析\n for (let i = 0; i < arrLen; i++) {\n const item = fieldArray[i]\n if (!isKeyMap(item)) continue\n const id = getObjectDeepValue(item, changingKey)\n if (id !== undefined) {\n fieldArrayMap.set(String(id), i)\n }\n }\n\n if (isArray(value)) {\n const valLen = value.length\n for (let i = 0; i < valLen; i++) {\n const col = value[i]\n if (!isKeyMap(col)) continue\n const stringifyId = String(getObjectDeepValue(col, changingKey))\n\n const index = fieldArrayMap.get(stringifyId)\n\n if (index !== undefined) {\n const existingItem = fieldArray[index]\n if (isKeyMap(existingItem)) {\n // ✅ 创建新对象确保响应式\n fieldArray[index] = { ...existingItem, ...col }\n }\n }\n }\n } else if (isKeyMap(value)) {\n const entries = Object.entries(value)\n const entLen = entries.length\n for (let i = 0; i < entLen; i++) {\n const [uniqueId, col] = entries[i]\n if (!isKeyMap(col)) continue\n\n const index = fieldArrayMap.get(uniqueId)\n\n if (index !== undefined) {\n const existingItem = fieldArray[index]\n if (isKeyMap(existingItem)) {\n // ✅ 创建新对象确保响应式\n fieldArray[index] = { ...existingItem, ...col }\n }\n }\n }\n }\n}\n\n/**\n * 设置响应式字段\n * 性能优化:\n * 1. 快速路径优化常见场景\n * 2. 减少条件判断\n * 3. 使用原生方法 concat 而非展开运算符(在大数组时性能更好)\n */\nexport const setReactivityField = (\n field: DefaultField,\n key: FieldKeys,\n value: unknown,\n type: FetchType,\n insertBefore: boolean\n): void => {\n const fieldAny = field as any\n\n // 快速路径:分页模式直接赋值\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n fieldAny[key] = value\n return\n }\n\n // 快速路径:非 result 字段\n if (key !== ENUM.FIELD_DATA.RESULT_KEY) {\n if (isArray(value)) {\n const current = fieldAny[key]\n const currentArr = isArray(current) ? current : []\n // 使用 concat 性能优于展开运算符\n fieldAny[key] = insertBefore\n ? (value as any[]).concat(currentArr)\n : currentArr.concat(value as any[])\n } else {\n fieldAny[key] = value\n }\n return\n }\n\n // 处理 result 字段 - 数组类型\n const resultField = field.result\n\n if (isArray(value)) {\n const valueArr = value as KeyMap[]\n const valueLen = valueArr.length\n\n // 快速路径:空数组直接返回\n if (valueLen === 0) return\n\n const currentArr = isArray(resultField) ? resultField : []\n const currentLen = currentArr.length\n\n // 快速路径:当前为空,直接赋值\n if (currentLen === 0) {\n field.result = valueArr as any\n return\n }\n\n // 使用 concat 合并数组(比展开运算符快)\n field.result = (\n insertBefore ? valueArr.concat(currentArr) : currentArr.concat(valueArr)\n ) as any\n return\n }\n\n // 处理 result 字段 - 对象类型\n const valueObj = value as KeyMap\n let target = resultField as Record<string, any>\n\n if (\n isArray(resultField) ||\n typeof resultField !== 'object' ||\n resultField === null\n ) {\n target = {}\n field.result = target as any\n }\n\n const keys = Object.keys(valueObj)\n const len = keys.length\n\n for (let i = 0; i < len; i++) {\n const subKey = keys[i]\n const existing = target[subKey]\n const incoming = valueObj[subKey]\n\n if (existing !== undefined) {\n // 两个都是数组才合并,否则覆盖\n if (isArray(existing) && isArray(incoming)) {\n target[subKey] = insertBefore\n ? incoming.concat(existing)\n : existing.concat(incoming)\n } else {\n target[subKey] = incoming\n }\n } else {\n target[subKey] = incoming\n }\n }\n}\n\nexport const computeResultLength = (data: unknown): number => {\n if (isArray(data)) {\n return data.length\n }\n if (isKeyMap(data)) {\n let acc = 0\n const values = Object.values(data)\n const len = values.length\n for (let i = 0; i < len; i++) {\n const val = values[i]\n if (isArray(val)) {\n acc += val.length\n }\n }\n return acc\n }\n return 0\n}\n\nconst getSeenIdsString = (arr: any[], uniqueKey: string): string => {\n if (!isArray(arr)) return ''\n const ids: ObjectKey[] = []\n const len = arr.length\n\n for (let i = 0; i < len; i++) {\n const id = extractUniqueKey(arr[i], uniqueKey)\n if (id !== undefined) {\n ids.push(id)\n }\n }\n return ids.join(',')\n}\n\nexport const generateRequestParams = ({\n field,\n uniqueKey = ENUM.DEFAULT_UNIQUE_KEY_NAME,\n query = {},\n is_up = false,\n type\n}: GenerateParamsType): GenerateParamsResp => {\n const result: GenerateParamsResp = { ...query }\n const isFetched = field.fetched\n const fieldResultAny = field.result as any // 内部逻辑断言\n\n const getSafeObjectKey = (item: unknown): ObjectKey | undefined => {\n return extractUniqueKey(item as KeyMap, uniqueKey)\n }\n\n if (isFetched) {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n if (isArray(fieldResultAny)) {\n result.seen_ids = getSeenIdsString(fieldResultAny, uniqueKey)\n const targetIndex = is_up ? 0 : fieldResultAny.length - 1\n const targetItem = fieldResultAny[targetIndex]\n result.since_id = getSafeObjectKey(targetItem)\n }\n result.is_up = is_up ? 1 : 0\n result.page = typeof query.page === 'number' ? query.page : field.page + 1\n } else if (type === ENUM.FETCH_TYPE.HAS_LOADED_IDS) {\n if (isArray(fieldResultAny)) {\n result.seen_ids = getSeenIdsString(fieldResultAny, uniqueKey)\n }\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n if (isArray(fieldResultAny)) {\n const targetIndex = is_up ? 0 : fieldResultAny.length - 1\n const targetItem = fieldResultAny[targetIndex]\n result.since_id = getSafeObjectKey(targetItem)\n }\n result.is_up = is_up ? 1 : 0\n } else if (type === ENUM.FETCH_TYPE.PAGINATION) {\n result.page = typeof query.page === 'number' ? query.page : undefined\n } else if (type === ENUM.FETCH_TYPE.SCROLL_LOAD_MORE) {\n result.page = field.page + 1\n }\n } else {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n result.seen_ids = ''\n result.since_id = isObjectKey(query.sinceId) ? query.sinceId : ''\n result.is_up = is_up ? 1 : 0\n result.page =\n typeof query.page === 'number' ? query.page : field.page || 1\n } else if (type === ENUM.FETCH_TYPE.HAS_LOADED_IDS) {\n result.seen_ids = ''\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n result.since_id = isObjectKey(query.sinceId) ? query.sinceId : ''\n result.is_up = is_up ? 1 : 0\n } else if (type === ENUM.FETCH_TYPE.PAGINATION) {\n result.page = typeof query.page === 'number' ? query.page : field.page\n } else if (type === ENUM.FETCH_TYPE.SCROLL_LOAD_MORE) {\n result.page = 1\n }\n }\n\n return result\n}\n\nexport const toObjectKey = (\n id: ObjectKey | ObjectKey[] | undefined\n): ObjectKey | undefined => {\n if (id === undefined) return undefined\n if (isObjectKey(id)) return id\n if (isObjectKeyArray(id) && id.length > 0) return id[0]\n return undefined\n}\n\nexport const getResultAsArray = (field: DefaultField): any[] | null => {\n const result = field[ENUM.FIELD_DATA.RESULT_KEY]\n return isArray(result) ? result : null\n}\n\nexport const updateArrayItem = (\n arr: any[],\n index: number,\n updater: (item: KeyMap) => KeyMap\n): void => {\n if (index >= 0 && index < arr.length) {\n const item = arr[index]\n if (isKeyMap(item)) {\n arr[index] = updater(item)\n }\n }\n}\n","// setters.ts\nimport ENUM from './enum'\nimport {\n computeResultLength,\n isObjectResult,\n setReactivityField\n} from './utils'\n\nimport type { BaseApiResponse, SetDataType, SetErrorType } from './types'\n\nexport const SET_DATA = ({\n getter,\n setter,\n data,\n fieldName,\n type,\n page,\n insertBefore\n}: SetDataType): Promise<void> => {\n return new Promise((resolve, reject) => {\n const fieldData = getter(fieldName)\n if (!fieldData) {\n reject(new Error(`Field ${fieldName} not found.`))\n return\n }\n\n // 强制类型转换以进行写入\n const field = fieldData\n\n let result: any\n let extra: unknown\n\n if (isObjectResult(data)) {\n result = data\n field.nothing = false\n field.fetched = true\n field.noMore = true\n field.page = -1\n } else {\n const apiResponse = data as BaseApiResponse\n result = apiResponse.result\n extra = apiResponse.extra\n const isEmpty = computeResultLength(result) === 0\n field.nothing = field.fetched ? false : isEmpty\n field.fetched = true\n field.total = apiResponse.total || 0\n\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n field.noMore = false\n field.page = +page\n } else {\n field.noMore =\n typeof apiResponse.no_more === 'undefined'\n ? isEmpty\n : apiResponse.no_more || isEmpty\n field.page = field.page + 1\n }\n }\n\n field.loading = false\n\n setReactivityField(\n field,\n ENUM.FIELD_DATA.RESULT_KEY,\n result,\n type,\n insertBefore\n )\n\n if (extra !== undefined && extra !== null) {\n setReactivityField(\n field,\n ENUM.FIELD_DATA.EXTRA_KEY,\n extra,\n type,\n insertBefore\n )\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: field,\n callback: () => {\n resolve()\n }\n })\n })\n}\n\nexport const SET_ERROR = ({ setter, fieldName, error }: SetErrorType): void => {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: {\n error,\n loading: false\n }\n })\n}\n","import ENUM from './enum'\nimport { SET_DATA, SET_ERROR } from './setters'\nimport {\n combineArrayData,\n computeMatchedItemIndex,\n computeResultLength,\n generateDefaultField,\n generateRequestParams,\n getObjectDeepValue,\n getResultAsArray,\n isArray,\n isKeyMap,\n isKeyMapArray,\n isObjectKey,\n isObjectKeyArray,\n searchValueByKey,\n stableSerialize,\n toObjectKey,\n updateArrayItem,\n updateObjectDeepValue\n} from './utils'\n\nimport type {\n ApiContract,\n BaseApiResponse,\n DefaultField,\n FetchType,\n InitDataType,\n InitStateType,\n KeyMap,\n LoadMoreType,\n ObjectKey,\n RequestParams,\n UpdateStateType\n} from './types'\n\n// --- 辅助函数:生成字段名 ---\nexport const generateFieldName = <P extends RequestParams, R>({\n func,\n query\n}: {\n func: ApiContract<P, R>\n query?: P\n}): string => {\n let result = func.id\n if (!query) return result\n\n const queryObj = query as Record<string, unknown>\n const filteredKeys = Object.keys(queryObj)\n .filter((key) => !func.paramsIgnore.includes(key))\n .sort()\n\n for (const key of filteredKeys) {\n const value = queryObj[key]\n const safeValue =\n typeof value === 'object' && value !== null\n ? stableSerialize(value)\n : String(value)\n result += `-${key}-${encodeURIComponent(safeValue)}`\n }\n return result\n}\n\n// --- API 构造器 ---\nexport const createApi = <P extends RequestParams, R>(options: {\n id: string\n type?: FetchType\n uniqueKey?: string\n is_up?: boolean\n paramsIgnore?: string[]\n fetcher: (params: P) => Promise<BaseApiResponse<R>>\n}): ApiContract<P, R> => {\n const fn = ((params: P) => options.fetcher(params)) as ApiContract<P, R>\n\n const metadata: Partial<ApiContract<P, R>> = {\n id: options.id,\n type: options.type || (ENUM.FETCH_TYPE.SCROLL_LOAD_MORE as FetchType),\n uniqueKey: options.uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME,\n is_up: options.is_up || false,\n paramsIgnore: [\n 'page',\n 'since_id',\n 'seen_ids',\n '__refresh__',\n '__reload__',\n ...(options.paramsIgnore || [])\n ]\n }\n\n return Object.freeze(Object.assign(fn, metadata))\n}\n\n// --- 核心 Action:initState ---\nexport const initState = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n opts\n}: InitStateType<P, R>): Promise<void> => {\n return new Promise((resolve) => {\n const fieldName = generateFieldName({ func, query })\n if (getter(fieldName)) return resolve()\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(opts),\n callback: () => resolve()\n })\n })\n}\n\n// --- 核心 Action:initData ---\nexport const initData = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n callback\n}: InitDataType<P, R>): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n\n const doRefresh = !!query?.__refresh__\n const needReset = !!query?.__reload__\n const directlyLoadData = doRefresh && !needReset\n\n if (fieldData && fieldData.error && !doRefresh) return resolve()\n if (fieldData && fieldData.loading) return resolve()\n if (fieldData && fieldData.fetched && !doRefresh) return resolve()\n\n const params = generateRequestParams({\n field: generateDefaultField({ ...fieldData, fetched: false }),\n uniqueKey: func.uniqueKey,\n type: func.type,\n is_up: func.is_up,\n query: query as KeyMap\n })\n\n const executeFetch = () => {\n func(params as P)\n .then((data) => {\n const commitData = () => {\n SET_DATA({\n getter,\n setter,\n data: data as BaseApiResponse,\n fieldName,\n type: func.type,\n page: params.page || 0,\n insertBefore: false\n }).then(() => {\n callback?.({ params: params as P, data, refresh: doRefresh })\n resolve()\n })\n }\n\n if (directlyLoadData) {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(),\n callback: commitData\n })\n } else {\n commitData()\n }\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n\n if (directlyLoadData) {\n executeFetch()\n } else {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: { ...generateDefaultField(), loading: true, error: null },\n callback: executeFetch\n })\n }\n })\n\n// --- 核心 Action:loadMore ---\nexport const loadMore = <P extends RequestParams, R>({\n getter,\n setter,\n query,\n func,\n errorRetry,\n callback\n}: LoadMoreType<P, R>): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n if (!fieldData || fieldData.loading || fieldData.nothing) return resolve()\n if (fieldData.noMore && !errorRetry) return resolve()\n\n const type = func.type\n if (\n type === ENUM.FETCH_TYPE.PAGINATION &&\n query?.page != null &&\n Number(query.page) === fieldData.page\n ) {\n return resolve()\n }\n\n const loadingState: Partial<DefaultField> =\n type === ENUM.FETCH_TYPE.PAGINATION\n ? { loading: true, error: null, result: [], extra: null }\n : { loading: true, error: null }\n\n const params = generateRequestParams({\n field: fieldData,\n uniqueKey: func.uniqueKey,\n type,\n is_up: func.is_up,\n query: query as KeyMap\n })\n\n if (fieldData.extra) params.extra = fieldData.extra\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: loadingState,\n callback: () => {\n func(params as P)\n .then((data) => {\n SET_DATA({\n getter,\n setter,\n data: data as BaseApiResponse,\n type,\n fieldName,\n page: params.page || 0,\n insertBefore: func.is_up\n }).then(() => {\n callback?.({ params: params as P, data, refresh: false })\n resolve()\n })\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n })\n })\n\n// --- 核心 Action:updateState ---\nexport const updateState = <P extends RequestParams, R>({\n getter,\n setter,\n func,\n query,\n method,\n id,\n value,\n changeKey\n}: UpdateStateType<P, R>): Promise<unknown> => {\n return new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, query })\n const fieldData = getter(fieldName)\n if (!fieldData) {\n reject(new Error(`Field ${fieldName} not found.`))\n return\n }\n\n if (fieldData.page === -1) {\n resolve(null)\n return\n }\n\n const _id = id\n const _uniqueKey = func.uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME\n const _changeKey = changeKey || ENUM.FIELD_DATA.RESULT_KEY\n const beforeLength = computeResultLength(\n fieldData[ENUM.FIELD_DATA.RESULT_KEY]\n )\n\n // 创建新的 field 对象,并深拷贝 result 数组以确保响应式\n const newFieldData: DefaultField = { ...fieldData }\n // 如果 result 是数组,创建新数组引用(浅拷贝数组,但元素保持引用)\n // 这样后续的修改会在新数组上进行,确保引用变化\n let resultArray = getResultAsArray(fieldData)\n if (resultArray) {\n resultArray = [...resultArray]\n newFieldData.result = resultArray as any\n }\n\n if (method === ENUM.CHANGE_TYPE.SEARCH_FIELD) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for SEARCH_FIELD.'))\n return\n }\n const searchResult = resultArray\n ? searchValueByKey(resultArray, objectKeyId, _uniqueKey)\n : undefined\n resolve(searchResult)\n return // 搜索操作不需要更新状态\n } else if (method === ENUM.CHANGE_TYPE.RESULT_UPDATE_KV) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for RESULT_UPDATE_KV.'))\n return\n }\n if (resultArray) {\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n resultArray,\n _uniqueKey\n )\n if (matchedIndex >= 0 && isKeyMap(resultArray[matchedIndex])) {\n // ✅ 创建新对象以确保响应式\n const newItem = { ...resultArray[matchedIndex] }\n updateObjectDeepValue(newItem, _changeKey, value)\n resultArray[matchedIndex] = newItem\n }\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_ITEM_MERGE) {\n const objectKeyId = toObjectKey(_id)\n if (objectKeyId === undefined) {\n reject(new Error('ID is required for RESULT_ITEM_MERGE.'))\n return\n }\n if (resultArray && isKeyMap(value)) {\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n resultArray,\n _uniqueKey\n )\n // ✅ updateArrayItem 会创建新对象,数组已经是新引用\n updateArrayItem(resultArray, matchedIndex, (item) => ({\n ...item,\n ...value\n }))\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESET_FIELD) {\n if (_changeKey === ENUM.FIELD_DATA.RESULT_KEY && isKeyMapArray(value)) {\n // ✅ 直接替换为新值\n newFieldData.result = value\n } else if (_changeKey === ENUM.FIELD_DATA.EXTRA_KEY && isKeyMap(value)) {\n // ✅ 直接替换为新值\n newFieldData.extra = value\n }\n resolve(null)\n } else {\n // 获取要修改的值\n let modifyValue: unknown\n if (_changeKey === ENUM.FIELD_DATA.RESULT_KEY) {\n modifyValue = resultArray || newFieldData.result\n } else if (_changeKey === ENUM.FIELD_DATA.EXTRA_KEY) {\n modifyValue = newFieldData.extra\n } else {\n modifyValue = getObjectDeepValue(newFieldData, _changeKey)\n }\n if (modifyValue == null) {\n modifyValue = []\n }\n\n const objectKeyId = toObjectKey(_id)\n const matchedIndex =\n objectKeyId !== undefined && isKeyMapArray(modifyValue)\n ? computeMatchedItemIndex(objectKeyId, modifyValue, _uniqueKey)\n : -1\n\n switch (method) {\n case ENUM.CHANGE_TYPE.RESULT_ADD_AFTER:\n // ✅ 始终创建新数组\n if (isArray(modifyValue)) {\n modifyValue = isArray(value)\n ? [...modifyValue, ...value]\n : [...modifyValue, value]\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_ADD_BEFORE:\n // ✅ 始终创建新数组\n if (isArray(modifyValue)) {\n modifyValue = isArray(value)\n ? [...value, ...modifyValue]\n : [value, ...modifyValue]\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_REMOVE_BY_ID:\n // ✅ splice 或 filter 都会修改/创建数组\n if (isKeyMapArray(modifyValue)) {\n if (matchedIndex >= 0) {\n // 创建新数组副本后再 splice\n const newArray = [...modifyValue]\n newArray.splice(matchedIndex, 1)\n modifyValue = newArray\n } else if (isObjectKeyArray(_id)) {\n const idSet = new Set<ObjectKey>(_id)\n // filter 本身返回新数组\n modifyValue = modifyValue.filter((item) => {\n const itemKey = getObjectDeepValue(item, _uniqueKey)\n return !isObjectKey(itemKey) || !idSet.has(itemKey)\n })\n }\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_INSERT_TO_BEFORE:\n // ✅ 创建新数组后 splice\n if (isArray(modifyValue) && matchedIndex >= 0) {\n const newArray = [...modifyValue]\n newArray.splice(matchedIndex, 0, value)\n modifyValue = newArray\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_INSERT_TO_AFTER:\n // ✅ 创建新数组后 splice\n if (isArray(modifyValue) && matchedIndex >= 0) {\n const newArray = [...modifyValue]\n newArray.splice(matchedIndex + 1, 0, value)\n modifyValue = newArray\n }\n break\n case ENUM.CHANGE_TYPE.RESULT_LIST_MERGE:\n // ⚠️ combineArrayData 直接修改数组,需要特殊处理\n if (isKeyMapArray(modifyValue)) {\n // 创建新数组副本\n const newArray = [...modifyValue]\n if (isKeyMapArray(value)) {\n combineArrayData(newArray, value, _uniqueKey)\n } else if (isKeyMap(value)) {\n const valueAsRecord: Record<ObjectKey, KeyMap> = {}\n for (const [k, v] of Object.entries(value)) {\n if (isKeyMap(v)) {\n valueAsRecord[k] = v\n }\n }\n combineArrayData(newArray, valueAsRecord, _uniqueKey)\n }\n modifyValue = newArray\n }\n break\n default:\n resolve(null)\n return\n }\n // 更新对应字段的值\n if (\n _changeKey === ENUM.FIELD_DATA.RESULT_KEY &&\n isKeyMapArray(modifyValue)\n ) {\n newFieldData.result = modifyValue\n } else if (\n _changeKey === ENUM.FIELD_DATA.EXTRA_KEY &&\n isKeyMap(modifyValue)\n ) {\n newFieldData.extra = modifyValue\n }\n resolve(null)\n }\n\n const afterLength = computeResultLength(\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY]\n )\n newFieldData.total = newFieldData.total + afterLength - beforeLength\n newFieldData.nothing = afterLength === 0\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: newFieldData,\n callback: () => {\n resolve(null)\n }\n })\n })\n}\n"]}