@pawel-up/jexl
Version:
Javascript Expression Language: Powerful context-based expression parser and evaluator
45 lines • 3.75 kB
JavaScript
import { createParameter, createFunctionSchema, createLibrarySchema } from './utils.js';
export const commonFunctionSchemas = {
LENGTH: createFunctionSchema('LENGTH', 'Returns the length of a string or array', 'common', [createParameter('strOrArr', { type: 'string', description: 'The string or array to measure' })], { type: 'number', description: 'The length of the string or array' }, {
examples: ['LENGTH("hello") // 5', 'LENGTH([1, 2, 3]) // 3'],
}),
IS_EMPTY: createFunctionSchema('IS_EMPTY', 'Checks if a string or array is empty', 'common', [createParameter('strOrArr', { type: 'string', description: 'The string or array to check' })], { type: 'boolean', description: 'True if the string or array is empty, false otherwise' }, {
examples: ['IS_EMPTY("") // true', 'IS_EMPTY([1, 2, 3]) // false'],
}),
IS_NOT_EMPTY: createFunctionSchema('IS_NOT_EMPTY', 'Checks if a string or array is not empty', 'common', [createParameter('strOrArr', { type: 'string', description: 'The string or array to check' })], { type: 'boolean', description: 'True if the string or array is not empty, false otherwise' }, {
examples: ['IS_NOT_EMPTY("hello") // true', 'IS_NOT_EMPTY([]) // false'],
}),
CONTAINS: createFunctionSchema('CONTAINS', 'Checks if a string or array contains a specified substring', 'common', [
createParameter('strOrArr', { type: 'string', description: 'The string or array to check' }),
createParameter('substring', { type: 'string', description: 'The substring to check for' }),
], { type: 'boolean', description: 'True if the string or array contains the substring, false otherwise' }, {
examples: ['CONTAINS(["hello", "world"], "lo") // true', 'CONTAINS("hello", "hi") // false'],
}),
INDEX_OF: createFunctionSchema('INDEX_OF', 'Finds the index of the first occurrence of a substring in a string', 'common', [
createParameter('str', { type: 'string', description: 'The string to search in' }),
createParameter('substring', { type: 'string', description: 'The substring to find' }),
], { type: 'number', description: 'The index of the substring, or -1 if not found' }, {
examples: ['INDEX_OF("hello", "lo") // 3', 'INDEX_OF("hello", "hi") // -1'],
}),
LAST_INDEX_OF: createFunctionSchema('LAST_INDEX_OF', 'Finds the index of the last occurrence of a substring in a string', 'common', [
createParameter('str', { type: 'string', description: 'The string to search in' }),
createParameter('substring', { type: 'string', description: 'The substring to find' }),
], { type: 'number', description: 'The index of the substring, or -1 if not found' }, {
examples: ['LAST_INDEX_OF("hello", "lo") // 3', 'LAST_INDEX_OF("hello", "hi") // -1'],
}),
REVERSE: createFunctionSchema('REVERSE', 'Reverses a string or array', 'common', [createParameter('val', { type: 'string', description: 'The string or array to reverse' })], { type: 'string', description: 'The reversed string or array' }, {
examples: ['REVERSE("hello") // "olleh"', 'REVERSE([1, 2, 3]) // [3, 2, 1]'],
}),
};
export const commonLibrarySchema = createLibrarySchema(commonFunctionSchemas, {
category: 'common',
title: 'Common Functions',
description: 'Common manipulation and utility functions',
version: '1.0.0',
});
export const getCommonFunction = (name) => commonLibrarySchema.functions[name];
export const getCommonFunctionNames = () => Object.keys(commonLibrarySchema.functions);
export const getCommonFunctionCount = () => Object.keys(commonLibrarySchema.functions).length;
export { commonLibrarySchema as schema };
export default commonLibrarySchema;
//# sourceMappingURL=common.schema.js.map