firestore-in-memory
Version:
A drop-in, in-memory implementation of Firestore useful for testing
33 lines (22 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.getChild = void 0;
var _curry = _interopRequireDefault(require("lodash/fp/curry"));
var _flow = _interopRequireDefault(require("lodash/fp/flow"));
var _get = _interopRequireDefault(require("lodash/fp/get"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const childAccessor = name => (0, _flow.default)((0, _get.default)('children'), (0, _get.default)(name));
const getOrCreateChild = (fsDocument, createMockFirestoreDocument, {
exists
}, name) => fsDocument.__exists && childAccessor(name)(fsDocument) ? childAccessor(name)(fsDocument) : createMockFirestoreDocument(name, fsDocument, {
isCollection: !fsDocument.isCollection,
exists
});
const getChild = (fsDocument, createMockFirestoreDocument) => name => getOrCreateChild(fsDocument, createMockFirestoreDocument, {
exists: false
}, name);
exports.getChild = getChild;
var _default = (0, _curry.default)(getOrCreateChild);
exports.default = _default;