This package contains a bunch of functions used across Chego components.
npm install --save @chego/chego-tools
The functions included in this package have been separated from the core component, so that they can be used in database drivers without any unnecessary and heavy dependencies. As such, they should not be part of the official API.
To find out what Property
, Table
, SortingData
, Alias
, RowId
, Limit
, LogicalOperatorScope
, FunctionData
are, please check Chego API
Returns new Property
object.
Returns new Table
object.
Returns new Limit
object.
newSortingData(property: Property = null, order: SortingOrderEnum = SortingOrderEnum.ASC): SortingData
Returns new SortingData
object.
Returns new Property
object with the defined type QuerySyntaxEnum.RowId
.
Returns new Property
object with the defined type QuerySyntaxEnum.Alias
.
Returns label string of given property/table. If alias
is set then it will return its value, otherwise it returns name
of the property.
Function checks if a given key
is a string
, if so, it parses it to a Property
object.
mergePropertiesWithLogicalAnd(properties: PropertyOrLogicalOperatorScope[], current: PropertyOrLogicalOperatorScope, i: number): PropertyOrLogicalOperatorScope[]
Array.reduce
callback, which checks each element and wraps it within the logical operator scope.
pseudocode
select['foo','bar','baz', or('qux')] ---> select['foo',and('bar'),and('baz'), or('qux')]
newLogicalOperatorScope(type: QuerySyntaxEnum, properties?: PropertyOrLogicalOperatorScope[]): LogicalOperatorScope
Returns new LogicalOperatorScope
object.
Checks if a given enum value is equal to And
, Or
or Not
.
Checks if a given prop is a LogicalOperatorScope
object.
Checks if a given prop is a function
.
Performs a deep cloning of an object.
Checks if a given prop is a QuerySchemeElement
object.
Executes Array.reduce
callbacks - one by one - in a single iteration.
Converts given string to Table
object.
Converts given string to Property
object.
Checks if a given param is a string
and matches pattern eg. superheros.name
.
Checks if a given param is a string
and matches pattern eg. writers.name AS author
.
Checks if a given param is a Property
object.
Checks if a given param is a Property
object with defined type QuerySyntaxEnum.RowId
.
Checks if a given param is a Property
object with defined type QuerySyntaxEnum.Alias
.
Checks if a given param is a FunctionData
object.
Checks if a given param is a ItemWithCustomId
object.
There is still a lot to do, so if you want to be part of the Chego project and make it better, it's great. Whether you find a bug or have a feature request, please contact us. With your help, we'll make it a great tool.
Follow our kanban boards to be up to date
Join the team, feel free to catch any task or suggest a new one.
Copyright (c) 2019 Chego Team
Licensed under the MIT license.