JsonApiResponseStrategy
Response strategy for the JSON:API driver
Parses JSON:API pagination responses:
{ "data": [...], "meta": { "current-page": 1, "per-page": 10, "total": 100, "page-count": 10, "from": 1, "to": 10 }, "links": { "first": "url", "prev": "url", "next": "url", "last": "url" }}Default key paths are configured in JsonApiResponseOptions. The
traversal algorithm (dot-notation resolution + computed from/to) is
inherited from AbstractDotPathResponseStrategy; this class exists so
DriverEnum.JSON_API resolves to a distinct identity at the DI layer
even though the parsing logic is shared with NestJS.
Constructor
Section titled “Constructor”new JsonApiResponseStrategy()Methods
Section titled “Methods”paginate()
Section titled “paginate()”paginate(response: RawResponse, options: ResponseOptions): PaginatedCollection<T>Parse a nested-envelope pagination response into a PaginatedCollection
| Parameter | Type | Description |
|---|---|---|
response |
RawResponse |
The raw API response object |
options |
ResponseOptions |
The response key name configuration (dot-notation paths supported) |
Returns — A typed PaginatedCollection instance
resolve()
Section titled “resolve()”resolve(response: RawResponse, path: string): unknownResolve a value from a response object using a dot-notation path
Supports both flat keys ('data') and nested paths ('meta.totalItems').
| Parameter | Type | Description |
|---|---|---|
response |
RawResponse |
The raw response object |
path |
string |
The dot-notation path to resolve |
Returns — The resolved value, or undefined if any segment is missing
resolveFrom()
Section titled “resolveFrom()”resolveFrom(response: RawResponse, options: ResponseOptions, currentPage: number, perPage?: number): number | undefinedResolve the “from” index value
If options.from resolves to a value in the response, use it.
Otherwise compute (currentPage - 1) * perPage + 1 when both are known.
| Parameter | Type | Description |
|---|---|---|
response |
RawResponse |
The raw response object |
options |
ResponseOptions |
The response key name configuration |
currentPage |
number |
The current page number |
perPage |
number |
The number of items per page |
Returns — The “from” index, or undefined when neither path nor inputs suffice
resolveTo()
Section titled “resolveTo()”resolveTo(response: RawResponse, options: ResponseOptions, currentPage: number, perPage?: number, total?: number): number | undefinedResolve the “to” index value
If options.to resolves to a value in the response, use it.
Otherwise compute Math.min(currentPage * perPage, total) when all
three are known.
| Parameter | Type | Description |
|---|---|---|
response |
RawResponse |
The raw response object |
options |
ResponseOptions |
The response key name configuration |
currentPage |
number |
The current page number |
perPage |
number |
The number of items per page |
total |
number |
The total number of items |
Returns — The “to” index, or undefined when neither path nor inputs suffice
