UNPKG

@enonic/js-utils

Version:
141 lines (135 loc) 4.27 kB
// value/isFunction.ts function isFunction(value) { return Object.prototype.toString.call(value).slice(8, -1) === "Function"; } // value/isInt.ts function isInt(value) { return typeof value === "number" && isFinite(value) && // TODO Is isFinite() available in Enonic XP? Math.floor(value) === value; } // value/isInteger.ts var isInteger = "isInteger" in Number && isFunction(Number.isInteger) ? Number.isInteger : isInt; // value/isObject.ts var isObject = (value) => Object.prototype.toString.call(value).slice(8, -1) === "Object"; // storage/indexing/constants.ts var INDEX_CONFIG_ENABLED = "enabled"; var INDEX_CONFIG_DECIDE_BY_TYPE = "decideByType"; var INDEX_CONFIG_FULLTEXT = "fulltext"; var INDEX_CONFIG_INCLUDE_IN_ALL_TEXT = "includeInAllText"; var INDEX_CONFIG_INDEX_VALUE_PROCESSORS = "indexValueProcessors"; var INDEX_CONFIG_LANGUAGES = "languages"; var INDEX_CONFIG_N_GRAM = "nGram"; var INDEX_CONFIG_PATH = "path"; var INDEX_CONFIG_TEMPLATE_NONE = "none"; var INDEX_CONFIG_TEMPLATE_BY_TYPE = "byType"; var INDEX_CONFIG_TEMPLATE_FULLTEXT = "fulltext"; var INDEX_CONFIG_TEMPLATE_PATH = "path"; var INDEX_CONFIG_TEMPLATE_MINIMAL = "minimal"; // storage/indexing/indexTemplateToConfig.ts function indexTemplateToConfig({ template, indexValueProcessors, // = [], languages // = [] }) { if (isObject(template)) { const configObject = JSON.parse(JSON.stringify(template)); if (indexValueProcessors) { configObject.indexValueProcessors = indexValueProcessors; } if (languages) { configObject.languages = languages; } return configObject; } if (template === INDEX_CONFIG_TEMPLATE_NONE) { const rv = { [INDEX_CONFIG_DECIDE_BY_TYPE]: false, [INDEX_CONFIG_ENABLED]: false, [INDEX_CONFIG_FULLTEXT]: false, [INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false }; if (indexValueProcessors) { rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors; } if (languages) { rv[INDEX_CONFIG_LANGUAGES] = languages; } rv[INDEX_CONFIG_N_GRAM] = false; rv[INDEX_CONFIG_PATH] = false; return rv; } if (template === INDEX_CONFIG_TEMPLATE_BY_TYPE) { const rv = { [INDEX_CONFIG_DECIDE_BY_TYPE]: true, [INDEX_CONFIG_ENABLED]: true, [INDEX_CONFIG_FULLTEXT]: false, [INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false }; if (indexValueProcessors) { rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors; } if (languages) { rv[INDEX_CONFIG_LANGUAGES] = languages; } rv[INDEX_CONFIG_N_GRAM] = false; rv[INDEX_CONFIG_PATH] = false; return rv; } if (template === INDEX_CONFIG_TEMPLATE_FULLTEXT) { const rv = { [INDEX_CONFIG_DECIDE_BY_TYPE]: false, [INDEX_CONFIG_ENABLED]: true, [INDEX_CONFIG_FULLTEXT]: true, [INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: true }; if (indexValueProcessors) { rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors; } if (languages) { rv[INDEX_CONFIG_LANGUAGES] = languages; } rv[INDEX_CONFIG_N_GRAM] = true; rv[INDEX_CONFIG_PATH] = false; return rv; } if (template === INDEX_CONFIG_TEMPLATE_PATH) { const rv = { [INDEX_CONFIG_DECIDE_BY_TYPE]: false, [INDEX_CONFIG_ENABLED]: true, [INDEX_CONFIG_FULLTEXT]: false, [INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false }; if (indexValueProcessors) { rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors; } if (languages) { rv[INDEX_CONFIG_LANGUAGES] = languages; } rv[INDEX_CONFIG_N_GRAM] = false; rv[INDEX_CONFIG_PATH] = true; return rv; } if (template === INDEX_CONFIG_TEMPLATE_MINIMAL) { const rv = { [INDEX_CONFIG_DECIDE_BY_TYPE]: false, [INDEX_CONFIG_ENABLED]: true, [INDEX_CONFIG_FULLTEXT]: false, [INDEX_CONFIG_INCLUDE_IN_ALL_TEXT]: false }; if (indexValueProcessors) { rv[INDEX_CONFIG_INDEX_VALUE_PROCESSORS] = indexValueProcessors; } if (languages) { rv[INDEX_CONFIG_LANGUAGES] = languages; } rv[INDEX_CONFIG_N_GRAM] = false; rv[INDEX_CONFIG_PATH] = false; return rv; } throw new Error(`Unknown indexing template:${template}!`); } export { indexTemplateToConfig };