@flowlist/js-core 4.0.7-beta.0 → 4.0.9-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.
Files changed (59) hide show
  1. package/dist/chunk-6WOZNOYJ.mjs +79 -0
  2. package/dist/chunk-6WOZNOYJ.mjs.map +1 -0
  3. package/dist/chunk-BTOUHSDU.mjs +91 -0
  4. package/dist/chunk-BTOUHSDU.mjs.map +1 -0
  5. package/dist/chunk-C4BWSFWU.mjs +74 -0
  6. package/dist/chunk-C4BWSFWU.mjs.map +1 -0
  7. package/dist/chunk-KIQOUUEZ.mjs +3 -0
  8. package/dist/chunk-KIQOUUEZ.mjs.map +1 -0
  9. package/dist/chunk-LF6DOBID.mjs +248 -0
  10. package/dist/chunk-LF6DOBID.mjs.map +1 -0
  11. package/dist/chunk-OKKMFSGF.mjs +253 -0
  12. package/dist/chunk-OKKMFSGF.mjs.map +1 -0
  13. package/dist/chunk-PP7QTJDR.mjs +37 -0
  14. package/dist/chunk-PP7QTJDR.mjs.map +1 -0
  15. package/dist/constants.d.mts +33 -0
  16. package/dist/constants.d.ts +33 -0
  17. package/dist/constants.js +39 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/constants.mjs +3 -0
  20. package/dist/constants.mjs.map +1 -0
  21. package/dist/core.d.mts +19 -0
  22. package/dist/core.d.ts +19 -0
  23. package/dist/core.js +446 -0
  24. package/dist/core.js.map +1 -0
  25. package/dist/core.mjs +5 -0
  26. package/dist/core.mjs.map +1 -0
  27. package/dist/index.d.mts +6 -291
  28. package/dist/index.d.ts +6 -291
  29. package/dist/index.global.js +386 -478
  30. package/dist/index.global.js.map +1 -1
  31. package/dist/index.js +386 -478
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs +7 -842
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/mutations/core.d.mts +10 -0
  36. package/dist/mutations/core.d.ts +10 -0
  37. package/dist/mutations/core.js +130 -0
  38. package/dist/mutations/core.js.map +1 -0
  39. package/dist/mutations/core.mjs +5 -0
  40. package/dist/mutations/core.mjs.map +1 -0
  41. package/dist/mutations/extended.d.mts +10 -0
  42. package/dist/mutations/extended.d.ts +10 -0
  43. package/dist/mutations/extended.js +172 -0
  44. package/dist/mutations/extended.js.map +1 -0
  45. package/dist/mutations/extended.mjs +5 -0
  46. package/dist/mutations/extended.mjs.map +1 -0
  47. package/dist/mutations/index.d.mts +14 -0
  48. package/dist/mutations/index.d.ts +14 -0
  49. package/dist/mutations/index.js +379 -0
  50. package/dist/mutations/index.js.map +1 -0
  51. package/dist/mutations/index.mjs +8 -0
  52. package/dist/mutations/index.mjs.map +1 -0
  53. package/dist/types.d.mts +140 -0
  54. package/dist/types.d.ts +140 -0
  55. package/dist/types.js +4 -0
  56. package/dist/types.js.map +1 -0
  57. package/dist/types.mjs +3 -0
  58. package/dist/types.mjs.map +1 -0
  59. package/package.json +67 -1
