@enonic/js-utils
Advanced tools
Comparing version 0.26.2 to 0.27.0
@@ -122,14 +122,16 @@ var __defProp = Object.defineProperty; | ||
addQueryFilter: () => addQueryFilter, | ||
and: () => and, | ||
and: () => and2, | ||
detectCommonValueType: () => detectCommonValueType, | ||
detectValueType: () => detectValueType, | ||
dirname: () => dirname, | ||
dsl: () => dsl_exports, | ||
enonify: () => enonify, | ||
fulltext: () => fulltext, | ||
fulltext: () => fulltext2, | ||
group: () => group, | ||
indexTemplateToConfig: () => indexTemplateToConfig, | ||
join: () => join, | ||
ngram: () => ngram, | ||
or: () => or, | ||
stemmed: () => stemmed, | ||
ngram: () => ngram2, | ||
or: () => or2, | ||
query: () => query_exports, | ||
stemmed: () => stemmed2, | ||
trimExt: () => trimExt, | ||
@@ -983,2 +985,49 @@ uniqueId: () => uniqueId, | ||
// src/storage/query/index.ts | ||
var query_exports = {}; | ||
__export(query_exports, { | ||
FILTER_CLAUSES: () => FILTER_CLAUSES, | ||
FILTER_CLAUSE_MUST: () => FILTER_CLAUSE_MUST, | ||
FILTER_CLAUSE_MUST_NOT: () => FILTER_CLAUSE_MUST_NOT, | ||
FILTER_CLAUSE_SHOULD: () => FILTER_CLAUSE_SHOULD, | ||
QUERY_FUNCTION_FULLTEXT: () => QUERY_FUNCTION_FULLTEXT, | ||
QUERY_FUNCTION_NGRAM: () => QUERY_FUNCTION_NGRAM, | ||
QUERY_FUNCTION_PATH_MATCH: () => QUERY_FUNCTION_PATH_MATCH, | ||
QUERY_FUNCTION_RANGE: () => QUERY_FUNCTION_RANGE, | ||
QUERY_FUNCTION_STEMMED: () => QUERY_FUNCTION_STEMMED, | ||
QUERY_OPERATOR_AND: () => QUERY_OPERATOR_AND, | ||
QUERY_OPERATOR_OR: () => QUERY_OPERATOR_OR, | ||
SORT_CREATED: () => SORT_CREATED, | ||
SORT_DISPLAYNAME: () => SORT_DISPLAYNAME, | ||
SORT_MANUAL: () => SORT_MANUAL, | ||
SORT_MODIFIED: () => SORT_MODIFIED, | ||
addQueryFilter: () => addQueryFilter, | ||
and: () => and2, | ||
dsl: () => dsl_exports, | ||
fulltext: () => fulltext2, | ||
group: () => group, | ||
ngram: () => ngram2, | ||
or: () => or2, | ||
stemmed: () => stemmed2 | ||
}); | ||
// src/storage/query/dsl/index.ts | ||
var dsl_exports = {}; | ||
__export(dsl_exports, { | ||
and: () => and, | ||
fulltext: () => fulltext, | ||
ngram: () => ngram, | ||
not: () => not, | ||
or: () => or, | ||
stemmed: () => stemmed | ||
}); | ||
// src/storage/query/dsl/and.ts | ||
function and(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
must: flattened | ||
}; | ||
} | ||
// src/storage/query/constants.ts | ||
@@ -1001,2 +1050,82 @@ var FILTER_CLAUSE_MUST = "must"; | ||
// src/array/forceArray.ts | ||
function forceArray(data) { | ||
return Array.isArray(data) ? data : [data]; | ||
} | ||
// src/storage/query/buildFields.ts | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
let field; | ||
if (isObject(stringOrObj)) { | ||
boost = stringOrObj.boost || void 0; | ||
field = stringOrObj.field; | ||
} else { | ||
field = stringOrObj; | ||
} | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
// src/storage/query/dsl/fulltextOrNgram.ts | ||
function fulltextOrNgram(fOrN, fields, query, operator = QUERY_OPERATOR_OR) { | ||
const innerObj = { | ||
fields: buildFieldsArray(fields), | ||
query, | ||
operator: operator.toUpperCase() | ||
}; | ||
if (fOrN === "fulltext") { | ||
return { | ||
fulltext: innerObj | ||
}; | ||
} else if (fOrN === "ngram") { | ||
return { | ||
ngram: innerObj | ||
}; | ||
} | ||
throw new Error(`first parameter must be 'fulltext' or 'ngram'`); | ||
} | ||
// src/storage/query/dsl/fulltext.ts | ||
function fulltext(fields, query, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("fulltext", fields, query, operator); | ||
} | ||
// src/storage/query/dsl/ngram.ts | ||
function ngram(fields, query, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("ngram", fields, query, operator); | ||
} | ||
// src/storage/query/dsl/not.ts | ||
function not(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
mustNot: flattened | ||
}; | ||
} | ||
// src/storage/query/dsl/or.ts | ||
function or(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
should: flattened | ||
}; | ||
} | ||
// src/storage/query/dsl/stemmed.ts | ||
function stemmed(fields, query, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
return { | ||
stemmed: { | ||
fields: buildFieldsArray(fields), | ||
query, | ||
operator: operator.toUpperCase(), | ||
language | ||
} | ||
}; | ||
} | ||
// src/storage/query/addQueryFilter.ts | ||
@@ -1023,3 +1152,3 @@ function addQueryFilter({ | ||
// src/storage/query/and.ts | ||
function and(...args) { | ||
function and2(...args) { | ||
const flattened = flatten(args); | ||
@@ -1035,24 +1164,4 @@ if (Array.isArray(flattened)) { | ||
// src/array/forceArray.ts | ||
function forceArray(data) { | ||
return Array.isArray(data) ? data : [data]; | ||
} | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
let field; | ||
if (isObject(stringOrObj)) { | ||
boost = stringOrObj.boost || void 0; | ||
field = stringOrObj.field; | ||
} else { | ||
field = stringOrObj; | ||
} | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
} | ||
// src/storage/query/fulltextOrNgram.ts | ||
function fulltextOrNgram(fOrN, fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
function fulltextOrNgram2(fOrN, fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return `${fOrN}(${buildFields(fields)},'${searchString}'${operator.toUpperCase() === QUERY_OPERATOR_AND ? `,'${QUERY_OPERATOR_AND}'` : ""})`; | ||
@@ -1062,4 +1171,4 @@ } | ||
// src/storage/query/fulltext.ts | ||
function fulltext(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("fulltext", fields, searchString, operator); | ||
function fulltext2(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram2("fulltext", fields, searchString, operator); | ||
} | ||
@@ -1073,8 +1182,8 @@ | ||
// src/storage/query/ngram.ts | ||
function ngram(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("ngram", fields, searchString, operator); | ||
function ngram2(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram2("ngram", fields, searchString, operator); | ||
} | ||
// src/storage/query/or.ts | ||
function or(...args) { | ||
function or2(...args) { | ||
const flattened = flatten(args); | ||
@@ -1097,3 +1206,3 @@ if (Array.isArray(flattened)) { | ||
// src/storage/query/stemmed.ts | ||
function stemmed(fields, searchString, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
function stemmed2(fields, searchString, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
return `stemmed(${buildFields(fields)},'${searchString}','${operator.toUpperCase() === QUERY_OPERATOR_AND ? QUERY_OPERATOR_AND : QUERY_OPERATOR_OR}','${language}')`; | ||
@@ -1100,0 +1209,0 @@ } |
@@ -27,3 +27,4 @@ var __defProp = Object.defineProperty; | ||
__export(buildFields_exports, { | ||
buildFields: () => buildFields | ||
buildFields: () => buildFields, | ||
buildFieldsArray: () => buildFieldsArray | ||
}); | ||
@@ -48,4 +49,4 @@ | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
@@ -60,4 +61,7 @@ let field; | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
module.exports = __toCommonJS(buildFields_exports); |
@@ -51,4 +51,4 @@ var __defProp = Object.defineProperty; | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
@@ -63,4 +63,7 @@ let field; | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
@@ -67,0 +70,0 @@ // src/storage/query/fulltextOrNgram.ts |
@@ -47,4 +47,4 @@ var __defProp = Object.defineProperty; | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
@@ -59,4 +59,7 @@ let field; | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
@@ -63,0 +66,0 @@ // src/storage/query/constants.ts |
@@ -43,6 +43,18 @@ var __defProp = Object.defineProperty; | ||
addQueryFilter: () => addQueryFilter, | ||
and: () => and2, | ||
dsl: () => dsl_exports, | ||
fulltext: () => fulltext2, | ||
group: () => group, | ||
ngram: () => ngram2, | ||
or: () => or2, | ||
stemmed: () => stemmed2 | ||
}); | ||
// src/storage/query/dsl/index.ts | ||
var dsl_exports = {}; | ||
__export(dsl_exports, { | ||
and: () => and, | ||
fulltext: () => fulltext, | ||
group: () => group, | ||
ngram: () => ngram, | ||
not: () => not, | ||
or: () => or, | ||
@@ -52,2 +64,15 @@ stemmed: () => stemmed | ||
// src/array/flatten.ts | ||
function flatten(arr, d = 1) { | ||
return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val, d - 1) : val), []) : arr.slice(); | ||
} | ||
// src/storage/query/dsl/and.ts | ||
function and(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
must: flattened | ||
}; | ||
} | ||
// src/storage/query/constants.ts | ||
@@ -70,2 +95,96 @@ var FILTER_CLAUSE_MUST = "must"; | ||
// src/array/forceArray.ts | ||
function forceArray(data) { | ||
return Array.isArray(data) ? data : [data]; | ||
} | ||
// src/value/isInt.ts | ||
function isInt(value) { | ||
return typeof value === "number" && isFinite(value) && Math.floor(value) === value; | ||
} | ||
// src/value/isInteger.ts | ||
var isInteger = Number.isInteger || isInt; | ||
// src/value/isObject.ts | ||
var isObject = (value) => Object.prototype.toString.call(value).slice(8, -1) === "Object"; | ||
// src/storage/query/buildFields.ts | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
let field; | ||
if (isObject(stringOrObj)) { | ||
boost = stringOrObj.boost || void 0; | ||
field = stringOrObj.field; | ||
} else { | ||
field = stringOrObj; | ||
} | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
// src/storage/query/dsl/fulltextOrNgram.ts | ||
function fulltextOrNgram(fOrN, fields, query, operator = QUERY_OPERATOR_OR) { | ||
const innerObj = { | ||
fields: buildFieldsArray(fields), | ||
query, | ||
operator: operator.toUpperCase() | ||
}; | ||
if (fOrN === "fulltext") { | ||
return { | ||
fulltext: innerObj | ||
}; | ||
} else if (fOrN === "ngram") { | ||
return { | ||
ngram: innerObj | ||
}; | ||
} | ||
throw new Error(`first parameter must be 'fulltext' or 'ngram'`); | ||
} | ||
// src/storage/query/dsl/fulltext.ts | ||
function fulltext(fields, query, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("fulltext", fields, query, operator); | ||
} | ||
// src/storage/query/dsl/ngram.ts | ||
function ngram(fields, query, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("ngram", fields, query, operator); | ||
} | ||
// src/storage/query/dsl/not.ts | ||
function not(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
mustNot: flattened | ||
}; | ||
} | ||
// src/storage/query/dsl/or.ts | ||
function or(...args) { | ||
const flattened = flatten(args); | ||
return { | ||
should: flattened | ||
}; | ||
} | ||
// src/storage/indexing/stemming.ts | ||
var STEMMING_LANGUAGE_CODE_ENGLISH = "en"; | ||
// src/storage/query/dsl/stemmed.ts | ||
function stemmed(fields, query, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
return { | ||
stemmed: { | ||
fields: buildFieldsArray(fields), | ||
query, | ||
operator: operator.toUpperCase(), | ||
language | ||
} | ||
}; | ||
} | ||
// src/storage/query/addQueryFilter.ts | ||
@@ -91,9 +210,4 @@ function addQueryFilter({ | ||
// src/array/flatten.ts | ||
function flatten(arr, d = 1) { | ||
return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val, d - 1) : val), []) : arr.slice(); | ||
} | ||
// src/storage/query/and.ts | ||
function and(...args) { | ||
function and2(...args) { | ||
const flattened = flatten(args); | ||
@@ -109,35 +223,4 @@ if (Array.isArray(flattened)) { | ||
// src/array/forceArray.ts | ||
function forceArray(data) { | ||
return Array.isArray(data) ? data : [data]; | ||
} | ||
// src/value/isInt.ts | ||
function isInt(value) { | ||
return typeof value === "number" && isFinite(value) && Math.floor(value) === value; | ||
} | ||
// src/value/isInteger.ts | ||
var isInteger = Number.isInteger || isInt; | ||
// src/value/isObject.ts | ||
var isObject = (value) => Object.prototype.toString.call(value).slice(8, -1) === "Object"; | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
let field; | ||
if (isObject(stringOrObj)) { | ||
boost = stringOrObj.boost || void 0; | ||
field = stringOrObj.field; | ||
} else { | ||
field = stringOrObj; | ||
} | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
} | ||
// src/storage/query/fulltextOrNgram.ts | ||
function fulltextOrNgram(fOrN, fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
function fulltextOrNgram2(fOrN, fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return `${fOrN}(${buildFields(fields)},'${searchString}'${operator.toUpperCase() === QUERY_OPERATOR_AND ? `,'${QUERY_OPERATOR_AND}'` : ""})`; | ||
@@ -147,4 +230,4 @@ } | ||
// src/storage/query/fulltext.ts | ||
function fulltext(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("fulltext", fields, searchString, operator); | ||
function fulltext2(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram2("fulltext", fields, searchString, operator); | ||
} | ||
@@ -158,8 +241,8 @@ | ||
// src/storage/query/ngram.ts | ||
function ngram(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram("ngram", fields, searchString, operator); | ||
function ngram2(fields, searchString, operator = QUERY_OPERATOR_OR) { | ||
return fulltextOrNgram2("ngram", fields, searchString, operator); | ||
} | ||
// src/storage/query/or.ts | ||
function or(...args) { | ||
function or2(...args) { | ||
const flattened = flatten(args); | ||
@@ -181,9 +264,6 @@ if (Array.isArray(flattened)) { | ||
// src/storage/indexing/stemming.ts | ||
var STEMMING_LANGUAGE_CODE_ENGLISH = "en"; | ||
// src/storage/query/stemmed.ts | ||
function stemmed(fields, searchString, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
function stemmed2(fields, searchString, operator = QUERY_OPERATOR_OR, language = STEMMING_LANGUAGE_CODE_ENGLISH) { | ||
return `stemmed(${buildFields(fields)},'${searchString}','${operator.toUpperCase() === QUERY_OPERATOR_AND ? QUERY_OPERATOR_AND : QUERY_OPERATOR_OR}','${language}')`; | ||
} | ||
module.exports = __toCommonJS(query_exports); |
@@ -51,4 +51,4 @@ var __defProp = Object.defineProperty; | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
@@ -63,4 +63,7 @@ let field; | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
@@ -67,0 +70,0 @@ // src/storage/query/fulltextOrNgram.ts |
@@ -50,4 +50,4 @@ var __defProp = Object.defineProperty; | ||
// src/storage/query/buildFields.ts | ||
function buildFields(fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
function buildFieldsArray(fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
let boost; | ||
@@ -62,4 +62,7 @@ let field; | ||
return `${field}${boost ? `^${boost}` : ""}`; | ||
}).join(",")}'`; | ||
}); | ||
} | ||
function buildFields(fields) { | ||
return `'${buildFieldsArray(fields).join(",")}'`; | ||
} | ||
@@ -66,0 +69,0 @@ // src/storage/query/constants.ts |
@@ -59,3 +59,3 @@ { | ||
}, | ||
"version": "0.26.2" | ||
"version": "0.27.0" | ||
} |
@@ -18,2 +18,3 @@ export * as array from './array'; // for example array.includes | ||
export * as storage from './storage'; | ||
export { | ||
@@ -20,0 +21,0 @@ AGGREGATION_COUNT, |
@@ -93,2 +93,3 @@ export { | ||
} from './indexing'; | ||
export * as query from './query'; | ||
export { | ||
@@ -112,2 +113,3 @@ FILTER_CLAUSE_MUST, | ||
addQueryFilter, | ||
dsl, | ||
fulltext, | ||
@@ -114,0 +116,0 @@ group, |
@@ -1,4 +0,1 @@ | ||
import {forceArray} from '../../array/forceArray'; | ||
import {isObject} from '../../value'; | ||
import type { | ||
@@ -10,4 +7,9 @@ FieldObject, | ||
export function buildFields(fields :Fields) { | ||
return `'${forceArray(fields).map((stringOrObj) => { | ||
import {forceArray} from '../../array/forceArray'; | ||
import {isObject} from '../../value'; | ||
export function buildFieldsArray(fields :Fields) { | ||
return forceArray(fields).map((stringOrObj) => { | ||
//console.debug('stringOrObj', stringOrObj); | ||
@@ -24,3 +26,8 @@ let boost :number|undefined; | ||
return `${field}${boost ? `^${boost}`: ''}`; | ||
}).join(',')}'`; | ||
}); | ||
} | ||
export function buildFields(fields :Fields) { | ||
return `'${buildFieldsArray(fields).join(',')}'`; | ||
} |
@@ -0,1 +1,3 @@ | ||
export * as dsl from './dsl'; | ||
export { | ||
@@ -2,0 +4,0 @@ FILTER_CLAUSE_MUST, |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1976733
291
56611