@mathrunet/masamune
Version:
Manages packages for the server portion (NodeJS) of the Masamune framework.
255 lines • 10.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultConverters = exports.FirestoreModelFieldValueConverterUtils = exports.ModelFieldValueConverterUtils = void 0;
const model_server_command_base_converter_1 = require("./converters/model_server_command_base_converter");
const model_counter_converter_1 = require("./converters/model_counter_converter");
const model_timestamp_converter_1 = require("./converters/model_timestamp_converter");
const model_date_converter_1 = require("./converters/model_date_converter");
const model_locale_converter_1 = require("./converters/model_locale_converter");
const model_localized_value_converter_1 = require("./converters/model_localized_value_converter");
const model_uri_converter_1 = require("./converters/model_uri_converter");
const model_image_uri_converter_1 = require("./converters/model_image_uri_converter");
const basic_converter_1 = require("./converters/basic_converter");
const enum_converter_1 = require("./converters/enum_converter");
const model_geo_value_converter_1 = require("./converters/model_geo_value_converter");
const model_vector_value_converter_1 = require("./converters/model_vector_value_converter");
const model_ref_base_converter_1 = require("./converters/model_ref_base_converter");
const model_search_converter_1 = require("./converters/model_search_converter");
const model_token_converter_1 = require("./converters/model_token_converter");
const model_video_uri_converter_1 = require("./converters/model_video_uri_converter");
const null_converter_1 = require("./converters/null_converter");
const model_time_converter_1 = require("./converters/model_time_converter");
const model_time_range_converter_1 = require("./converters/model_time_range_converter");
const model_timestamp_range_converter_1 = require("./converters/model_timestamp_range_converter");
const model_date_range_converter_1 = require("./converters/model_date_range_converter");
/**
* List of converters for converting [ModelFieldValue] to Firestore manageable type.
*
* [ModelFieldValue]をFirestoreで管理可能な型に変換するためのコンバーター一覧。
*/
const defaultConverters = [
new model_server_command_base_converter_1.ModelServerCommandBaseConverter(),
new model_counter_converter_1.ModelCounterConverter(),
new model_timestamp_converter_1.ModelTimestampConverter(),
new model_timestamp_range_converter_1.ModelTimestampRangeConverter(),
new model_date_converter_1.ModelDateConverter(),
new model_date_range_converter_1.ModelDateRangeConverter(),
new model_time_converter_1.ModelTimeConverter(),
new model_time_range_converter_1.ModelTimeRangeConverter(),
new model_locale_converter_1.ModelLocaleConverter(),
new model_localized_value_converter_1.ModelLocalizedValueConverter(),
new model_uri_converter_1.ModelUriConverter(),
new model_image_uri_converter_1.ModelImageUriConverter(),
new model_video_uri_converter_1.ModelVideoUriConverter(),
new model_search_converter_1.ModelSearchConverter(),
new model_token_converter_1.ModelTokenConverter(),
new model_geo_value_converter_1.ModelGeoValueConverter(),
new model_vector_value_converter_1.ModelVectorValueConverter(),
new model_ref_base_converter_1.ModelRefBaseConverter(),
new enum_converter_1.ModelEnumConverter(),
new null_converter_1.ModelNullConverter(),
new basic_converter_1.ModelBasicConverter(),
];
/**
* List of converters for converting Firestore values.
*
* Firestoreの値を変換するためのコンバーター一覧。
*/
const defaultFirestoreConverters = [
new model_server_command_base_converter_1.FirestoreModelServerCommandBaseConverter(),
new model_counter_converter_1.FirestoreModelCounterConverter(),
new model_timestamp_converter_1.FirestoreModelTimestampConverter(),
new model_timestamp_range_converter_1.FirestoreModelTimestampRangeConverter(),
new model_date_converter_1.FirestoreModelDateConverter(),
new model_date_range_converter_1.FirestoreModelDateRangeConverter(),
new model_time_converter_1.FirestoreModelTimeConverter(),
new model_time_range_converter_1.FirestoreModelTimeRangeConverter(),
new model_locale_converter_1.FirestoreModelLocaleConverter(),
new model_localized_value_converter_1.FirestoreModelLocalizedValueConverter(),
new model_uri_converter_1.FirestoreModelUriConverter(),
new model_image_uri_converter_1.FirestoreModelImageUriConverter(),
new model_video_uri_converter_1.FirestoreModelVideoUriConverter(),
new model_search_converter_1.FirestoreModelSearchConverter(),
new model_token_converter_1.FirestoreModelTokenConverter(),
new model_geo_value_converter_1.FirestoreModelGeoValueConverter(),
new model_vector_value_converter_1.FirestoreModelVectorValueConverter(),
new model_ref_base_converter_1.FirestoreModelRefBaseConverter(),
new enum_converter_1.FirestoreEnumConverter(),
new null_converter_1.FirestoreNullConverter(),
new basic_converter_1.FirestoreBasicConverter(),
];
exports.defaultConverters = defaultFirestoreConverters;
class ModelFieldValueConverterUtils {
/**
* Convert data to [ModelFieldValue].
*
* データを[ModelFieldValue]に変換します。
*
* @param data
* Data to convert.
*
* 変換するデータ。
*
* @returns { [field: string]: any }
* Data converted to [ModelFieldValue].
*
* [ModelFieldValue]に変換されたデータ。
*/
static convertFrom({ data }) {
const update = {};
var replaced = null;
for (const key in data) {
const val = data[key];
for (const converter of defaultConverters) {
replaced = converter.convertFrom(key, val, data);
if (replaced !== null) {
// console.log(`ConvertFrom(${converter.type}): ${key} : ${val} to ${replaced}`);
break;
}
}
if (replaced !== null) {
for (const k in replaced) {
const v = replaced[k];
if (k.startsWith("#") && !v) {
continue;
}
update[k] = v;
}
}
else {
if (key.startsWith("#") && !val) {
continue;
}
update[key] = val;
}
}
return update;
}
/**
* Convert data to Firestore manageable type.
*
* データをFirestoreで管理可能な型に変換します。
*
* @param data
* Data to convert.
*
* 変換するデータ。
*
* @returns { [field: string]: any }
* Data converted to Firestore manageable type.
*
* Firestoreで管理可能な型に変換されたデータ。
*/
static convertTo({ data }) {
const update = {};
var replaced = null;
for (const key in data) {
const val = data[key];
for (const converter of defaultConverters) {
replaced = converter.convertTo(key, val, data);
if (replaced !== null) {
// console.log(`ConvertTo(${converter.type}): ${key} : ${val} to ${replaced}`);
break;
}
}
if (replaced !== null) {
for (const k in replaced) {
const v = replaced[k];
update[k] = v;
}
}
else {
update[key] = val;
}
}
return update;
}
}
exports.ModelFieldValueConverterUtils = ModelFieldValueConverterUtils;
/**
* Utility class for converting data using default converters.
*
* デフォルトのコンバーターを使用してデータを変換するユーティリティクラス。
*/
class FirestoreModelFieldValueConverterUtils {
/**
* Convert data to [ModelFieldValue].
*
* データを[ModelFieldValue]に変換します。
*
* @param data
* Data to convert.
*
* 変換するデータ。
*
* @returns { [field: string]: any }
* Data converted to [ModelFieldValue].
*
* [ModelFieldValue]に変換されたデータ。
*/
static convertFrom({ data, firestoreInstance }) {
const update = {};
var replaced = null;
for (const key in data) {
const val = data[key];
for (const converter of defaultFirestoreConverters) {
replaced = converter.convertFrom(key, val, data, firestoreInstance);
if (replaced !== null) {
// console.log(`FirestoreConvertFrom(${converter.type}): ${key} : ${val} to ${replaced}`);
break;
}
}
if (replaced !== null) {
for (const k in replaced) {
const v = replaced[k];
update[k] = v;
}
}
else {
update[key] = val;
}
}
return update;
}
/**
* Convert data to Firestore manageable type.
*
* データをFirestoreで管理可能な型に変換します。
*
* @param data
* Data to convert.
*
* 変換するデータ。
*
* @returns { [field: string]: any }
* Data converted to Firestore manageable type.
*
* Firestoreで管理可能な型に変換されたデータ。
*/
static convertTo({ data, firestoreInstance }) {
const update = {};
var replaced = null;
for (const key in data) {
const val = data[key];
for (const converter of defaultFirestoreConverters) {
replaced = converter.convertTo(key, val, data, firestoreInstance);
if (replaced !== null) {
// console.log(`FirestoreConvertTo(${converter.type}): ${key} : ${val} to ${replaced}`);
break;
}
}
if (replaced !== null) {
for (const k in replaced) {
const v = replaced[k];
update[k] = v;
}
}
else {
update[key] = val;
}
}
return update;
}
}
exports.FirestoreModelFieldValueConverterUtils = FirestoreModelFieldValueConverterUtils;
//# sourceMappingURL=default_model_field_value_converter.js.map