Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
var fRequest = state._sync.fetched[identifier];
// We're already done fetching everything:
if (fRequest.done) {
if (state._conf.logging)
console.log('[vuex-easy-firestore] done fetching');
return resolve({ done: true });
}
// attach fetch filters
var fRef = state._sync.fetched[identifier].ref;
if (fRequest.nextFetchRef) {
// get next ref if saved in state
fRef = state._sync.fetched[identifier].nextFetchRef;
}
// add doc limit
var limit = (isWhat.isNumber(pathVariables.limit))
? pathVariables.limit
: state._conf.fetch.docLimit;
if (limit > 0)
fRef = fRef.limit(limit);
// Stop if all records already fetched
if (fRequest.retrievedFetchRefs.includes(fRef)) {
console.log('[vuex-easy-firestore] Already retrieved this part.');
return resolve();
}
// make fetch request
fRef.get().then(function (querySnapshot) {
var docs = querySnapshot.docs;
if (docs.length === 0) {
state._sync.fetched[identifier].done = true;
querySnapshot.done = true;
return resolve(querySnapshot);
switch (change) {
case 'added':
commit('INSERT_DOC', _doc);
break;
case 'removed':
commit('DELETE_DOC', id);
break;
default:
dispatch('deleteMissingProps', _doc);
commit('PATCH_DOC', _doc);
break;
}
}
// get user set sync hook function
var syncHookFn = state._conf.serverChange[change + 'Hook'];
if (isWhat.isFunction(syncHookFn)) {
syncHookFn(storeUpdateFn, doc, id, store, 'server', change);
}
else {
storeUpdateFn(doc);
}
},
deleteMissingProps: function (_a, doc) {
return defaultSetter(MODULE_PROP_SUBPROP + '.splice', payload, store, conf);
};
}
// =================================================>
// WILDCARDS SETTER
// =================================================>
// if (isObject(propValue) && !Object.keys(propValue).length) {
// carry[PROP_SUBPROP + '.*'] = (context, payload) => {
// return defaultSetter(MODULE_PROP_SUBPROP + '.*', payload, store, conf)
// }
// }
// =================================================>
// CHILDREN SETTERS
// =================================================>
// let's do it's children as well!
if (isWhat.isObject(propValue) && Object.keys(propValue).length) {
var childrenSetters = getSetters(propValue, PROP_SUBPROP);
Object.assign(carry, childrenSetters);
}
return carry;
}, {});
}
return params.map(function (param) {
if (isWhat.isAnyObject(param) && !isWhat.isPlainObject(param)) {
// @ts-ignore
return String(param.constructor.name) + String(param.id);
}
return String(param);
}).join();
}
function convertTimestamps(originVal, targetVal) {
if (originVal === '%convertTimestamp%') {
// firestore timestamps
// @ts-ignore
if (isWhat.isAnyObject(targetVal) && !isWhat.isPlainObject(targetVal) && isWhat.isFunction(targetVal.toDate)) {
// @ts-ignore
return targetVal.toDate();
}
// strings
if (isWhat.isString(targetVal) && isWhat.isDate(new Date(targetVal))) {
return new Date(targetVal);
}
}
return targetVal;
}
/**
function isArrayHelper(value) {
// this is bugged in vuex actions, I DONT KNOW WHY
// return (
// value instanceof ArrayUnion ||
// value instanceof ArrayRemove
// )
return (isWhat.isAnyObject(value) &&
!isWhat.isPlainObject(value) &&
// @ts-ignore
value.isArrayHelper === true);
}
function convertTimestamps(originVal, targetVal) {
if (originVal === '%convertTimestamp%') {
// firestore timestamps
// @ts-ignore
if (isWhat.isAnyObject(targetVal) && !isWhat.isObject(targetVal) && isWhat.isFunction(targetVal.toDate)) {
// @ts-ignore
return targetVal.toDate();
}
// strings
if (isWhat.isString(targetVal) && isWhat.isDate(new Date(targetVal))) {
return new Date(targetVal);
}
}
return targetVal;
}
/**
function isIncrementHelper(payload) {
// return payload instanceof Increment
return (isWhat.isAnyObject(payload) &&
!isWhat.isPlainObject(payload) &&
// @ts-ignore
payload.isIncrementHelper === true);
}
function convertTimestamps(originVal, targetVal) {
if (originVal === '%convertTimestamp%') {
// firestore timestamps
// @ts-ignore
if (isWhat.isAnyObject(targetVal) && !isWhat.isPlainObject(targetVal) && isWhat.isFunction(targetVal.toDate)) {
// @ts-ignore
return targetVal.toDate();
}
// strings
if (isWhat.isString(targetVal) && isWhat.isDate(new Date(targetVal))) {
return new Date(targetVal);
}
}
return targetVal;
}
/**
function isArrayHelper(value) {
// this is bugged in vuex actions, I DONT KNOW WHY
// return (
// value instanceof ArrayUnion ||
// value instanceof ArrayRemove
// )
return (isWhat.isAnyObject(value) &&
!isWhat.isPlainObject(value) &&
// @ts-ignore
value.isArrayHelper === true);
}