UNPKG

tav-ui

Version:
50 lines (47 loc) 2.23 kB
import { onMounted, watch } from 'vue'; import '../../utils/index2.mjs'; import { validateDataSourceIsObjectArray, validateVersionCachesHasApiFile, validateVersionCachesHasLocalFile } from '../../utils/validate2.mjs'; function useDataSource(options) { const { mergedProps, emits, VersionCachesController, dataSource } = options; async function handleDataSourceChangeEmit(rows, emits2, mergedProps2, VersionCachesController2) { const dataSource2 = rows; if (mergedProps2.value.mode === "update" || mergedProps2.value.mode === "updateInstantly") { emits2("actualidsChange", VersionCachesController2.getCaches()); } else { emits2("actualidsChange", dataSource2.map((file) => file.actualId)); } } onMounted(() => { watch(() => JSON.stringify(dataSource.value), async (curdatasource, predatasource) => { if (curdatasource && curdatasource !== predatasource) { const rows = JSON.parse(JSON.stringify([...dataSource.value ?? []])); if (rows.length > 0) { VersionCachesController.createAllFileCaches(rows, mergedProps.value.mode); if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) { const _dataSource = mergedProps.value.dataSource; _dataSource.forEach((data) => { const row = rows.find((r) => r.actualId === data.actualId); const versionList = data.versionList; if (row && versionList) { VersionCachesController.createFileCaches(row, versionList); } if (mergedProps.value.mode === "update" && validateVersionCachesHasApiFile(VersionCachesController.caches[data.actualId]) && validateVersionCachesHasLocalFile(VersionCachesController.caches[data.actualId])) { VersionCachesController.actualidCaches.add(data.actualId); } }); } } else { VersionCachesController.deleteAllFileCaches(); } await handleDataSourceChangeEmit(rows, emits, mergedProps, VersionCachesController); } }, { immediate: true }); }); return { handleDataSourceChangeEmit }; } export { useDataSource }; //# sourceMappingURL=use-data-source2.mjs.map