@mathrunet/masamune
Version:
Manages packages for the server portion (NodeJS) of the Masamune framework.
127 lines • 3.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FirestoreModelFieldValue = exports.FirestoreModelFieldValueConverter = void 0;
/**
* Base class for converting [ModelFieldValue] for use in Firestore.
*
* Firestoreで利用するための[ModelFieldValue]の変換を行うベースクラス。
*/
class FirestoreModelFieldValueConverter {
/**
* Base class for converting [ModelFieldValue] for use in Firestore.
*
* Firestoreで利用するための[ModelFieldValue]の変換を行うベースクラス。
*/
constructor() { }
/**
* Generate a header for ModelFieldValue.
*
* ModelFieldValue用のヘッダーを生成します。
*
* @returns { { [field: string]: any } }
* Header for ModelFieldValue.
*
* ModelFieldValue用のヘッダー。
*/
header() {
return {
"@source": "server",
"@type": this.type,
};
}
;
}
exports.FirestoreModelFieldValueConverter = FirestoreModelFieldValueConverter;
/**
* Class for generating values for `ModelFieldValue` for Firestore.
*
* Firestore用の`ModelFieldValue`用の値を生成するためのクラス。
*/
class FirestoreModelFieldValue {
/**
* Generate data for `ModelRef`.
*
* `ModelRef`用のデータを生成します。
*
* @param {string} key
* Data key.
*
* データのキー。
*
* @param {DocumentReference} ref
* Document reference data.
*
* ドキュメントのリファレンスデータ。
*
* @returns { [key: string]: any }
* Data for `ModelRef`.
*
* `ModelRef`用のデータ。
*/
static documentReferenceToModelRef({ key, ref, }) {
const res = {};
res[key] = {
"@ref": ref.path,
"@type": "ModelRefBase",
};
return res;
}
/**
* Generate data for `ModelTimestamp`.
*
* `ModelTimestamp`用のデータを生成します。
*
* @param {string} key
* Data key.
*
* データのキー。
*
* @param {Timestamp} timestamp
* Time stamp data.
*
* タイムスタンプデータ。
*
* @returns { [key: string]: any }
* Data for `ModelTimestamp`.
*
* `ModelTimestamp`用のデータ。
*/
static timestampToModelTimestamp({ key, timestamp, }) {
const res = {};
res[key] = {
"@timestamp": timestamp.toMillis(),
"@type": "ModelTimestamp",
};
return res;
}
/**
* Generate data for `ModelGeoValue`.
*
* `ModelGeoValue`用のデータを生成します。
*
* @param {string} key
* Data key.
*
* データのキー。
*
* @param {Timestamp} timestamp
* Time stamp data.
*
* タイムスタンプデータ。
*
* @returns { [key: string]: any }
* Data for `ModelGeoValue`.
*
* `ModelGeoValue`用のデータ。
*/
static geoPointToModelGeoValue({ key, timestamp, }) {
const res = {};
res[key] = {
"@timestamp": timestamp.toMillis(),
"@type": "ModelTimestamp",
};
return res;
}
}
exports.FirestoreModelFieldValue = FirestoreModelFieldValue;
//# sourceMappingURL=firestore_model_field_value_converter.js.map