@flowlist/js-core 2.3.1 → 3.0.1

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.
@@ -0,0 +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.global.js","sourcesContent":["// utils.ts\nimport ENUM from './enum'\nimport type {\n ObjectKey,\n KeyMap,\n DefaultField,\n FetchType,\n FieldKeys,\n GenerateFieldProps,\n GenerateParamsType,\n GenerateParamsResp\n} from './types'\n\n/**\n * 判断数据是否为对象结果(即没有 result 字段)\n * 注意:这里我们假设 \"对象结果\" 指的是一个普通的对象,而不是 ApiResponse。\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/**\n * 生成默认字段\n */\nexport const generateDefaultField = <T = unknown, E = unknown>(\n opts: Partial<DefaultField<T, E>> = {}\n): DefaultField<T, E> => ({\n ...{\n result: [] as T, // 用户需要确保 T 是兼容的类型,例如 T extends unknown[]\n noMore: false,\n nothing: false,\n loading: false,\n error: null,\n extra: null as E,\n fetched: false,\n page: 0,\n total: 0\n },\n ...opts\n})\n\n/**\n * 根据参数生成 field 的 namespace\n */\nexport const generateFieldName = ({\n func,\n type,\n query = {}\n}: GenerateFieldProps): string => {\n const funcName =\n typeof func === 'string'\n ? func\n : `api-${Math.random().toString(36).substring(2)}`\n const fetchType = type || 'auto'\n let result = `${funcName}-${fetchType}`\n const filteredKeys = Object.keys(query).filter(\n (key) =>\n !['undefined', 'object', 'function'].includes(typeof query[key]) &&\n ![\n 'page',\n 'is_up',\n 'since_id',\n 'seen_ids',\n '__refresh__',\n '__reload__'\n ].includes(key)\n )\n\n filteredKeys.sort().forEach((key) => {\n result += `-${key}-${query[key]}`\n })\n\n return result\n}\n\n/**\n * 根据 key 从 object 里拿 value\n */\nexport const getObjectDeepValue = (\n field: unknown,\n keys: string | string[] = ''\n): unknown => {\n // 如果 keys 为空(包括 undefined、null、''、[]),返回 field\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\n/**\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: unknown = field\n\n for (const key of keys) {\n if (current == null || typeof current !== 'object') {\n ;(current as Record<string, unknown>)[key] = {}\n }\n current = (current as Record<string, unknown>)[key]\n }\n\n if (current != null && typeof current === 'object') {\n ;(current as Record<string, unknown>)[lastKey] = value\n }\n}\n\n// --- 修正点 1: 移除 searchValueByKey 和 computeMatchedItemIndex 的泛型 ---\n// 这些函数只处理特定结构的数据:数组或 { [id: string]: any[] }\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 // result is ResultArrayType\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 as unknown as number\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 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 const index = fieldArray.findIndex(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n String(getObjectDeepValue(item, changingKey)) === stringifyId\n )\n if (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 const index = fieldArray.findIndex(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n String(getObjectDeepValue(item, changingKey)) === stringifyId\n )\n if (index !== -1) {\n fieldArray[index] = { ...fieldArray[index], ...col }\n }\n }\n }\n}\n\n/**\n * 判断参数是否为数组\n */\nexport const isArray = (data: unknown): data is unknown[] => {\n return Array.isArray(data)\n}\n\n/**\n * 设置一个响应式的数据到对象上\n */\nexport const setReactivityField = <T, E>(\n field: DefaultField<T, E>,\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 (isArray(value)) {\n const current = (field as Record<FieldKeys, unknown>)[key]\n const currentArr = isArray(current) ? current : []\n const newValue = insertBefore\n ? value.concat(currentArr)\n : currentArr.concat(value)\n ;(field as Record<FieldKeys, unknown>)[key] = newValue\n return\n }\n\n if (key !== ENUM.FIELD_DATA.RESULT_KEY) {\n ;(field as Record<FieldKeys, unknown>)[key] = value\n return\n }\n\n // key is 'result'\n const resultField = field.result\n if (isArray(resultField)) {\n field.result = {} as T // reset to empty object\n }\n\n // Now field.result is an object\n const valueObj = value as Record<string, unknown>\n const target = field.result as Record<string, unknown>\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.concat(existing)\n : incoming\n } else {\n target[subKey] =\n isArray(existing) && isArray(incoming)\n ? existing.concat(incoming)\n : incoming\n }\n } else {\n target[subKey] = incoming\n }\n })\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 return Object.values(data).reduce((acc, val) => {\n if (isArray(val)) {\n return acc + val.length\n }\n return acc\n }, 0)\n }\n return 0\n}\n\n// --- 修正点 3: 修正 generateRequestParams ---\nexport const generateRequestParams = ({\n field,\n uniqueKey,\n query = {},\n type\n}: GenerateParamsType): GenerateParamsResp => {\n const result: GenerateParamsResp = {}\n const changing = uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME\n const isFetched = field.fetched\n\n // Helper to safely get an ObjectKey from an item\n const getSafeObjectKey = (item: unknown): ObjectKey | undefined => {\n if (typeof item !== 'object' || item === null) return undefined\n const val = getObjectDeepValue(item, changing)\n if (typeof val === 'string' || typeof val === 'number') {\n return val\n }\n return undefined\n }\n\n if (isFetched) {\n if (type === ENUM.FETCH_TYPE.AUTO) {\n if (isArray(field.result)) {\n result.seen_ids = field.result\n .map((item) => getSafeObjectKey(item))\n .filter((id): id is ObjectKey => id !== undefined)\n .join(',')\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 = field.result\n .map((item) => getSafeObjectKey(item))\n .filter((id): id is ObjectKey => id !== undefined)\n .join(',')\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 // ... handle initial fetch ...\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} from './types'\n\nexport const SET_DATA = <T, E>({\n getter,\n setter,\n data,\n fieldName,\n type,\n page,\n insertBefore\n}: SetDataType<T, E>): 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<T, E>\n\n let result: T\n let extra: E | undefined\n\n if (isObjectResult(data)) {\n // data is T (object result mode)\n result = data as T\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<T, E>\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} from './types'\n\n// --- initState: func is now just a string ---\nexport const initState = ({\n getter,\n setter,\n func, // string only\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, // string | function\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 loadData = () =>\n new Promise<unknown>((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 loadData()\n .then((data) => {\n // <-- 'data' is now properly in scope\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, // <-- 'data' is now properly in scope\n refresh: doRefresh\n })\n }\n resolve()\n })\n }\n\n if (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 (!dontFetch && !needReset) {\n setter({\n key: fieldName,\n type: ENUM.SETTER_TYPE.RESET,\n value: {\n ...generateDefaultField(),\n loading: true,\n error: null\n },\n callback: getData\n })\n } else {\n getData()\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: unknown) => {\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"]}