diff --git a/packages/clients/tanstack-query/package.json b/packages/clients/tanstack-query/package.json index c696e56f..e5b17b69 100644 --- a/packages/clients/tanstack-query/package.json +++ b/packages/clients/tanstack-query/package.json @@ -4,7 +4,6 @@ "description": "TanStack Query Client for consuming ZenStack v3's CRUD service", "main": "index.js", "type": "module", - "private": true, "scripts": { "build": "tsc --noEmit && tsup-node && pnpm test:generate && pnpm test:typecheck", "watch": "tsup-node --watch", diff --git a/packages/server/src/api/rest/index.ts b/packages/server/src/api/rest/index.ts index e0a08dcb..bd65470c 100644 --- a/packages/server/src/api/rest/index.ts +++ b/packages/server/src/api/rest/index.ts @@ -10,7 +10,7 @@ import { import type { FieldDef, ModelDef, SchemaDef } from '@zenstackhq/orm/schema'; import { Decimal } from 'decimal.js'; import SuperJSON from 'superjson'; -import { Linker, Paginator, Relator, Serializer, type SerializerOptions } from 'ts-japi'; +import tsjapi, { type Linker, type Paginator, type Relator, type Serializer, type SerializerOptions } from 'ts-japi'; import UrlPattern from 'url-pattern'; import z from 'zod'; import type { ApiHandler, LogConfig, RequestContext, Response } from '../../types'; @@ -610,7 +610,9 @@ export class RestApiHandler implements ApiHandler this.makeLinkUrl(`/${mappedType}/${resourceId}/${relationship}`)), + document: new tsjapi.Linker(() => + this.makeLinkUrl(`/${mappedType}/${resourceId}/${relationship}`), + ), paginator, }, include, @@ -670,7 +672,7 @@ export class RestApiHandler implements ApiHandler + document: new tsjapi.Linker(() => this.makeLinkUrl(`/${mappedType}/${resourceId}/relationships/${relationship}`), ), paginator, @@ -827,7 +829,7 @@ export class RestApiHandler implements ApiHandler ({ + return new tsjapi.Paginator(() => ({ first: this.replaceURLSearchParams(baseUrl, { 'page[limit]': limit }), last: this.replaceURLSearchParams(baseUrl, { 'page[offset]': (totalPages - 1) * limit, @@ -1110,7 +1112,7 @@ export class RestApiHandler implements ApiHandler + document: new tsjapi.Linker(() => this.makeLinkUrl(`/${mappedType}/${resourceId}/relationships/${relationship}`), ), }, @@ -1308,7 +1310,7 @@ export class RestApiHandler implements ApiHandler + const linker = new tsjapi.Linker((items) => Array.isArray(items) ? this.makeLinkUrl(`/${mappedModel}`) : this.makeLinkUrl(`/${mappedModel}/${this.getId(model, items)}`), @@ -1326,7 +1328,7 @@ export class RestApiHandler implements ApiHandler implements ApiHandler 0) { const mappedModel = this.mapModelName(modelLower); - const relator = new Relator( + const relator = new tsjapi.Relator( async (data) => { return (data as any)[field]; }, @@ -1368,10 +1370,10 @@ export class RestApiHandler implements ApiHandler + related: new tsjapi.Linker((primary) => this.makeLinkUrl(`/${mappedModel}/${this.getId(model, primary)}/${field}`), ), - relationship: new Linker((primary) => + relationship: new tsjapi.Linker((primary) => this.makeLinkUrl( `/${mappedModel}/${this.getId(model, primary)}/relationships/${field}`, ),