@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.
- package/README.md +74 -102
- package/dist/index.d.mts +263 -0
- package/dist/index.d.ts +263 -4
- package/dist/index.global.js +775 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +770 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +763 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +33 -30
- package/dist/js-core.es.js +0 -582
- package/dist/js-core.umd.js +0 -1
- package/src/actions.ts +0 -388
- package/src/enum.ts +0 -33
- package/src/setters.ts +0 -91
- package/src/types.ts +0 -122
- package/src/utils.ts +0 -325
|
@@ -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.mjs","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"]}
|
package/package.json
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowlist/js-core",
|
|
3
|
-
"version": "
|
|
4
|
-
"main": "dist/js-core.umd.js",
|
|
5
|
-
"module": "dist/js-core.es.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"sideEffects": false,
|
|
3
|
+
"version": "3.0.1",
|
|
8
4
|
"description": "flowlist frontend javascript core",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/index.d.mts",
|
|
12
|
+
"default": "./dist/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
9
21
|
"files": [
|
|
10
|
-
"src",
|
|
11
22
|
"dist"
|
|
12
23
|
],
|
|
13
24
|
"repository": {
|
|
@@ -25,32 +36,24 @@
|
|
|
25
36
|
},
|
|
26
37
|
"homepage": "https://github.com/flowlist/js-core#readme",
|
|
27
38
|
"scripts": {
|
|
28
|
-
"build": "
|
|
39
|
+
"build": "tsup",
|
|
29
40
|
"prepublishOnly": "npm run test:unit && npm run build",
|
|
30
|
-
"test:unit": "
|
|
31
|
-
"lint": "eslint --ext
|
|
41
|
+
"test:unit": "jest",
|
|
42
|
+
"lint": "eslint src --ext .ts --fix && prettier --write ./"
|
|
32
43
|
},
|
|
33
44
|
"devDependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@typescript-eslint/
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"eslint-plugin-vue": "^8.6.0",
|
|
48
|
-
"jest-localstorage-mock": "^2.4.8",
|
|
49
|
-
"prettier": "^2.3.2",
|
|
50
|
-
"ts-babel": "^6.1.7",
|
|
51
|
-
"ts-jest": "^27.1.4",
|
|
52
|
-
"typescript": "^4.6.3",
|
|
53
|
-
"vite": "^2.3.8",
|
|
54
|
-
"vite-plugin-dts": "^1.0.5"
|
|
45
|
+
"@eslint/js": "^9.38.0",
|
|
46
|
+
"@faker-js/faker": "^7.6.0",
|
|
47
|
+
"@types/jest": "^29.5.14",
|
|
48
|
+
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
49
|
+
"@typescript-eslint/parser": "^8.46.2",
|
|
50
|
+
"eslint": "^9.38.0",
|
|
51
|
+
"eslint-config-prettier": "^10.1.8",
|
|
52
|
+
"jest": "^29.7.0",
|
|
53
|
+
"jest-localstorage-mock": "^2.4.26",
|
|
54
|
+
"prettier": "^3.6.2",
|
|
55
|
+
"ts-jest": "^29",
|
|
56
|
+
"tsup": "^8.5.0",
|
|
57
|
+
"typescript": "^5.9.3"
|
|
55
58
|
}
|
|
56
59
|
}
|