@flowlist/js-core 3.0.10 → 3.0.11

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/enum.ts","../src/setters.ts","../src/actions.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// utils.ts\nimport ENUM from './enum'\nimport type {\n ObjectKey,\n KeyMap,\n DefaultField,\n FetchType,\n FieldKeys,\n InitDataParams,\n GenerateParamsType,\n GenerateParamsResp\n} from './types'\n\nexport const isArray = (data: unknown): data is unknown[] => {\n return Array.isArray(data)\n}\n\nconst stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return String(value)\n }\n try {\n if (Array.isArray(value)) {\n return JSON.stringify(value)\n }\n const keys = Object.keys(value as Record<string, unknown>).sort()\n const obj: Record<string, unknown> = {}\n for (const k of keys) {\n obj[k] = (value as Record<string, unknown>)[k]\n }\n return JSON.stringify(obj)\n } catch {\n return '[Circular Object/Value]'\n }\n}\n\nconst extractUniqueKey = (item: unknown, uniqueKey?: string): ObjectKey | undefined => {\n if (typeof item !== 'object' || item === null) return undefined\n const changing = uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME\n const val = (item as Record<string, unknown>)[changing] ?? undefined\n if (typeof val === 'string' || typeof val === 'number') {\n return val\n }\n if (typeof changing === 'string' && changing.includes('.')) {\n const deepVal = getObjectDeepValue(item, changing)\n if (typeof deepVal === 'string' || typeof deepVal === 'number') {\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 return !Object.prototype.hasOwnProperty.call(data, 'result')\n}\n\nexport const generateDefaultField = (\n opts: Partial<DefaultField> = {}\n): DefaultField => ({\n ...{\n result: [],\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 },\n ...opts\n})\n\nexport const generateFieldName = ({\n func,\n type,\n query = {}\n}: InitDataParams): string => {\n const funcName =\n typeof func === 'string'\n ? func\n : (typeof func === 'function' ? func.name : undefined) ||\n `api-${Math.random().toString(36).substring(2, 8)}`\n const fetchType = type || 'auto'\n let result = `${funcName}-${fetchType}`\n \n const filteredKeys = Object.keys(query).filter(\n (key) =>\n (query as Record<string, unknown>)[key] !== undefined &&\n typeof (query as Record<string, unknown>)[key] !== 'function' &&\n ![\n 'page',\n 'is_up',\n 'since_id',\n 'seen_ids',\n '__refresh__',\n '__reload__'\n ].includes(key)\n )\n\n filteredKeys.sort()\n\n const querySuffix = filteredKeys.map((key) => {\n const value = (query as Record<string, unknown>)[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\n return `-${key}-${encoded}`\n }).join('')\n\n result += querySuffix\n return result\n}\n\nexport const getObjectDeepValue = (\n field: unknown,\n keys: string | string[] = ''\n): unknown => {\n if (!keys || (Array.isArray(keys) && keys.length === 0)) {\n return field\n }\n\n const keysArr = Array.isArray(keys) ? keys : keys.split('.')\n\n let result: unknown = field\n\n for (const key of keysArr) {\n if (result == null || typeof result !== 'object') {\n return undefined\n }\n result = (result as Record<string, unknown>)[key]\n }\n\n return result\n}\n\nexport const updateObjectDeepValue = (\n field: Record<string, unknown>,\n changeKey: string,\n value: unknown\n): void => {\n if (!changeKey) return\n\n const keys = changeKey.split('.')\n const lastKey = keys.pop()!\n let current: Record<string, unknown> = field\n\n for (const key of keys) {\n if (current[key] == null || typeof current[key] !== 'object') {\n current[key] = {}\n }\n current = current[key] as Record<string, unknown>\n }\n\n if (current != null && typeof current === 'object') {\n current[lastKey] = value\n }\n}\n\ntype ResultArrayType = KeyMap[]\ntype ResultObjectType = Record<ObjectKey, KeyMap[]>\n\nexport const searchValueByKey = (\n result: ResultArrayType | ResultObjectType,\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 } else {\n return result[id]\n }\n}\n\nexport const computeMatchedItemIndex = (\n itemId: ObjectKey,\n fieldArr: ResultArrayType,\n changingKey: string\n): number => {\n const stringifiedItemId = String(itemId)\n\n const len = fieldArr?.length\n if (typeof len !== 'number' || len <= 0) return -1\n\n for (let i = 0; i < len; i++) {\n const item = fieldArr[i]\n if (typeof item !== 'object' || item === null) 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: ResultArrayType,\n value: ResultArrayType | Record<ObjectKey, KeyMap>,\n changingKey: string\n): void => {\n const fieldArrayMap = new Map<string, number>()\n for (let i = 0; i < fieldArray.length; i++) {\n const item = fieldArray[i]\n if (typeof item !== 'object' || item === null) 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 for (const col of value) {\n if (typeof col !== 'object' || col === null) continue\n const stringifyId = String(getObjectDeepValue(col, changingKey))\n \n const index = fieldArrayMap.get(stringifyId)\n \n if (index !== undefined && index !== -1) {\n fieldArray[index] = { ...fieldArray[index], ...col }\n }\n }\n } else {\n for (const [uniqueId, col] of Object.entries(value)) {\n if (typeof col !== 'object' || col === null) continue\n const stringifyId = String(uniqueId)\n \n const index = fieldArrayMap.get(stringifyId)\n \n if (index !== undefined && index !== -1) {\n fieldArray[index] = { ...fieldArray[index], ...col }\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 if (type === ENUM.FETCH_TYPE.PAGINATION) {\n ;(field as Record<FieldKeys, unknown>)[key] = value\n return\n }\n \n if (key !== ENUM.FIELD_DATA.RESULT_KEY) {\n if (isArray(value)) {\n const current = (field as Record<FieldKeys, unknown>)[key]\n const currentArr = isArray(current) ? current : []\n const newValue = insertBefore\n ? [...value, ...currentArr]\n : [...currentArr, ...value]\n ;(field as Record<FieldKeys, unknown>)[key] = newValue\n } else {\n ;(field as Record<FieldKeys, unknown>)[key] = value\n }\n return\n }\n\n const resultField = field.result\n const valueObj = value as Record<string, unknown>\n\n if (isArray(value)) {\n const currentArr = isArray(resultField) ? resultField : []\n const newValue = insertBefore\n ? [...value, ...currentArr]\n : [...currentArr, ...value]\n field.result = newValue as ResultArrayType\n return\n }\n \n let target = resultField as Record<string, unknown>\n if (isArray(resultField)) {\n target = {}\n field.result = target as ResultObjectType\n } else if (typeof resultField !== 'object' || resultField === null) {\n target = {}\n field.result = target as ResultObjectType\n }\n \n Object.keys(valueObj).forEach((subKey) => {\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 (data && typeof data === 'object') {\n let acc = 0\n for (const val of Object.values(data)) {\n if (isArray(val)) {\n acc += val.length\n }\n }\n return acc\n }\n return 0\n}\n\nconst getSeenIdsString = (arr: unknown[], uniqueKey?: string): string => {\n if (!isArray(arr)) return ''\n const ids: ObjectKey[] = []\n\n for (const item of arr) {\n const id = extractUniqueKey(item, uniqueKey)\n if (id !== undefined) {\n ids.push(id)\n }\n }\n return ids.join(',')\n}\n\nexport const generateRequestParams = ({\n field,\n uniqueKey,\n query = {},\n type\n}: GenerateParamsType): GenerateParamsResp => {\n const result: GenerateParamsResp = {}\n const isFetched = field.fetched\n \n const getSafeObjectKey = (item: unknown): ObjectKey | undefined => {\n return extractUniqueKey(item, uniqueKey)\n }\n\n\n if (isFetched) {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n if (isArray(field.result)) {\n result.seen_ids = getSeenIdsString(field.result, uniqueKey)\n \n const targetIndex = query.is_up ? 0 : field.result.length - 1\n const targetItem = field.result[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(field.result)) {\n result.seen_ids = getSeenIdsString(field.result, uniqueKey)\n }\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n if (isArray(field.result)) {\n const targetIndex = query.is_up ? 0 : field.result.length - 1\n const targetItem = field.result[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 =\n typeof query.sinceId === 'string' || typeof query.sinceId === 'number'\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 =\n typeof query.sinceId === 'string' || typeof query.sinceId === 'number'\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 {\n ...query,\n ...result\n }\n}\n","// 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","// setters.ts\nimport {\n computeResultLength,\n setReactivityField,\n isObjectResult\n} from './utils'\nimport ENUM from './enum'\nimport type {\n SetDataType,\n SetErrorType,\n DefaultField,\n ApiResponse,\n ResultType\n} 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 // 类型断言:确保 fieldData 符合 DefaultField<T, E>\n const field = fieldData as DefaultField\n\n let result: ResultType\n let extra: unknown\n\n if (isObjectResult(data)) {\n // data is T (object result mode)\n result = data\n field.nothing = false\n field.fetched = true\n field.noMore = true\n field.page = -1\n } else {\n // data is ApiResponse<T, E>\n const apiResponse = data as ApiResponse\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 // Mutate field in-place (same as old logic)\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 // Notify setter that field has been mutated (not replaced)\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET, // or MUTATE if you have such type\n value: field, // same reference\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","// actions.ts\nimport {\n generateDefaultField,\n generateFieldName,\n generateRequestParams,\n computeMatchedItemIndex,\n combineArrayData,\n updateObjectDeepValue,\n getObjectDeepValue,\n computeResultLength,\n searchValueByKey,\n isArray\n} from './utils'\nimport { SET_DATA, SET_ERROR } from './setters'\nimport ENUM from './enum'\nimport type {\n ObjectKey,\n InitStateType,\n InitDataType,\n LoadMoreType,\n UpdateStateType,\n DefaultField,\n KeyMap,\n ResultArrayType,\n ResultObjectType,\n ApiResponse\n} from './types'\n\nexport const initState = ({\n getter,\n setter,\n func,\n type,\n query,\n opts\n}: InitStateType): Promise<void> => {\n return new Promise((resolve) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n if (fieldData) {\n resolve()\n return\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(opts),\n callback: () => {\n resolve()\n }\n })\n })\n}\n\nexport const initData = ({\n getter,\n setter,\n func,\n type,\n query,\n api,\n uniqueKey,\n callback\n}: InitDataType): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n const doRefresh = !!query?.__refresh__\n const needReset = !!query?.__reload__\n\n if (fieldData && fieldData.error && !doRefresh) {\n resolve()\n return\n }\n if (fieldData && fieldData.loading) {\n resolve()\n return\n }\n const dontFetch = fieldData && fieldData.fetched && !doRefresh\n if (dontFetch) {\n resolve()\n return\n }\n\n const params = generateRequestParams({\n field: {\n ...(fieldData || generateDefaultField()),\n fetched: false\n },\n uniqueKey,\n query,\n type\n })\n\n const getData = () => {\n const apiCaller = () =>\n new Promise<ApiResponse>((res, rej) => {\n const getDataFromAPI = () => {\n const funcCaller =\n typeof func === 'string' && api ? api[func] : func\n\n if (typeof funcCaller === 'function') {\n funcCaller(params)\n .then(res)\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n rej(error)\n })\n }\n }\n\n getDataFromAPI()\n })\n\n apiCaller()\n .then((data) => {\n const setData = () => {\n SET_DATA({\n getter,\n setter,\n data,\n fieldName,\n type,\n page: params.page || 0,\n insertBefore: false\n }).then(() => {\n if (callback) {\n callback({\n params,\n data,\n refresh: doRefresh\n })\n }\n resolve()\n })\n }\n\n if (doRefresh && !needReset) {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(),\n callback: setData\n })\n } else {\n setData()\n }\n })\n .catch(reject)\n }\n\n if (doRefresh && !needReset) {\n getData()\n } else {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: {\n ...generateDefaultField(),\n loading: true,\n error: null,\n extra: null\n },\n callback: getData\n })\n }\n })\n\nexport const loadMore = ({\n getter,\n setter,\n query,\n type,\n func, // string | function\n api,\n uniqueKey,\n errorRetry,\n callback\n}: LoadMoreType): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n\n if (!fieldData) {\n resolve()\n return\n }\n\n if (fieldData.loading) {\n resolve()\n return\n }\n if (fieldData.nothing) {\n resolve()\n return\n }\n if (fieldData.noMore && !errorRetry) {\n resolve()\n return\n }\n if (\n type === ENUM.FETCH_TYPE.PAGINATION &&\n query &&\n query.page != null &&\n +query.page === fieldData.page\n ) {\n resolve()\n return\n }\n\n let loadingState: Partial<DefaultField>\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n loadingState = {\n loading: true,\n error: null,\n [ENUM.FIELD_DATA.RESULT_KEY]: [],\n [ENUM.FIELD_DATA.EXTRA_KEY]: null\n }\n } else {\n loadingState = {\n loading: true,\n error: null\n }\n }\n\n const params = generateRequestParams({\n field: fieldData,\n uniqueKey,\n query,\n type\n })\n\n if ('extra' in fieldData) {\n ;(params as KeyMap)[ENUM.FIELD_DATA.EXTRA_KEY] = fieldData.extra\n }\n\n const getData = () => {\n const funcCaller = typeof func === 'string' && api ? api[func] : func\n\n if (typeof funcCaller === 'function') {\n funcCaller(params)\n .then((data: ApiResponse) => {\n SET_DATA({\n getter,\n setter,\n data,\n fieldName,\n type,\n page: params.page || 0,\n insertBefore: !!query?.is_up\n }).then(() => {\n if (callback) {\n callback({\n params,\n data,\n refresh: false\n })\n }\n resolve()\n })\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: loadingState,\n callback: getData\n })\n })\n\n// --- updateState: func is now just a string ---\nexport const updateState = ({\n getter,\n setter,\n func, // string only\n type,\n query,\n method,\n value,\n id,\n uniqueKey,\n changeKey\n}: UpdateStateType): Promise<unknown> => {\n return new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, 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 = 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\n if (method === ENUM.CHANGE_TYPE.SEARCH_FIELD) {\n if (_id == null) {\n reject(new Error('ID is required for SEARCH_FIELD.'))\n return\n }\n // --- 修正: 安全断言 ---\n const result = searchValueByKey(\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as\n | ResultArrayType\n | ResultObjectType,\n _id as ObjectKey,\n _uniqueKey\n )\n resolve(result)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_UPDATE_KV) {\n if (_id == null) {\n reject(new Error('ID is required for RESULT_UPDATE_KV.'))\n return\n }\n const matchedIndex = computeMatchedItemIndex(\n _id as ObjectKey,\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as ResultArrayType,\n _uniqueKey\n )\n if (matchedIndex >= 0) {\n updateObjectDeepValue(\n (\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as Record<\n string,\n unknown\n >[]\n )[matchedIndex],\n _changeKey,\n value\n )\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_ITEM_MERGE) {\n if (_id == null) {\n reject(new Error('ID is required for RESULT_ITEM_MERGE.'))\n return\n }\n const matchedIndex = computeMatchedItemIndex(\n _id as ObjectKey,\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as ResultArrayType,\n _uniqueKey\n )\n if (matchedIndex >= 0) {\n const currentItem = (\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as Record<string, unknown>[]\n )[matchedIndex]\n ;(\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as Record<string, unknown>[]\n )[matchedIndex] = {\n ...currentItem,\n ...(value as Record<string, unknown>)\n }\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESET_FIELD) {\n // Safe double assertion\n updateObjectDeepValue(\n newFieldData as unknown as Record<string, unknown>,\n _changeKey,\n value\n )\n resolve(null)\n } else {\n let modifyValue = getObjectDeepValue(\n newFieldData as unknown as Record<string, unknown>,\n _changeKey\n )\n if (modifyValue == null) {\n modifyValue = []\n }\n\n const matchedIndex =\n _id != null\n ? computeMatchedItemIndex(\n _id as ObjectKey,\n modifyValue as ResultArrayType,\n _uniqueKey\n )\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 (isArray(modifyValue)) {\n if (matchedIndex >= 0) {\n modifyValue.splice(matchedIndex, 1)\n } else if (isArray(_id)) {\n const idSet = new Set(_id as ObjectKey[])\n modifyValue = (modifyValue as Record<string, unknown>[]).filter(\n (item) =>\n !idSet.has(\n getObjectDeepValue(\n item as Record<string, unknown>,\n _uniqueKey\n ) as ObjectKey\n )\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 (isArray(modifyValue)) {\n combineArrayData(modifyValue as ResultArrayType, value, _uniqueKey)\n }\n break\n default:\n resolve(null)\n return\n }\n ;(newFieldData as unknown as Record<string, unknown>)[_changeKey] =\n modifyValue\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/utils.ts","../src/enum.ts","../src/setters.ts","../src/actions.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// utils.ts\nimport ENUM from './enum'\nimport type {\n ObjectKey,\n KeyMap,\n DefaultField,\n FetchType,\n FieldKeys,\n InitDataParams,\n GenerateParamsType,\n GenerateParamsResp,\n ResultArrayType,\n ResultObjectType\n} from './types'\n\nexport const isArray = (data: unknown): data is unknown[] => Array.isArray(data)\n\nconst stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return String(value)\n }\n try {\n if (Array.isArray(value)) {\n return JSON.stringify(value)\n }\n const keys = Object.keys(value as Record<string, unknown>).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 as Record<string, unknown>)[k]\n }\n return JSON.stringify(obj)\n } catch {\n return '[Circular Object/Value]'\n }\n}\n\nconst extractUniqueKey = (\n item: unknown,\n uniqueKey: string\n): ObjectKey | undefined => {\n if (typeof item !== 'object' || item === null) return undefined\n\n const val = (item as KeyMap)[uniqueKey]\n if (typeof val === 'string' || typeof val === 'number') {\n return val\n }\n\n if (uniqueKey.includes('.')) {\n const deepVal = getObjectDeepValue(item, uniqueKey)\n if (typeof deepVal === 'string' || typeof deepVal === 'number') {\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 return !Object.prototype.hasOwnProperty.call(data, 'result')\n}\n\nexport const generateDefaultField = (\n opts: Partial<DefaultField> = {}\n): DefaultField => ({\n result: [],\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 = ({\n func,\n type,\n query = {}\n}: InitDataParams): string => {\n const funcName =\n typeof func === 'string'\n ? func\n : (typeof func === 'function' ? func.name : undefined) ||\n `api-${Math.random().toString(36).substring(2, 8)}`\n let result = `${funcName}-${type || 'auto'}`\n\n const filteredKeys = Object.keys(query).filter((key) => {\n const value = query[key]\n return (\n value !== undefined &&\n typeof value !== 'function' &&\n key !== 'page' &&\n key !== 'is_up' &&\n key !== 'since_id' &&\n key !== 'seen_ids' &&\n key !== '__refresh__' &&\n key !== '__reload__'\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.length === 0)) {\n return field\n }\n\n const keysArr = Array.isArray(keys) ? keys : keys.split('.')\n let result: unknown = 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 result = (result as KeyMap)[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 let current: KeyMap = field\n const len = keys.length\n\n for (let i = 0; i < len; i++) {\n const key = keys[i]\n if (current[key] == null || typeof current[key] !== 'object') {\n current[key] = {}\n }\n current = current[key] as KeyMap\n }\n\n if (current != null && typeof current === 'object') {\n current[lastKey] = value\n }\n}\n\nexport const searchValueByKey = (\n result: ResultArrayType | ResultObjectType,\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 return (result as ResultObjectType)[String(id)]\n}\n\nexport const computeMatchedItemIndex = (\n itemId: ObjectKey,\n fieldArr: ResultArrayType,\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 (typeof item !== 'object' || item === null) 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: ResultArrayType,\n value: ResultArrayType | 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 (typeof item !== 'object' || item === null) 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 (typeof col !== 'object' || col === null) continue\n const stringifyId = String(getObjectDeepValue(col, changingKey))\n\n const index = fieldArrayMap.get(stringifyId)\n\n if (index !== undefined) {\n fieldArray[index] = { ...fieldArray[index], ...col }\n }\n }\n } else {\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 (typeof col !== 'object' || col === null) continue\n\n const index = fieldArrayMap.get(uniqueId)\n\n if (index !== undefined) {\n fieldArray[index] = { ...fieldArray[index], ...col }\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 if (type === ENUM.FETCH_TYPE.PAGINATION) {\n ;(field as Record<FieldKeys, unknown>)[key] = value\n return\n }\n\n if (key !== ENUM.FIELD_DATA.RESULT_KEY) {\n if (isArray(value)) {\n const current = (field as Record<FieldKeys, unknown>)[key]\n const currentArr = isArray(current) ? current : []\n const newValue = insertBefore\n ? [...value, ...currentArr]\n : [...currentArr, ...value]\n ;(field as Record<FieldKeys, unknown>)[key] = newValue\n } else {\n ;(field as Record<FieldKeys, unknown>)[key] = value\n }\n return\n }\n\n const resultField = field.result\n const valueObj = value as KeyMap\n\n if (isArray(value)) {\n const currentArr = isArray(resultField) ? resultField : []\n const newValue = insertBefore\n ? [...value, ...currentArr]\n : [...currentArr, ...value]\n field.result = newValue as ResultArrayType\n return\n }\n\n let target = resultField as KeyMap\n if (isArray(resultField)) {\n target = {}\n field.result = target as ResultObjectType\n } else if (typeof resultField !== 'object' || resultField === null) {\n target = {}\n field.result = target as ResultObjectType\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 (data && typeof data === 'object') {\n let acc = 0\n const values = Object.values(data)\n const len = values.length\n for (let i = 0; i < len; i++) {\n if (isArray(values[i])) {\n acc += (values[i] as unknown[]).length\n }\n }\n return acc\n }\n return 0\n}\n\nconst getSeenIdsString = (arr: unknown[], 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\n const getSafeObjectKey = (item: unknown): ObjectKey | undefined => {\n return extractUniqueKey(item, uniqueKey)\n }\n\n if (isFetched) {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n if (isArray(field.result)) {\n result.seen_ids = getSeenIdsString(field.result, uniqueKey)\n\n const targetIndex = query.is_up ? 0 : field.result.length - 1\n const targetItem = field.result[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(field.result)) {\n result.seen_ids = getSeenIdsString(field.result, uniqueKey)\n }\n } else if (type === ENUM.FETCH_TYPE.SINCE_FIRST_OR_END_ID) {\n if (isArray(field.result)) {\n const targetIndex = query.is_up ? 0 : field.result.length - 1\n const targetItem = field.result[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 =\n typeof query.sinceId === 'string' || typeof query.sinceId === 'number'\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 =\n typeof query.sinceId === 'string' || typeof query.sinceId === 'number'\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","// 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","// setters.ts\nimport {\n computeResultLength,\n setReactivityField,\n isObjectResult\n} from './utils'\nimport ENUM from './enum'\nimport type {\n SetDataType,\n SetErrorType,\n DefaultField,\n ApiResponse,\n ResultType\n} 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 const field = fieldData as DefaultField\n\n let result: ResultType\n let extra: unknown\n\n if (isObjectResult(data)) {\n result = data as ResultType\n field.nothing = false\n field.fetched = true\n field.noMore = true\n field.page = -1\n } else {\n const apiResponse = data as ApiResponse\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","// actions.ts\nimport {\n generateDefaultField,\n generateFieldName,\n generateRequestParams,\n computeMatchedItemIndex,\n combineArrayData,\n updateObjectDeepValue,\n getObjectDeepValue,\n computeResultLength,\n searchValueByKey,\n isArray\n} from './utils'\nimport { SET_DATA, SET_ERROR } from './setters'\nimport ENUM from './enum'\nimport type {\n ObjectKey,\n InitStateType,\n InitDataType,\n LoadMoreType,\n UpdateStateType,\n DefaultField,\n KeyMap,\n ResultArrayType,\n ApiResponse\n} from './types'\n\nexport const initState = ({\n getter,\n setter,\n func,\n type,\n query,\n opts\n}: InitStateType): Promise<void> => {\n return new Promise((resolve) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n if (fieldData) {\n resolve()\n return\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(opts),\n callback: () => {\n resolve()\n }\n })\n })\n}\n\nexport const initData = ({\n getter,\n setter,\n func,\n type,\n query,\n api,\n uniqueKey,\n callback\n}: InitDataType): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n const doRefresh = !!query?.__refresh__\n const needReset = !!query?.__reload__\n\n if (fieldData && fieldData.error && !doRefresh) {\n resolve()\n return\n }\n if (fieldData && fieldData.loading) {\n resolve()\n return\n }\n const dontFetch = fieldData && fieldData.fetched && !doRefresh\n if (dontFetch) {\n resolve()\n return\n }\n\n const params = generateRequestParams({\n field: {\n ...(fieldData || generateDefaultField()),\n fetched: false\n },\n uniqueKey,\n query,\n type\n })\n\n const getData = () => {\n const apiCaller = () =>\n new Promise<ApiResponse>((res, rej) => {\n const getDataFromAPI = () => {\n const funcCaller =\n typeof func === 'string' && api ? api[func] : func\n\n if (typeof funcCaller === 'function') {\n funcCaller(params)\n .then(res)\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n rej(error)\n })\n }\n }\n\n getDataFromAPI()\n })\n\n apiCaller()\n .then((data) => {\n const setData = () => {\n SET_DATA({\n getter,\n setter,\n data,\n fieldName,\n type,\n page: params.page || 0,\n insertBefore: false\n }).then(() => {\n if (callback) {\n callback({\n params,\n data,\n refresh: doRefresh\n })\n }\n resolve()\n })\n }\n\n if (doRefresh && !needReset) {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: generateDefaultField(),\n callback: setData\n })\n } else {\n setData()\n }\n })\n .catch(reject)\n }\n\n if (doRefresh && !needReset) {\n getData()\n } else {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: {\n ...generateDefaultField(),\n loading: true,\n error: null,\n extra: null\n },\n callback: getData\n })\n }\n })\n\nexport const loadMore = ({\n getter,\n setter,\n query,\n type,\n func,\n api,\n uniqueKey,\n errorRetry,\n callback\n}: LoadMoreType): Promise<void> =>\n new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, query })\n const fieldData = getter(fieldName)\n\n if (!fieldData) {\n resolve()\n return\n }\n\n if (fieldData.loading) {\n resolve()\n return\n }\n if (fieldData.nothing) {\n resolve()\n return\n }\n if (fieldData.noMore && !errorRetry) {\n resolve()\n return\n }\n if (\n type === ENUM.FETCH_TYPE.PAGINATION &&\n query &&\n query.page != null &&\n +query.page === fieldData.page\n ) {\n resolve()\n return\n }\n\n let loadingState: Partial<DefaultField>\n if (type === ENUM.FETCH_TYPE.PAGINATION) {\n loadingState = {\n loading: true,\n error: null,\n [ENUM.FIELD_DATA.RESULT_KEY]: [],\n [ENUM.FIELD_DATA.EXTRA_KEY]: null\n }\n } else {\n loadingState = {\n loading: true,\n error: null\n }\n }\n\n const params = generateRequestParams({\n field: fieldData,\n uniqueKey,\n query,\n type\n })\n\n if ('extra' in fieldData) {\n ;(params as KeyMap)[ENUM.FIELD_DATA.EXTRA_KEY] = fieldData.extra\n }\n\n const getData = () => {\n const funcCaller = typeof func === 'string' && api ? api[func] : func\n\n if (typeof funcCaller === 'function') {\n funcCaller(params)\n .then((data: ApiResponse) => {\n SET_DATA({\n getter,\n setter,\n data,\n fieldName,\n type,\n page: params.page || 0,\n insertBefore: !!query?.is_up\n }).then(() => {\n if (callback) {\n callback({\n params,\n data,\n refresh: false\n })\n }\n resolve()\n })\n })\n .catch((error: Error) => {\n SET_ERROR({ setter, fieldName, error })\n reject(error)\n })\n }\n }\n\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.MERGE,\n value: loadingState,\n callback: getData\n })\n })\n\nexport const updateState = <T = KeyMap>({\n getter,\n setter,\n func,\n type,\n query,\n method,\n value,\n id,\n uniqueKey,\n changeKey\n}: UpdateStateType<T>): Promise<unknown> => {\n return new Promise((resolve, reject) => {\n const fieldName = generateFieldName({ func, type, 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 = 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\n if (method === ENUM.CHANGE_TYPE.SEARCH_FIELD) {\n if (_id == null) {\n reject(new Error('ID is required for SEARCH_FIELD.'))\n return\n }\n const result = searchValueByKey(\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as\n | ResultArrayType\n | Record<string, KeyMap[]>,\n _id as ObjectKey,\n _uniqueKey\n )\n resolve(result)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_UPDATE_KV) {\n if (_id == null) {\n reject(new Error('ID is required for RESULT_UPDATE_KV.'))\n return\n }\n const matchedIndex = computeMatchedItemIndex(\n _id as ObjectKey,\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as ResultArrayType,\n _uniqueKey\n )\n if (matchedIndex >= 0) {\n updateObjectDeepValue(\n (newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as KeyMap[])[matchedIndex],\n _changeKey,\n value\n )\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESULT_ITEM_MERGE) {\n if (_id == null) {\n reject(new Error('ID is required for RESULT_ITEM_MERGE.'))\n return\n }\n const matchedIndex = computeMatchedItemIndex(\n _id as ObjectKey,\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as ResultArrayType,\n _uniqueKey\n )\n if (matchedIndex >= 0) {\n const currentItem = (\n newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as KeyMap[]\n )[matchedIndex]\n ;(newFieldData[ENUM.FIELD_DATA.RESULT_KEY] as KeyMap[])[matchedIndex] =\n {\n ...currentItem,\n ...(value as KeyMap)\n }\n }\n resolve(null)\n } else if (method === ENUM.CHANGE_TYPE.RESET_FIELD) {\n updateObjectDeepValue(\n newFieldData as unknown as KeyMap,\n _changeKey,\n value\n )\n resolve(null)\n } else {\n let modifyValue = getObjectDeepValue(\n newFieldData as unknown as KeyMap,\n _changeKey\n )\n if (modifyValue == null) {\n modifyValue = []\n }\n\n const matchedIndex =\n _id != null\n ? computeMatchedItemIndex(\n _id as ObjectKey,\n modifyValue as ResultArrayType,\n _uniqueKey\n )\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 (isArray(modifyValue)) {\n if (matchedIndex >= 0) {\n modifyValue.splice(matchedIndex, 1)\n } else if (isArray(_id)) {\n const idSet = new Set(_id as ObjectKey[])\n modifyValue = (modifyValue as KeyMap[]).filter(\n (item) =>\n !idSet.has(\n getObjectDeepValue(item as KeyMap, _uniqueKey) as ObjectKey\n )\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 (isArray(modifyValue)) {\n combineArrayData(\n modifyValue as ResultArrayType,\n value as ResultArrayType | Record<ObjectKey, KeyMap>,\n _uniqueKey\n )\n }\n break\n default:\n resolve(null)\n return\n }\n ;(newFieldData as unknown as KeyMap)[_changeKey] = modifyValue\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"]}
package/dist/index.mjs CHANGED
@@ -56,9 +56,7 @@ var enum_default = {
56
56
  };
