UNPKG

@mathrunet/masamune

Version:

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

60 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FirestoreModelRefConverter = void 0; const firestore_model_field_value_converter_1 = require("../firestore_model_field_value_converter"); const utils_1 = require("../../utils"); const firestore_1 = require("firebase-admin/firestore"); /** * FirestoreConverter for [ModelRef]. * * [ModelRef]用のFirestoreConverter。 */ class FirestoreModelRefConverter extends firestore_model_field_value_converter_1.FirestoreModelFieldValueConverter { /** * FirestoreConverter for [ModelRef]. * * [ModelRef]用のFirestoreConverter。 */ constructor() { super(); this.type = "ModelRefBase"; } convertFrom(key, value, original) { console.log(`${key} is ${typeof value}`); if (value instanceof firestore_1.DocumentReference) { return { [key]: Object.assign({ "@ref": value.path }, this.header()), }; } else if (Array.isArray(value)) { const res = []; for (const tmp of value) { if (tmp instanceof firestore_1.DocumentReference) { res.push(Object.assign({ "@ref": tmp.path }, this.header())); } } if (res.length > 0) { return { [key]: res, }; } } else if ((0, utils_1.isDynamicMap)(value)) { const res = {}; for (const k in value) { const val = value[k]; if (val instanceof firestore_1.DocumentReference) { res[k] = Object.assign({ "@ref": val.path }, this.header()); } } if (Object.keys(res).length > 0) { return { [key]: res, }; } } return null; } } exports.FirestoreModelRefConverter = FirestoreModelRefConverter; //# sourceMappingURL=firestore_model_ref_converter.js.map