Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
29 lines
795 B
TypeScript
29 lines
795 B
TypeScript
import flow from 'lodash/flow';
|
|
import sortBy from 'lodash/sortBy';
|
|
import uniqBy from 'lodash/uniqBy';
|
|
|
|
export type DocumentProperties = {
|
|
customProperty: Array<{ field: string; value: string }>;
|
|
};
|
|
|
|
type DocFields = Array<{ name: string; value: string }>;
|
|
|
|
const ensureName = (docFields: DocFields) => docFields.filter((o) => o.name);
|
|
const sortByName = (docFields: DocFields) => sortBy(docFields, ['name']);
|
|
const uniqueByName = (docFields: DocFields) => uniqBy(docFields, (o) => o.name);
|
|
|
|
export const processNames = flow(ensureName, sortByName, uniqueByName);
|
|
|
|
export const toSQL = (operator: string) => {
|
|
const operators: { [key: string]: string } = {
|
|
is: '=',
|
|
isNot: '!=',
|
|
greater: '>',
|
|
less: '<',
|
|
equalsGreater: '>=',
|
|
equalsLess: '<=',
|
|
};
|
|
|
|
return operators[operator];
|
|
};
|