@tanstack/db
Version:
A reactive client store for building super fast apps on sync
37 lines (36 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
function hasVirtualProps(value) {
return typeof value === "object" && value !== null && ["$hasPendingWrites", "$origin", "$key", "$collectionId"].every(
(name) => name in value
);
}
function enrichRowWithVirtualProps(row, key, collectionId, computePendingWrites, computeOrigin) {
const existingRow = row;
const hasPendingWrites = existingRow.$hasPendingWrites ?? computePendingWrites();
return {
...row,
$hasPendingWrites: hasPendingWrites,
$origin: existingRow.$origin ?? computeOrigin(),
$key: existingRow.$key ?? key,
$collectionId: existingRow.$collectionId ?? collectionId
};
}
const VIRTUAL_PROP_NAMES = [
"$hasPendingWrites",
"$origin",
"$key",
"$collectionId"
];
function isVirtualPropName(name) {
return VIRTUAL_PROP_NAMES.includes(name);
}
function hasVirtualPropPath(path) {
return path.some((segment) => isVirtualPropName(segment));
}
exports.VIRTUAL_PROP_NAMES = VIRTUAL_PROP_NAMES;
exports.enrichRowWithVirtualProps = enrichRowWithVirtualProps;
exports.hasVirtualPropPath = hasVirtualPropPath;
exports.hasVirtualProps = hasVirtualProps;
exports.isVirtualPropName = isVirtualPropName;
//# sourceMappingURL=virtual-props.cjs.map