UNPKG

@mathrunet/masamune

Version:

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

314 lines 7.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModelFieldValue = void 0; /** * Class for generating values for `ModelFieldValue` in katana_model. * * katana_modelの`ModelFieldValue`用の値を生成するためのクラス。 */ class ModelFieldValue { /** * Generates text data for Like search. * * Like検索用のテキストデータを生成します。 * * @param {string} text * Text to be searched. * * 検索対象のテキスト。 * * @returns */ static searchable({ text, }) { const res = {}; const search = {}; text.toLowerCase().replace(/\./g, "").toHankakuNumericAndAlphabet().toZenkakuKatakana().toKatakana().removeOnlyEmoji().splitByCharacterAndBigram().forEach((e) => { const trimed = e.trim(); if (trimed.length <= 0) { return; } search[trimed] = true; }); res["@search"] = search; return res; } /** * Class for generating data for `ModelCounter`. * * `ModelCounter`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {number} value * Data value. * * データの値。 * * @param {number} increment * Increment value. * * インクリメントする値。 * * @returns { [key: string]: any } * Data for `ModelCounter`. * * `ModelCounter`用のデータ。 */ static modelCounter({ key, value, increment, }) { const res = {}; res[key] = value; res[`#${key}`] = { "@increment": increment !== null && increment !== void 0 ? increment : 0, "@target": key, "@type": "ModelCounter", "@value": value, }; return res; } /** * Class for generating data for `ModelTimestamp`. * * `ModelTimestamp`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {Date} date * Date and time. * * 日時。 * * @returns { [key: string]: any } * Data for `ModelCounter`. * * `ModelCounter`用のデータ。 */ static modelTimestamp({ key, date, }) { const res = {}; date !== null && date !== void 0 ? date : (date = new Date()); res[key] = date; res[`#${key}`] = { "@time": date.getTime(), "@target": key, "@type": "ModelTimestamp", }; return res; } /** * Class for generating data for `ModelDate`. * * `ModelDate`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {Date} date * Date and time. * * 日時。 * * @returns { [key: string]: any } * Data for `ModelDate`. * * `ModelDate`用のデータ。 */ static modelDate({ key, date, }) { const res = {}; date !== null && date !== void 0 ? date : (date = new Date()); date.setHours(0, 0, 0, 0); res[key] = date; res[`#${key}`] = { "@time": date.getTime(), "@target": key, "@type": "ModelDate", }; return res; } /** * Class for generating data for `ModelLocale`. * * `ModelLocale`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string} language * Language. * * 言語。 * * @param {string} country * Country. * * 国。 * * @returns { [key: string]: any } * Data for `ModelLocale`. * * `ModelLocale`用のデータ。 */ static modelLocale({ key, language, country, }) { const res = {}; res[key] = `${language}_${country}`; res[`#${key}`] = { "@country": country, "@language": language, "@target": key, "@type": "ModelLocale", }; return res; } /** * Class for generating data for `ModelUri`. * * `ModelUri`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string} uri * URI. * * @returns { [key: string]: any } * Data for `ModelUri`. * * `ModelUri`用のデータ。 */ static modelUri({ key, uri, }) { const res = {}; res[key] = uri; res[`#${key}`] = { "@target": key, "@type": "ModelUri", "@uri": uri, }; return res; } /** * Class for generating data for `ModelImageUri`. * * `ModelImageUri`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string} uri * URI. * * @returns { [key: string]: any } * Data for `ModelImageUri`. * * `ModelImageUri`用のデータ。 */ static modelImageUri({ key, uri, }) { const res = {}; res[key] = uri; res[`#${key}`] = { "@target": key, "@type": "ModelImageUri", "@uri": uri, }; return res; } /** * Class for generating data for `ModelVideoUri`. * * `ModelVideoUri`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string} uri * URI. * * @returns { [key: string]: any } * Data for `ModelVideoUri`. * * `ModelVideoUri`用のデータ。 */ static modelVideoUri({ key, uri, }) { const res = {}; res[key] = uri; res[`#${key}`] = { "@target": key, "@type": "ModelVideoUri", "@uri": uri, }; return res; } /** * Class for generating data for `ModelSearch`. * * `ModelSearch`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string[]} list * List of search values. * * 検索対象のリスト。 * * @returns { [key: string]: any } * Data for `ModelSearch`. * * `ModelSearch`用のデータ。 */ static modelSearch({ key, list, }) { const res = {}; res[key] = list; res[`#${key}`] = { "@list": list, "@type": "ModelSearch", }; return res; } /** * Class for generating data for `ModelToken`. * * `ModelToken`用のデータを生成するためのクラス。 * * @param {string} key * Data key. * * データのキー。 * * @param {string[]} list * List of token values. * * トークンのリスト。 * * @returns { [key: string]: any } * Data for `ModelToken`. * * `ModelToken`用のデータ。 */ static modelToken({ key, list, }) { const res = {}; res[key] = list; res[`#${key}`] = { "@list": list, "@type": "ModelToken", }; return res; } } exports.ModelFieldValue = ModelFieldValue; //# sourceMappingURL=model_field_value.js.map