@mathrunet/masamune
Version:
Manages packages for the server portion (NodeJS) of the Masamune framework.
72 lines • 2.4 kB
JavaScript
;
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