package/dist/index.js.map CHANGED
@@ -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.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 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 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/constants.ts","../src/_internal/utils.ts","../src/_internal/setters.ts","../src/core.ts","../src/mutations/core.ts","../src/mutations/extended.ts","../src/mutations/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// constants.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","// _internal/utils.ts\nimport ENUM from '../constants'\nimport type {\n DefaultField,\n FetchType,\n FieldKeys,\n GenerateParamsResp,\n GenerateParamsType,\n KeyMap,\n ObjectKey\n} from '../types'\n\n// ========== 类型守卫 ==========\n\nexport const isArray = (data: unknown): data is any[] => Array.isArray(data)\n\nexport const isObjectKey = (value: unknown): value is ObjectKey =>\n typeof value === 'string' || typeof value === 'number'\n\nexport const isKeyMap = (value: unknown): value is KeyMap =>\n typeof value === 'object' && value !== null && !isArray(value)\n\nexport const isKeyMapArray = (value: unknown): value is KeyMap[] =>\n isArray(value) &&\n value.every((item) => typeof item === 'object' && item !== null)\n\nexport const isObjectKeyArray = (value: unknown): value is ObjectKey[] =>\n isArray(value) &&\n value.every((item) => typeof item === 'string' || typeof item === 'number')\n\n// ========== 序列化 ==========\n\nexport const stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== 'object') return String(value)\n try {\n if (isArray(value)) return JSON.stringify(value)\n return JSON.stringify(\n Object.fromEntries(\n Object.entries(value as Record<string, unknown>).sort(([a], [b]) =>\n a.localeCompare(b)\n )\n )\n )\n } catch {\n return '[Circular]'\n }\n}\n\n// ========== 深度访问 ==========\n\nexport const getObjectDeepValue = (\n field: unknown,\n keys: string | string[]\n): unknown => {\n if (!keys || (isArray(keys) && keys.length === 0)) return field\n const keysArr = isArray(keys) ? keys : (keys as string).split('.')\n let cur: any = field\n for (let i = 0; i < keysArr.length; i++) {\n if (cur == null || typeof cur !== 'object') return undefined\n cur = cur[keysArr[i]]\n }\n return cur\n}\n\nexport const updateObjectDeepValue = (\n field: KeyMap,\n changeKey: string,\n value: unknown\n): void => {\n const keys = changeKey.split('.')\n const lastKey = keys.pop()\n if (!lastKey) return\n\n let current: KeyMap = field\n for (const key of keys) {\n if (current[key] == null || typeof current[key] !== 'object') {\n current[key] = {}\n }\n if (!isKeyMap(current[key])) return\n current = current[key] as KeyMap\n }\n current[lastKey] = value\n}\n\n// ========== uniqueKey 提取 ==========\n\nconst extractUniqueKey = (\n item: KeyMap,\n uniqueKey: string\n): ObjectKey | undefined => {\n if (!isKeyMap(item)) return undefined\n const val = item[uniqueKey]\n if (isObjectKey(val)) return val\n if (uniqueKey.includes('.')) {\n const deepVal = getObjectDeepValue(item, uniqueKey)\n if (isObjectKey(deepVal)) return deepVal\n }\n return undefined\n}\n\n// ========== 核心工具 ==========\n\nexport const generateDefaultField = <T = any>(\n opts: Partial<DefaultField<T>> = {}\n): DefaultField<T> => ({\n result: [] as unknown as 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 computeMatchedItemIndex = (\n itemId: ObjectKey,\n fieldArr: any[],\n changingKey: string\n): number => {\n const stringId = String(itemId)\n for (let i = 0; i < fieldArr.length; i++) {\n const item = fieldArr[i]\n if (!isKeyMap(item)) continue\n const val = getObjectDeepValue(item, changingKey)\n if (String(val) === stringId) return i\n }\n return -1\n}\n\nexport const computeResultLength = (data: unknown): number => {\n if (isArray(data)) return data.length\n return 0\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 && isKeyMap(arr[index])) {\n arr[index] = updater(arr[index])\n }\n}\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 (isKeyMap(result)) return result[String(id)]\n return undefined\n}\n\n// ========== 批量合并 ==========\n\nexport const combineArrayData = (\n fieldArray: any[],\n value: any[] | Record<ObjectKey, KeyMap>,\n changingKey: string\n): void => {\n const indexMap = new Map<string, number>()\n for (let i = 0; i < fieldArray.length; i++) {\n const item = fieldArray[i]\n if (!isKeyMap(item)) continue\n const id = getObjectDeepValue(item, changingKey)\n if (id !== undefined) indexMap.set(String(id), i)\n }\n\n const mergeItem = (uniqueId: string, col: KeyMap) => {\n const index = indexMap.get(uniqueId)\n if (index !== undefined && isKeyMap(fieldArray[index])) {\n fieldArray[index] = { ...fieldArray[index], ...col }\n }\n }\n\n if (isArray(value)) {\n for (const col of value) {\n if (!isKeyMap(col)) continue\n mergeItem(String(getObjectDeepValue(col, changingKey)), col)\n }\n } else if (isKeyMap(value)) {\n for (const [uniqueId, col] of Object.entries(value)) {\n if (isKeyMap(col)) mergeItem(uniqueId, 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\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 = isArray(fieldAny[key]) ? fieldAny[key] : []\n fieldAny[key] = insertBefore\n ? [...(value as any[]), ...current]\n : [...current, ...(value as any[])]\n } else {\n fieldAny[key] = value\n }\n return\n }\n\n // result 字段 — 数组\n if (isArray(value)) {\n if ((value as any[]).length === 0) return\n const current = isArray(field.result) ? (field.result as any[]) : []\n if (current.length === 0) {\n field.result = value as any\n return\n }\n field.result = (\n insertBefore\n ? [...(value as any[]), ...current]\n : [...current, ...(value as any[])]\n ) as any\n return\n }\n\n // result 字段 — 对象(按 key 分组场景)\n const valueObj = value as KeyMap\n let target = field.result as Record<string, any>\n if (\n isArray(field.result) ||\n typeof field.result !== 'object' ||\n field.result === null\n ) {\n target = {}\n field.result = target as any\n }\n\n for (const subKey of Object.keys(valueObj)) {\n const existing = target[subKey]\n const incoming = valueObj[subKey]\n if (existing !== undefined && isArray(existing) && isArray(incoming)) {\n target[subKey] = insertBefore\n ? [...incoming, ...existing]\n : [...existing, ...incoming]\n } else {\n target[subKey] = incoming\n }\n }\n}\n\n// ========== 请求参数生成 ==========\n\nconst getSeenIdsString = (arr: any[], uniqueKey: string): string => {\n if (!isArray(arr)) return ''\n const ids: ObjectKey[] = []\n for (const item of arr) {\n const id = extractUniqueKey(item, uniqueKey)\n if (id !== undefined) ids.push(id)\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 fieldResult = field.result as any\n\n const getSafeObjectKey = (item: unknown): ObjectKey | undefined =>\n extractUniqueKey(item as KeyMap, uniqueKey)\n\n if (isFetched) {\n switch (type) {\n case ENUM.FETCH_TYPE.AUTO:\n if (isArray(fieldResult)) {\n result.seen_ids = getSeenIdsString(fieldResult, uniqueKey)\n result.since_id = getSafeObjectKey(\n fieldResult[is_up ? 0 : fieldResult.length - 1]\n )\n }\n result.is_up = is_up ? 1 : 0\n result.page =\n typeof query.page === 'number' ? query.page : field.page + 1\n break\n case ENUM.FETCH_TYPE.HAS_LOADED_IDS:\n if (isArray(fieldResult)) {\n result.seen_ids = getSeenIdsString(fieldResult, uniqueKey)\n }\n break\n case ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID:\n if (isArray(fieldResult)) {\n result.since_id = getSafeObjectKey(\n fieldResult[is_up ? 0 : fieldResult.length - 1]\n )\n }\n result.is_up = is_up ? 1 : 0\n break\n case ENUM.FETCH_TYPE.PAGINATION:\n result.page = typeof query.page === 'number' ? query.page : undefined\n break\n case ENUM.FETCH_TYPE.SCROLL_LOAD_MORE:\n result.page = field.page + 1\n break\n }\n } else {\n switch (type) {\n case 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 break\n case ENUM.FETCH_TYPE.HAS_LOADED_IDS:\n result.seen_ids = ''\n break\n case 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 break\n case ENUM.FETCH_TYPE.PAGINATION:\n result.page = typeof query.page === 'number' ? query.page : field.page\n break\n case ENUM.FETCH_TYPE.SCROLL_LOAD_MORE:\n result.page = 1\n break\n }\n }\n\n return result\n}\n","// _internal/setters.ts\nimport ENUM from '../constants'\nimport type { BaseApiResponse, SetDataType, SetErrorType } from '../types'\nimport { computeResultLength, setReactivityField } from './utils'\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 const field = fieldData\n let result: any\n let extra: unknown\n\n // 标准 API 响应(有 result 属性)\n const hasResult = Object.prototype.hasOwnProperty.call(data, 'result')\n if (!hasResult) {\n // 非标准:整个 data 就是 result\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: () => resolve()\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: { error, loading: false }\n })\n}\n","// core.ts — createApi / initState / initData / loadMore / generateFieldName\nimport { SET_DATA, SET_ERROR } from './_internal/setters'\nimport {\n generateDefaultField,\n generateRequestParams,\n stableSerialize\n} from './_internal/utils'\nimport ENUM from './constants'\n\nimport type {\n ApiContract,\n BaseApiResponse,\n DefaultField,\n FetchType,\n InitDataType,\n InitStateType,\n KeyMap,\n LoadMoreType,\n RequestParams\n} from './types'\n\n// --- generateFieldName ---\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// --- createApi ---\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// --- 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// --- 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// --- 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\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","// mutations/core.ts — 5 种核心 mutation handler\nimport {\n computeMatchedItemIndex,\n getObjectDeepValue,\n isArray,\n isKeyMap,\n isKeyMapArray,\n isObjectKeyArray,\n toObjectKey,\n updateArrayItem\n} from '../_internal/utils'\nimport ENUM from '../constants'\nimport type { MutationHandler, ObjectKey } from '../types'\n\n// --- push: 末尾追加 ---\nexport const pushHandler: MutationHandler = (ctx) => {\n if (!isArray(ctx.resultArray)) return\n return {\n modifyValue: isArray(ctx.value)\n ? [...ctx.resultArray, ...ctx.value]\n : [...ctx.resultArray, ctx.value]\n }\n}\n\n// --- unshift: 头部插入 ---\nexport const unshiftHandler: MutationHandler = (ctx) => {\n if (!isArray(ctx.resultArray)) return\n return {\n modifyValue: isArray(ctx.value)\n ? [...ctx.value, ...ctx.resultArray]\n : [ctx.value, ...ctx.resultArray]\n }\n}\n\n// --- delete: 按 ID 删除 ---\nexport const deleteHandler: MutationHandler = (ctx) => {\n if (!isKeyMapArray(ctx.resultArray)) return\n\n const objectKeyId = toObjectKey(ctx._id)\n\n if (objectKeyId !== undefined) {\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n ctx.resultArray,\n ctx._uniqueKey\n )\n if (matchedIndex >= 0) {\n const newArray = [...ctx.resultArray]\n newArray.splice(matchedIndex, 1)\n return { modifyValue: newArray }\n }\n }\n\n // 批量删除:id 为数组\n if (isObjectKeyArray(ctx._id)) {\n const idSet = new Set<ObjectKey>(ctx._id)\n return {\n modifyValue: ctx.resultArray.filter((item) => {\n const itemKey = getObjectDeepValue(item, ctx._uniqueKey)\n return typeof itemKey !== 'string' && typeof itemKey !== 'number'\n ? true\n : !idSet.has(itemKey as ObjectKey)\n })\n }\n }\n\n return undefined\n}\n\n// --- merge: 按 ID 合并字段 ---\nexport const mergeHandler: MutationHandler = (ctx) => {\n const objectKeyId = toObjectKey(ctx._id)\n if (objectKeyId === undefined || !ctx.resultArray || !isKeyMap(ctx.value))\n return\n\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n ctx.resultArray,\n ctx._uniqueKey\n )\n updateArrayItem(ctx.resultArray, matchedIndex, (item) => ({\n ...item,\n ...ctx.value\n }))\n}\n\n// --- reset: 整体替换 result 或 extra ---\nexport const resetHandler: MutationHandler = (ctx) => {\n if (\n ctx._changeKey === ENUM.FIELD_DATA.RESULT_KEY &&\n isKeyMapArray(ctx.value)\n ) {\n ctx.newFieldData.result = ctx.value\n } else if (\n ctx._changeKey === ENUM.FIELD_DATA.EXTRA_KEY &&\n isKeyMap(ctx.value)\n ) {\n ctx.newFieldData.extra = ctx.value\n }\n}\n\n// --- 核心 mutation 注册表 ---\nexport const coreMutations: Record<string, MutationHandler> = {\n [ENUM.CHANGE_TYPE.RESULT_ADD_AFTER]: pushHandler,\n [ENUM.CHANGE_TYPE.RESULT_ADD_BEFORE]: unshiftHandler,\n [ENUM.CHANGE_TYPE.RESULT_REMOVE_BY_ID]: deleteHandler,\n [ENUM.CHANGE_TYPE.RESULT_ITEM_MERGE]: mergeHandler,\n [ENUM.CHANGE_TYPE.RESET_FIELD]: resetHandler\n}\n","// mutations/extended.ts — 5 种扩展 mutation handler\nimport {\n combineArrayData,\n computeMatchedItemIndex,\n isArray,\n isKeyMap,\n isKeyMapArray,\n searchValueByKey,\n toObjectKey,\n updateObjectDeepValue\n} from '../_internal/utils'\nimport ENUM from '../constants'\nimport type { KeyMap, MutationHandler, ObjectKey } from '../types'\n\n// --- search: 按 ID 查找 item ---\nexport const searchHandler: MutationHandler = (ctx) => {\n const objectKeyId = toObjectKey(ctx._id)\n if (objectKeyId === undefined) return\n const searchResult = ctx.resultArray\n ? searchValueByKey(ctx.resultArray, objectKeyId, ctx._uniqueKey)\n : undefined\n return { resolved: searchResult }\n}\n\n// --- update: 深层 KV 更新 ---\nexport const updateKVHandler: MutationHandler = (ctx) => {\n const objectKeyId = toObjectKey(ctx._id)\n if (objectKeyId === undefined || !ctx.resultArray) return\n\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n ctx.resultArray,\n ctx._uniqueKey\n )\n if (matchedIndex >= 0 && isKeyMap(ctx.resultArray[matchedIndex])) {\n const newItem = { ...ctx.resultArray[matchedIndex] }\n updateObjectDeepValue(newItem, ctx._changeKey, ctx.value)\n ctx.resultArray[matchedIndex] = newItem\n }\n}\n\n// --- insert-before: 在指定 ID 前插入 ---\nexport const insertBeforeHandler: MutationHandler = (ctx) => {\n const objectKeyId = toObjectKey(ctx._id)\n if (!isArray(ctx.resultArray) || objectKeyId === undefined) return undefined\n\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n ctx.resultArray,\n ctx._uniqueKey\n )\n if (matchedIndex >= 0) {\n const newArray = [...ctx.resultArray]\n newArray.splice(matchedIndex, 0, ctx.value)\n return { modifyValue: newArray }\n }\n return undefined\n}\n\n// --- insert-after: 在指定 ID 后插入 ---\nexport const insertAfterHandler: MutationHandler = (ctx) => {\n const objectKeyId = toObjectKey(ctx._id)\n if (!isArray(ctx.resultArray) || objectKeyId === undefined) return undefined\n\n const matchedIndex = computeMatchedItemIndex(\n objectKeyId,\n ctx.resultArray,\n ctx._uniqueKey\n )\n if (matchedIndex >= 0) {\n const newArray = [...ctx.resultArray]\n newArray.splice(matchedIndex + 1, 0, ctx.value)\n return { modifyValue: newArray }\n }\n return undefined\n}\n\n// --- patch: 批量合并 ---\nexport const patchHandler: MutationHandler = (ctx) => {\n if (!isKeyMapArray(ctx.resultArray)) return\n\n const newArray = [...ctx.resultArray]\n if (isKeyMapArray(ctx.value)) {\n combineArrayData(newArray, ctx.value, ctx._uniqueKey)\n } else if (isKeyMap(ctx.value)) {\n const valueAsRecord: Record<ObjectKey, KeyMap> = {}\n for (const [k, v] of Object.entries(ctx.value)) {\n if (isKeyMap(v)) valueAsRecord[k] = v\n }\n combineArrayData(newArray, valueAsRecord, ctx._uniqueKey)\n }\n return { modifyValue: newArray }\n}\n\n// --- 扩展 mutation 注册表 ---\nexport const extendedMutations: Record<string, MutationHandler> = {\n [ENUM.CHANGE_TYPE.SEARCH_FIELD]: searchHandler,\n [ENUM.CHANGE_TYPE.RESULT_UPDATE_KV]: updateKVHandler,\n [ENUM.CHANGE_TYPE.RESULT_INSERT_TO_BEFORE]: insertBeforeHandler,\n [ENUM.CHANGE_TYPE.RESULT_INSERT_TO_AFTER]: insertAfterHandler,\n [ENUM.CHANGE_TYPE.RESULT_LIST_MERGE]: patchHandler\n}\n","// mutations/index.ts — 全量 updateState(core + extended mutations)\nimport {\n computeResultLength,\n getResultAsArray,\n isKeyMap,\n isKeyMapArray\n} from '../_internal/utils'\nimport ENUM from '../constants'\nimport { generateFieldName } from '../core'\n\nimport type {\n DefaultField,\n MutationContext,\n MutationHandler,\n RequestParams,\n UpdateStateType\n} from '../types'\n\nimport { coreMutations } from './core'\nimport { extendedMutations } from './extended'\n\n// 合并全部 mutation handlers\nconst allMutations: Record<string, MutationHandler> = {\n ...coreMutations,\n ...extendedMutations\n}\n\nexport { coreMutations } from './core'\nexport { extendedMutations } from './extended'\n\n/**\n * 创建 updateState 函数,可传入自定义 mutation handlers\n */\nexport const createUpdateState = (\n handlers: Record<string, MutationHandler> = allMutations\n) => {\n return <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 _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 对象\n const newFieldData: DefaultField = { ...fieldData }\n let resultArray = getResultAsArray(fieldData)\n if (resultArray) {\n resultArray = [...resultArray]\n newFieldData.result = resultArray as any\n }\n\n // 查找 handler\n const handler = handlers[method]\n if (!handler) {\n resolve(null)\n return\n }\n\n const ctx: MutationContext = {\n resultArray,\n newFieldData,\n _id: id,\n _uniqueKey,\n _changeKey,\n value\n }\n\n const handlerResult = handler(ctx)\n\n // 处理 handler 返回值\n if (handlerResult) {\n // search 等操作直接返回结果\n if ('resolved' in handlerResult) {\n resolve(handlerResult.resolved)\n return\n }\n\n // modifyValue: handler 返回了处理后的数据,需要写回\n if (\n 'modifyValue' in handlerResult &&\n handlerResult.modifyValue !== undefined\n ) {\n const modifyValue = handlerResult.modifyValue\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 }\n }\n\n // 更新 total 和 nothing\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: () => resolve(null)\n })\n })\n }\n}\n\n/**\n * 默认 updateState(包含全部 10 种 mutation)\n */\nexport const updateState = createUpdateState()\n"]}