Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'is-what' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
}
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);
}