routier-collection / core/src / DataTranslator
Abstract Class: DataTranslator<TRoot, TShape>
Defined in: core/src/plugins/translators/DataTranslator.ts:8
Extended by
Type Parameters
TRoot
TRoot extends object
TShape
TShape
Constructors
Constructor
new DataTranslator<
TRoot,TShape>(query):DataTranslator<TRoot,TShape>
Defined in: core/src/plugins/translators/DataTranslator.ts:27
Parameters
query
IQuery<TRoot, TShape>
Returns
DataTranslator<TRoot, TShape>
Methods
count()
abstractcount<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:32
Type Parameters
TResult
TResult extends number
Parameters
data
unknown
option
QueryOption<TShape, "count">
Returns
TResult
min()
abstractmin<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:33
Type Parameters
TResult
TResult extends string | number | Date
Parameters
data
unknown
option
QueryOption<TShape, "min">
Returns
TResult
max()
abstractmax<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:34
Type Parameters
TResult
TResult extends string | number | Date
Parameters
data
unknown
option
QueryOption<TShape, "max">
Returns
TResult
sum()
abstractsum<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:35
Type Parameters
TResult
TResult extends number
Parameters
data
unknown
option
QueryOption<TShape, "sum">
Returns
TResult
distinct()
abstractdistinct<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:36
Type Parameters
TResult
TResult
Parameters
data
unknown
option
QueryOption<TShape, "distinct">
Returns
TResult
filter()
abstractfilter<TResult>(data,option):TResult
Defined in: core/src/plugins/translators/DataTranslator.ts:39
Type Parameters
TResult
TResult
Parameters
data
unknown
option
QueryOption<TShape, "filter">
Returns
TResult
skip()
abstractskip(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:40
Parameters
data
unknown
option
QueryOption<TShape, "skip">
Returns
TShape
take()
abstracttake(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:41
Parameters
data
unknown
option
QueryOption<TShape, "take">
Returns
TShape
sort()
abstractsort(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:42
Parameters
data
unknown
option
QueryOption<TShape, "sort">
Returns
TShape
map()
abstractmap(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:43
Parameters
data
unknown
option
QueryOption<TShape, "map">
Returns
TShape
group()
abstractgroup(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:44
Parameters
data
unknown
option
QueryOption<TShape, "group">
Returns
TShape
nearest()
abstractnearest(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:56
Abstract on purpose, unlike the pass-throughs a storage translator can usually inherit.
Every other shaper degrades safely when a backend ignores it — an unsorted result is still the right rows. A similarity search is not: it is the only option whose value is ENTIRELY in the ordering and the limit, so a translator that quietly passes the data through returns every row in insertion order and calls it the ten nearest.
Requiring an answer here means a new translator cannot be written without deciding whether its backend performed the search, and the compiler asks the question.
Parameters
data
unknown
option
QueryOption<TShape, "nearest">
Returns
TShape
join()
abstractjoin(data,option):TShape
Defined in: core/src/plugins/translators/DataTranslator.ts:73
Abstract for the same reason as nearest, one step further.
A translator that quietly passed a join through would not return an unsorted or unlimited result — it would return the OUTER rows, one object each where the contract says tuples, and every ([outer, inner]) => ... lambda downstream would destructure the outer entity instead. Nothing errors; the answer is simply a different query's answer.
So the compiler asks the question. Every translator must state how its backend joins: natively (pass through the rows the SQL already paired), in memory (the shared hash join over rows the plugin supplies), or not at all (throw, loudly, naming the backend).
The output contract, whichever answer: an array of [outer, inner] tuples, each half fully deserialized into its OWN schema's entity shape.
Parameters
data
unknown
option
QueryOption<TShape, "join">
Returns
TShape
translate()
translate(
data):ITranslatedValue<TShape>
Defined in: core/src/plugins/translators/DataTranslator.ts:75
Parameters
data
unknown
Returns
ITranslatedValue<TShape>