UNPKG

@mathrunet/masamune

Version:

Manages packages for the server portion (NodeJS) of the Masamune framework.

72 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FirestoreNullConverter = exports.ModelNullConverter = void 0; const model_field_value_converter_1 = require("../model_field_value_converter"); const firestore_1 = require("@google-cloud/firestore"); const utils_1 = require("../../utils"); const firestore_2 = require("@google-cloud/firestore"); /** * Null ModelFieldValueConverter. * * Null用のModelFieldValueConverter。 */ class ModelNullConverter extends model_field_value_converter_1.ModelFieldValueConverter { /** * Null ModelFieldValueConverter. * * Null用のModelFieldValueConverter。 */ constructor() { super(); } type = "Null"; convertFrom(key, value, original) { return null; } convertTo(key, value, original) { return null; } } exports.ModelNullConverter = ModelNullConverter; /** * FirestoreConverter for [Null]. * * [Null]用のFirestoreConverter。 */ class FirestoreNullConverter extends model_field_value_converter_1.FirestoreModelFieldValueConverter { /** * FirestoreConverter for [Null]. * * [Null]用のFirestoreConverter。 */ constructor() { super(); } type = "Null"; convertFrom(key, value, original, firestoreInstance) { return null; } convertTo(key, value, original, firestoreInstance) { if (value instanceof firestore_1.DocumentReference || value instanceof firestore_1.Timestamp || value instanceof firestore_1.GeoPoint || value instanceof firestore_2.VectorValue) { return null; } if ((0, utils_1.isDynamicMap)(value) && original[key] !== undefined) { const originalMap = original[key]; if ((0, utils_1.isDynamicMap)(originalMap)) { const newRes = { ...value }; for (const [k, v] of Object.entries(originalMap)) { if (!value.hasOwnProperty(k) || value[k] === null) { newRes[k] = firestore_1.FieldValue.delete(); } } return { [key]: newRes }; } } else if (value === null) { return { [key]: firestore_1.FieldValue.delete() }; } return null; } } exports.FirestoreNullConverter = FirestoreNullConverter; //# sourceMappingURL=null_converter.js.map