@magnetarjs/core
Advanced tools
Comparing version 0.16.3 to 0.16.4
@@ -32,2 +32,3 @@ "use strict"; | ||
// src/Magnetar.ts | ||
var import_types3 = require("@magnetarjs/types"); | ||
var import_getorset_anything2 = require("getorset-anything"); | ||
@@ -44,4 +45,4 @@ var import_is_what7 = require("is-what"); | ||
// src/helpers/throwFns.ts | ||
var import_utils = require("@magnetarjs/utils"); | ||
var import_is_what = require("is-what"); | ||
var import_utils = require("@magnetarjs/utils"); | ||
function logError(errorMessage) { | ||
@@ -156,2 +157,92 @@ console.error("[@magnetarjs error]\n", errorMessage); | ||
// src/helpers/eventHelpers.ts | ||
function getEventNameFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const result = { | ||
before: _onMaps.flatMap((on) => on.before ?? []), | ||
success: _onMaps.flatMap((on) => on.success ?? []), | ||
error: _onMaps.flatMap((on) => on.error ?? []), | ||
revert: _onMaps.flatMap((on) => on.revert ?? []) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/executeOnFns.ts | ||
function executeOnFns(params) { | ||
const { modifyReadResultFns, localStoreFns, payload, docMetaData } = params; | ||
let newPayload = payload; | ||
for (const fn of modifyReadResultFns) { | ||
if (newPayload) | ||
newPayload = fn(newPayload, docMetaData); | ||
} | ||
for (const fn of localStoreFns) { | ||
newPayload = fn(newPayload, docMetaData); | ||
} | ||
return newPayload; | ||
} | ||
// src/helpers/modifyPayload.ts | ||
function getModifyPayloadFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const writeFns = _onMaps.flatMap((on) => on.write ?? []); | ||
const readFns = _onMaps.flatMap((on) => on.read ?? []); | ||
const result = { | ||
insert: _onMaps.flatMap((on) => on.insert ?? []).concat(writeFns), | ||
merge: _onMaps.flatMap((on) => on.merge ?? []).concat(writeFns), | ||
assign: _onMaps.flatMap((on) => on.assign ?? []).concat(writeFns), | ||
replace: _onMaps.flatMap((on) => on.replace ?? []).concat(writeFns), | ||
deleteProp: _onMaps.flatMap((on) => on.deleteProp ?? []), | ||
delete: [], | ||
stream: _onMaps.flatMap((on) => on.stream ?? []).concat(readFns), | ||
fetch: _onMaps.flatMap((on) => on.fetch ?? []).concat(readFns) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/modifyReadResponse.ts | ||
function getModifyReadResponseFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const result = { | ||
added: _onMaps.flatMap((on) => on.added ?? []), | ||
modified: _onMaps.flatMap((on) => on.modified ?? []), | ||
removed: _onMaps.flatMap((on) => on.removed ?? []) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/pathHelpers.ts | ||
var import_utils2 = require("@magnetarjs/utils"); | ||
function getCollectionPathDocIdEntry(modulePath) { | ||
if ((0, import_utils2.isCollectionModule)(modulePath)) | ||
return [modulePath, void 0]; | ||
const collectionPath = modulePath.split("/").slice(0, -1).join("/"); | ||
const docId = modulePath.split("/").slice(-1)[0]; | ||
return [collectionPath, docId]; | ||
} | ||
function getCollectionWriteLocks(collectionPath, writeLockMap) { | ||
return [...writeLockMap.entries()].filter(([modulePath]) => { | ||
const [_collectionPath] = getCollectionPathDocIdEntry(modulePath); | ||
return _collectionPath === collectionPath; | ||
}).map(([modulePath, writeLock]) => writeLock); | ||
} | ||
// src/helpers/pluginHelpers.ts | ||
var import_is_what3 = require("is-what"); | ||
function isDoOnStream(payload) { | ||
const isNotDoOnStream = !(0, import_is_what3.isPlainObject)(payload) || payload.streaming || payload.stop || !(payload.added || payload.modified || payload.removed); | ||
return !isNotDoOnStream; | ||
} | ||
function isDoOnFetchCount(payload) { | ||
return (0, import_is_what3.isFunction)(payload); | ||
} | ||
function isFetchCountResponse(payload) { | ||
return (0, import_is_what3.isPlainObject)(payload) && (0, import_is_what3.isNumber)(payload.count); | ||
} | ||
function isDoOnFetch(payload) { | ||
return (0, import_is_what3.isFunction)(payload); | ||
} | ||
function isFetchResponse(payload) { | ||
return (0, import_is_what3.isPlainObject)(payload) && (0, import_is_what3.isArray)(payload.docs); | ||
} | ||
// src/moduleActions/handleAction.ts | ||
@@ -216,92 +307,2 @@ async function handleAction(args) { | ||
// src/helpers/eventHelpers.ts | ||
function getEventNameFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const result = { | ||
before: _onMaps.flatMap((on) => on.before ?? []), | ||
success: _onMaps.flatMap((on) => on.success ?? []), | ||
error: _onMaps.flatMap((on) => on.error ?? []), | ||
revert: _onMaps.flatMap((on) => on.revert ?? []) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/pluginHelpers.ts | ||
var import_is_what3 = require("is-what"); | ||
function isDoOnStream(payload) { | ||
const isNotDoOnStream = !(0, import_is_what3.isPlainObject)(payload) || payload.streaming || payload.stop || !(payload.added || payload.modified || payload.removed); | ||
return !isNotDoOnStream; | ||
} | ||
function isDoOnFetchCount(payload) { | ||
return (0, import_is_what3.isFunction)(payload); | ||
} | ||
function isFetchCountResponse(payload) { | ||
return (0, import_is_what3.isPlainObject)(payload) && (0, import_is_what3.isNumber)(payload.count); | ||
} | ||
function isDoOnFetch(payload) { | ||
return (0, import_is_what3.isFunction)(payload); | ||
} | ||
function isFetchResponse(payload) { | ||
return (0, import_is_what3.isPlainObject)(payload) && (0, import_is_what3.isArray)(payload.docs); | ||
} | ||
// src/helpers/modifyPayload.ts | ||
function getModifyPayloadFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const writeFns = _onMaps.flatMap((on) => on.write ?? []); | ||
const readFns = _onMaps.flatMap((on) => on.read ?? []); | ||
const result = { | ||
insert: _onMaps.flatMap((on) => on.insert ?? []).concat(writeFns), | ||
merge: _onMaps.flatMap((on) => on.merge ?? []).concat(writeFns), | ||
assign: _onMaps.flatMap((on) => on.assign ?? []).concat(writeFns), | ||
replace: _onMaps.flatMap((on) => on.replace ?? []).concat(writeFns), | ||
deleteProp: _onMaps.flatMap((on) => on.deleteProp ?? []), | ||
delete: [], | ||
stream: _onMaps.flatMap((on) => on.stream ?? []).concat(readFns), | ||
fetch: _onMaps.flatMap((on) => on.fetch ?? []).concat(readFns) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/modifyReadResponse.ts | ||
function getModifyReadResponseFnsMap(...onMaps) { | ||
const _onMaps = onMaps.filter(Boolean); | ||
const result = { | ||
added: _onMaps.flatMap((on) => on.added ?? []), | ||
modified: _onMaps.flatMap((on) => on.modified ?? []), | ||
removed: _onMaps.flatMap((on) => on.removed ?? []) | ||
}; | ||
return result; | ||
} | ||
// src/helpers/executeOnFns.ts | ||
function executeOnFns(params) { | ||
const { modifyReadResultFns, localStoreFns, payload, docMetaData } = params; | ||
let newPayload = payload; | ||
for (const fn of modifyReadResultFns) { | ||
if (newPayload) | ||
newPayload = fn(newPayload, docMetaData); | ||
} | ||
for (const fn of localStoreFns) { | ||
newPayload = fn(newPayload, docMetaData); | ||
} | ||
return newPayload; | ||
} | ||
// src/helpers/pathHelpers.ts | ||
var import_utils2 = require("@magnetarjs/utils"); | ||
function getCollectionPathDocIdEntry(modulePath) { | ||
if ((0, import_utils2.isCollectionModule)(modulePath)) | ||
return [modulePath, void 0]; | ||
const collectionPath = modulePath.split("/").slice(0, -1).join("/"); | ||
const docId = modulePath.split("/").slice(-1)[0]; | ||
return [collectionPath, docId]; | ||
} | ||
function getCollectionWriteLocks(collectionPath, writeLockMap) { | ||
return [...writeLockMap.entries()].filter(([modulePath]) => { | ||
const [_collectionPath] = getCollectionPathDocIdEntry(modulePath); | ||
return _collectionPath === collectionPath; | ||
}).map(([modulePath, writeLock]) => writeLock); | ||
} | ||
// src/moduleActions/handleActionPerStore.ts | ||
@@ -517,2 +518,22 @@ function handleActionPerStore(sharedParams, actionName, actionType) { | ||
// src/helpers/writeLockHelpers.ts | ||
var import_is_what5 = require("is-what"); | ||
async function writeLockPromise(writeLockMap, docIdentifier) { | ||
const writeLock = writeLockMap.get(docIdentifier); | ||
if (writeLock && (0, import_is_what5.isPromise)(writeLock.promise)) { | ||
await writeLock.promise; | ||
} | ||
} | ||
async function getDocAfterWritelock(params) { | ||
const { writeLockMap, lastIncomingDocs, docIdentifier, payload, meta } = params; | ||
lastIncomingDocs.set(docIdentifier, { payload, meta }); | ||
await writeLockPromise(writeLockMap, docIdentifier); | ||
const lastIncoming = lastIncomingDocs.get(docIdentifier); | ||
if (!lastIncoming) { | ||
return; | ||
} | ||
lastIncomingDocs.delete(docIdentifier); | ||
return lastIncoming; | ||
} | ||
// src/moduleActions/handleStream.ts | ||
@@ -561,22 +582,2 @@ async function handleStream(args) { | ||
// src/helpers/writeLockHelpers.ts | ||
var import_is_what5 = require("is-what"); | ||
async function writeLockPromise(writeLockMap, docIdentifier) { | ||
const writeLock = writeLockMap.get(docIdentifier); | ||
if (writeLock && (0, import_is_what5.isPromise)(writeLock.promise)) { | ||
await writeLock.promise; | ||
} | ||
} | ||
async function getDocAfterWritelock(params) { | ||
const { writeLockMap, lastIncomingDocs, docIdentifier, payload, meta } = params; | ||
lastIncomingDocs.set(docIdentifier, { payload, meta }); | ||
await writeLockPromise(writeLockMap, docIdentifier); | ||
const lastIncoming = lastIncomingDocs.get(docIdentifier); | ||
if (!lastIncoming) { | ||
return; | ||
} | ||
lastIncomingDocs.delete(docIdentifier); | ||
return lastIncoming; | ||
} | ||
// src/moduleActions/handleStreamPerStore.ts | ||
@@ -783,21 +784,2 @@ function handleStreamPerStore([collectionPath, docId], moduleConfig, globalConfig, actionType, streaming, cacheStream, writeLockMap) { | ||
// src/helpers/configHelpers.ts | ||
var import_merge_anything2 = require("merge-anything"); | ||
function defaultsGlobalConfig(config) { | ||
const defaults = { | ||
localStoreName: "", | ||
stores: {}, | ||
executionOrder: { | ||
read: [], | ||
write: [] | ||
}, | ||
onError: "revert", | ||
on: {}, | ||
modifyPayloadOn: {}, | ||
modifyReadResponseOn: {} | ||
}; | ||
const merged = (0, import_merge_anything2.merge)(defaults, config); | ||
return merged; | ||
} | ||
// src/Doc.ts | ||
@@ -845,4 +827,22 @@ var import_types2 = require("@magnetarjs/types"); | ||
// src/helpers/configHelpers.ts | ||
var import_merge_anything2 = require("merge-anything"); | ||
function defaultsGlobalConfig(config) { | ||
const defaults = { | ||
localStoreName: "", | ||
stores: {}, | ||
executionOrder: { | ||
read: [], | ||
write: [] | ||
}, | ||
onError: "revert", | ||
on: {}, | ||
modifyPayloadOn: {}, | ||
modifyReadResponseOn: {} | ||
}; | ||
const merged = (0, import_merge_anything2.merge)(defaults, config); | ||
return merged; | ||
} | ||
// src/Magnetar.ts | ||
var import_types3 = require("@magnetarjs/types"); | ||
function Magnetar(magnetarConfig) { | ||
@@ -849,0 +849,0 @@ const globalConfig = defaultsGlobalConfig(magnetarConfig); |
{ | ||
"name": "@magnetarjs/core", | ||
"version": "0.16.3", | ||
"version": "0.16.4", | ||
"sideEffects": false, | ||
@@ -26,7 +26,7 @@ "description": "Magnetar core library.", | ||
"merge-anything": "^5.1.1", | ||
"@magnetarjs/types": "0.16.3", | ||
"@magnetarjs/utils": "0.16.3" | ||
"@magnetarjs/types": "0.16.4", | ||
"@magnetarjs/utils": "0.16.4" | ||
}, | ||
"devDependencies": { | ||
"@magnetarjs/test-utils": "0.16.3" | ||
"@magnetarjs/test-utils": "0.16.4" | ||
}, | ||
@@ -33,0 +33,0 @@ "keywords": [ |
Sorry, the diff of this file is not supported yet
73615
1848
+ Added@magnetarjs/types@0.16.4(transitive)
+ Added@magnetarjs/utils@0.16.4(transitive)
- Removed@magnetarjs/types@0.16.3(transitive)
- Removed@magnetarjs/utils@0.16.3(transitive)
Updated@magnetarjs/types@0.16.4
Updated@magnetarjs/utils@0.16.4