@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
42 lines • 2.66 kB
JavaScript
// import { startPerformOpV2, updatePerformanceEndV2 } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/functions';
// import { IPerformanceOp } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/IPerformance';
// import { IPerformanceSettings } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/IPerformanceSettings';
// import { IFpsItemsReturn } from '@mikezimm/fps-core-v7/lib/components/molecules/process-results/IFpsItemsReturn';
// import { ISourceProps } from '@mikezimm/fps-core-v7/lib/components/molecules/source-props/ISourceProps';
// import { createEmptyFetchReturn } from '@mikezimm/fps-core-v7/lib/components/molecules/SpHttp/IJSFetchReturn';
// import { check4This } from '@mikezimm/fps-core-v7/lib/logic/Links/CheckSearch';
// import { postSourceItemsAPI } from '@mikezimm/fps-core-v7/lib/restAPIs/lists/items/postSourceItemsAPI';
import { startPerformOpV2, updatePerformanceEndV2 } from '../../../components/molecules/Performance/functions';
import { createEmptyFetchReturn } from '../../../components/molecules/SpHttp/interfaces/IJSFetchReturn';
import { check4This, Check4 } from '../../../logic/Links/CheckSearch';
import { postSourceItemAPI } from './postSourceItemAPI';
/**
* This is the multi-item version of postSourceItemAPI
*
* @param sourceProps
* @param saveItem
* @param alertMe
* @param consoleLog
* @returns
*/
export async function postSourceItemsAPI(sourceProps, saveItem, alertMe, consoleLog, progressCallback) {
const performanceSettings = { label: `create ${saveItem.length} items`, includeMsStr: true, updateMiliseconds: true, op: 'create' };
const fetchOp = startPerformOpV2(performanceSettings);
const allReturns = await Promise.all(saveItem.map(async (item, idx) => {
const result = await postSourceItemAPI(sourceProps, item, alertMe, consoleLog);
const progress = { result: result, idx: idx };
// eslint-disable-next-line no-void
if (progressCallback)
void progressCallback(progress);
return result;
}));
const results = createEmptyFetchReturn(allReturns[0].fetchAPI, allReturns[0].method);
results.items = allReturns;
results.createOp = updatePerformanceEndV2({ op: fetchOp, updateMiliseconds: performanceSettings.updateMiliseconds, count: allReturns.length });
results.unifiedPerformanceOps.create = results.createOp;
if (check4This(Check4.fpsShowFetchResults_Eq_true) === true) {
console.log(`fps-core-v7 COMPLETE: postSourceItems ~ 56`, results);
}
return results;
}
//# sourceMappingURL=postSourceItemsAPI.js.map