57
57
 
58
58
  // src/utils.ts
59
- var isArray = (data) => {
60
- return Array.isArray(data);
61
- };
59
+ var isArray = (data) => Array.isArray(data);
62
60
  var stableSerialize = (value) => {
63
61
  if (value === null || typeof value !== "object") {
64
62
  return String(value);
@@ -69,7 +67,9 @@ var stableSerialize = (value) => {
69
67
  }
70
68
  const keys = Object.keys(value).sort();
71
69
  const obj = {};
72
- for (const k of keys) {
70
+ const len = keys.length;
71
+ for (let i = 0; i < len; i++) {
72
+ const k = keys[i];
73
73
  obj[k] = value[k];
74
74
  }
75
75
  return JSON.stringify(obj);
@@ -79,13 +79,12 @@ var stableSerialize = (value) => {
79
79
  };
80
80
  var extractUniqueKey = (item, uniqueKey) => {
81
81
  if (typeof item !== "object" || item === null) return void 0;
82
- const changing = uniqueKey || enum_default.DEFAULT_UNIQUE_KEY_NAME;
83
- const val = item[changing] ?? void 0;
82
+ const val = item[uniqueKey];
84
83
  if (typeof val === "string" || typeof val === "number") {
85
84
  return val;
86
85
  }
87
- if (typeof changing === "string" && changing.includes(".")) {
88
- const deepVal = getObjectDeepValue(item, changing);
86
+ if (uniqueKey.includes(".")) {
87
+ const deepVal = getObjectDeepValue(item, uniqueKey);
89
88
  if (typeof deepVal === "string" || typeof deepVal === "number") {
90
89
  return deepVal;
91
90
  }
@@ -99,17 +98,15 @@ var isObjectResult = (data) => {
99
98
  return !Object.prototype.hasOwnProperty.call(data, "result");
100
99
  };
101
100
  var generateDefaultField = (opts = {}) => ({
102
- ...{
103
- result: [],
104
- noMore: false,
105
- nothing: false,
106
- loading: false,
107
- error: null,
108
- extra: null,
109
- fetched: false,
110
- page: 0,
111
- total: 0
112
- },
101
+ result: [],
102
+ noMore: false,
103
+ nothing: false,
104
+ loading: false,
105
+ error: null,
106
+ extra: null,
107
+ fetched: false,
108
+ page: 0,
109
+ total: 0,
113
110
  ...opts
114
111
  });
115
112
  var generateFieldName = ({
@@ -118,20 +115,15 @@ var generateFieldName = ({
118
115
  query = {}
119
116
  }) => {
120
117
  const funcName = typeof func === "string" ? func : (typeof func === "function" ? func.name : void 0) || `api-${Math.random().toString(36).substring(2, 8)}`;
121
- const fetchType = type || "auto";
122
- let result = `${funcName}-${fetchType}`;
123
- const filteredKeys = Object.keys(query).filter(
124
- (key) => query[key] !== void 0 && typeof query[key] !== "function" && ![
125
- "page",
126
- "is_up",
127
- "since_id",
128
- "seen_ids",
129
- "__refresh__",
130
- "__reload__"
131
- ].includes(key)
132
- );
118
+ let result = `${funcName}-${type || "auto"}`;
119
+ const filteredKeys = Object.keys(query).filter((key) => {
120
+ const value = query[key];
121
+ return value !== void 0 && typeof value !== "function" && key !== "page" && key !== "is_up" && key !== "since_id" && key !== "seen_ids" && key !== "__refresh__" && key !== "__reload__";
122
+ });
133
123
  filteredKeys.sort();
134
- const querySuffix = filteredKeys.map((key) => {
124
+ const len = filteredKeys.length;
125
+ for (let i = 0; i < len; i++) {
126
+ const key = filteredKeys[i];
135
127
  const value = query[key];
136
128
  let safeValue;
137
129
  if (typeof value === "object" && value !== null) {
@@ -140,22 +132,22 @@ var generateFieldName = ({
140
132
  safeValue = String(value);
141
133
  }
142
134
  const encoded = encodeURIComponent(safeValue);
143
- return `-${key}-${encoded}`;
144
- }).join("");
145
- result += querySuffix;
135
+ result += `-${key}-${encoded}`;
136
+ }
146
137
  return result;
147
138
  };
148
- var getObjectDeepValue = (field, keys = "") => {
139
+ var getObjectDeepValue = (field, keys) => {
149
140
  if (!keys || Array.isArray(keys) && keys.length === 0) {
150
141
  return field;
151
142
  }
152
143
  const keysArr = Array.isArray(keys) ? keys : keys.split(".");
153
144
  let result = field;
154
- for (const key of keysArr) {
145
+ const len = keysArr.length;
146
+ for (let i = 0; i < len; i++) {
155
147
  if (result == null || typeof result !== "object") {
156
148
  return void 0;
157
149
  }
158
- result = result[key];
150
+ result = result[keysArr[i]];
159
151
  }
160
152
  return result;
161
153
  };
@@ -164,7 +156,9 @@ var updateObjectDeepValue = (field, changeKey, value) => {
164
156
  const keys = changeKey.split(".");
165
157
  const lastKey = keys.pop();
166
158
  let current = field;
167
- for (const key of keys) {
159
+ const len = keys.length;
160
+ for (let i = 0; i < len; i++) {
161
+ const key = keys[i];
168
162
  if (current[key] == null || typeof current[key] !== "object") {
169
163
  current[key] = {};
170
164
  }
@@ -178,14 +172,12 @@ var searchValueByKey = (result, id, key) => {
178
172
  if (isArray(result)) {
179
173
  const index = computeMatchedItemIndex(id, result, key);
180
174
  return index >= 0 ? result[index] : void 0;
181
- } else {
182
- return result[id];
183
175
  }
176
+ return result[String(id)];
184
177
  };
185
178
  var computeMatchedItemIndex = (itemId, fieldArr, changingKey) => {
186
179
  const stringifiedItemId = String(itemId);
187
- const len = fieldArr?.length;
188
- if (typeof len !== "number" || len <= 0) return -1;
180
+ const len = fieldArr.length;
189
181
  for (let i = 0; i < len; i++) {
190
182
  const item = fieldArr[i];
191
183
  if (typeof item !== "object" || item === null) continue;
@@ -198,7 +190,8 @@ var computeMatchedItemIndex = (itemId, fieldArr, changingKey) => {
198
190
  };
199
191
  var combineArrayData = (fieldArray, value, changingKey) => {
200
192
  const fieldArrayMap = /* @__PURE__ */ new Map();
201
- for (let i = 0; i < fieldArray.length; i++) {
193
+ const arrLen = fieldArray.length;
194
+ for (let i = 0; i < arrLen; i++) {
202
195
  const item = fieldArray[i];
203
196
  if (typeof item !== "object" || item === null) continue;
204
197
  const id = getObjectDeepValue(item, changingKey);
@@ -207,20 +200,24 @@ var combineArrayData = (fieldArray, value, changingKey) => {
207
200
  }
208
201
  }
209
202
  if (isArray(value)) {
210
- for (const col of value) {
203
+ const valLen = value.length;
204
+ for (let i = 0; i < valLen; i++) {
205
+ const col = value[i];
211
206
  if (typeof col !== "object" || col === null) continue;
212
207
  const stringifyId = String(getObjectDeepValue(col, changingKey));
213
208
  const index = fieldArrayMap.get(stringifyId);
214
- if (index !== void 0 && index !== -1) {
209
+ if (index !== void 0) {
215
210
  fieldArray[index] = { ...fieldArray[index], ...col };
216
211
  }
217
212
  }
218
213
  } else {
219
- for (const [uniqueId, col] of Object.entries(value)) {
214
+ const entries = Object.entries(value);
215
+ const entLen = entries.length;
216
+ for (let i = 0; i < entLen; i++) {
217
+ const [uniqueId, col] = entries[i];
220
218
  if (typeof col !== "object" || col === null) continue;
221
- const stringifyId = String(uniqueId);
222
- const index = fieldArrayMap.get(stringifyId);
223
- if (index !== void 0 && index !== -1) {
219
+ const index = fieldArrayMap.get(uniqueId);
220
+ if (index !== void 0) {
224
221
  fieldArray[index] = { ...fieldArray[index], ...col };
225
222
  }
226
223
  }
@@ -258,7 +255,10 @@ var setReactivityField = (field, key, value, type, insertBefore) => {
258
255
  target = {};
259
256
  field.result = target;
260
257
  }
261
- Object.keys(valueObj).forEach((subKey) => {
258
+ const keys = Object.keys(valueObj);
259
+ const len = keys.length;
260
+ for (let i = 0; i < len; i++) {
261
+ const subKey = keys[i];
262
262
  const existing = target[subKey];
263
263
  const incoming = valueObj[subKey];
264
264
  if (existing !== void 0) {
@@ -270,7 +270,7 @@ var setReactivityField = (field, key, value, type, insertBefore) => {
270
270
  } else {
271
271
  target[subKey] = incoming;
272
272
  }
273
- });
273
+ }
274
274
  };
275
275
  var computeResultLength = (data) => {
276
276
  if (isArray(data)) {
@@ -278,9 +278,11 @@ var computeResultLength = (data) => {
278
278
  }
279
279
  if (data && typeof data === "object") {
280
280
  let acc = 0;
281
- for (const val of Object.values(data)) {
282
- if (isArray(val)) {
283
- acc += val.length;
281
+ const values = Object.values(data);
282
+ const len = values.length;
283
+ for (let i = 0; i < len; i++) {
284
+ if (isArray(values[i])) {
285
+ acc += values[i].length;
284
286
  }
285
287
  }
286
288
  return acc;
@@ -290,8 +292,9 @@ var computeResultLength = (data) => {
290
292
  var getSeenIdsString = (arr, uniqueKey) => {
291
293
  if (!isArray(arr)) return "";
292
294
  const ids = [];
293
- for (const item of arr) {
294
- const id = extractUniqueKey(item, uniqueKey);
295
+ const len = arr.length;
296
+ for (let i = 0; i < len; i++) {
297
+ const id = extractUniqueKey(arr[i], uniqueKey);
295
298
  if (id !== void 0) {
296
299
  ids.push(id);
297
300
  }
@@ -300,11 +303,11 @@ var getSeenIdsString = (arr, uniqueKey) => {
300
303
  };
301
304
  var generateRequestParams = ({
302
305
  field,
303
- uniqueKey,
306
+ uniqueKey = enum_default.DEFAULT_UNIQUE_KEY_NAME,
304
307
  query = {},
305
308
  type
306
309
  }) => {
307
- const result = {};
310
+ const result = { ...query };
308
311
  const isFetched = field.fetched;
309
312
  const getSafeObjectKey = (item) => {
310
313
  return extractUniqueKey(item, uniqueKey);
@@ -352,10 +355,7 @@ var generateRequestParams = ({
352
355
  result.page = 1;
353
356
  }
354
357
  }
355
- return {
356
- ...query,
357
- ...result
358
- };
358
+ return result;
359
359
  };
360
360
 
361
361
  // src/setters.ts
@@ -419,9 +419,7 @@ var SET_DATA = ({
419
419
  setter({
420
420
  key: fieldName,
421
421
  type: enum_default.SETTER_TYPE.RESET,
422
- // or MUTATE if you have such type
423
422
  value: field,
424
- // same reference
425
423
  callback: () => {
426
424
  resolve();
427
425
  }
@@ -569,7 +567,6 @@ var loadMore = ({
569
567
  query,
570
568
  type,
571
569
  func,
572
- // string | function
573
570
  api,
574
571
  uniqueKey,
575
572
  errorRetry,
@@ -659,7 +656,6 @@ var updateState = ({
659
656
  getter,
660
657
  setter,
661
658
  func,
662
- // string only
663
659
  type,
664
660
  query,
665
661
  method,
@@ -772,10 +768,7 @@ var updateState = ({
772
768
  const idSet = new Set(_id);
773
769
  modifyValue = modifyValue.filter(
774
770
  (item) => !idSet.has(
775
- getObjectDeepValue(
776
- item,
777
- _uniqueKey
778
- )
771
+ getObjectDeepValue(item, _uniqueKey)
779
772
  )
780
773
  );
781
774
  }
@@ -793,7 +786,11 @@ var updateState = ({
793
786
  break;
794
787
  case enum_default.CHANGE_TYPE.RESULT_LIST_MERGE:
795
788
  if (isArray(modifyValue)) {
796
- combineArrayData(modifyValue, value, _uniqueKey);
789
+ combineArrayData(
790
+ modifyValue,
791
+ value,
792
+ _uniqueKey
793
+ );
797
794
  }
798
795
  break;
799
796
  default: