Skip to main content
Version: next

PocketbaseResponseStrategy

Defined in: src/lib/strategies/pocketbase-response.strategy.ts:35

Response strategy for the PocketBase driver

Parses PocketBase records-list responses:

{
"page": 1,
"perPage": 30,
"totalItems": 48,
"totalPages": 2,
"items": [{ "id": "abc123", "title": "Hello" }]
}

Default key paths are configured in PocketbaseResponseOptions — all flat keys, resolved by the inherited dot-path traversal (a flat key is just a one-segment path). PocketBase does not include navigation links in the envelope, so firstPageUrl, prevPageUrl, nextPageUrl, and lastPageUrl resolve to undefined unless the consumer overrides their paths via IPaginationConfig; from/to are computed from page × perPage. This class exists so DriverEnum.POCKETBASE resolves to a distinct identity at the DI layer even though the parsing logic is shared with JSON:API, NestJS, and Strapi.

When the request was sent with skipTotal=1 (not emitted by this driver), PocketBase reports totalItems/totalPages as -1; override the paths or treat the values accordingly if you opt into that server-side optimisation.

See​

https://pocketbase.io/docs/api-records/

Extends​

  • AbstractDotPathResponseStrategy

Constructors​

Constructor​

new PocketbaseResponseStrategy(): PocketbaseResponseStrategy

Returns​

PocketbaseResponseStrategy

Inherited from​

AbstractDotPathResponseStrategy.constructor

Methods​

paginate()​

paginate<T>(response, options): PaginatedCollection<T>

Defined in: src/lib/strategies/abstract-dot-path-response.strategy.ts:32

Parse a nested-envelope pagination response into a PaginatedCollection

Type Parameters​

T​

T extends IPaginatedObject

Parameters​

response​

Record<string, any>

The raw API response object

options​

ResponseOptions

The response key name configuration (dot-notation paths supported)

Returns​

PaginatedCollection<T>

A typed PaginatedCollection instance

Inherited from​

AbstractDotPathResponseStrategy.paginate


resolve()​

protected resolve(response, path): unknown

Defined in: src/lib/strategies/abstract-dot-path-response.strategy.ts:73

Resolve a value from a response object using a dot-notation path

Supports both flat keys ('data') and nested paths ('meta.totalItems').

Parameters​

response​

Record<string, any>

The raw response object

path​

string

The dot-notation path to resolve

Returns​

unknown

The resolved value, or undefined if any segment is missing

Inherited from​

AbstractDotPathResponseStrategy.resolve


resolveFrom()​

protected resolveFrom(response, options, currentPage, perPage?): number | undefined

Defined in: src/lib/strategies/abstract-dot-path-response.strategy.ts:90

Resolve 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.

Parameters​

response​

Record<string, any>

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​

number | undefined

The "from" index, or undefined when neither path nor inputs suffice

Inherited from​

AbstractDotPathResponseStrategy.resolveFrom


resolveTo()​

protected resolveTo(response, options, currentPage, perPage?, total?): number | undefined

Defined in: src/lib/strategies/abstract-dot-path-response.strategy.ts:119

Resolve 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.

Parameters​

response​

Record<string, any>

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​

number | undefined

The "to" index, or undefined when neither path nor inputs suffice

Inherited from​

AbstractDotPathResponseStrategy.resolveTo