@nx-ddd/hasura 19.0.0-preview.23 → 19.0.0-preview.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -12,6 +12,7 @@ import { from, of, isObservable, firstValueFrom, filter, distinctUntilChanged, t
|
|
|
12
12
|
import { camelCase, snakeCase, isObject, mapKeys, mapValues, get, omitBy, omit, pick } from 'lodash-es';
|
|
13
13
|
import { HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
|
|
14
14
|
import dayjs from 'dayjs';
|
|
15
|
+
import { format } from 'date-fns';
|
|
15
16
|
export { TransformToDayjs } from '@nx-ddd/common/domain';
|
|
16
17
|
export { IsDayjs } from 'class-validator-extended';
|
|
17
18
|
|
|
@@ -189,9 +190,29 @@ function getConverter(type) {
|
|
|
189
190
|
const makeConverter = getConverter;
|
|
190
191
|
class HasuraUtils {
|
|
191
192
|
static toTimestamp(date) {
|
|
192
|
-
if (
|
|
193
|
+
if (dayjs.isDayjs(date)) {
|
|
194
|
+
return date.toISOString();
|
|
195
|
+
}
|
|
196
|
+
else if (date instanceof Date) {
|
|
197
|
+
return format(date, 'yyyy-MM-dd HH:mm:ss');
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
193
200
|
return null;
|
|
194
|
-
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
static toDate(date) {
|
|
204
|
+
if (dayjs.isDayjs(date)) {
|
|
205
|
+
return format(date.toDate(), 'yyyy-MM-dd');
|
|
206
|
+
}
|
|
207
|
+
else if (date instanceof Date) {
|
|
208
|
+
return format(date, 'yyyy-MM-dd');
|
|
209
|
+
}
|
|
210
|
+
else if (typeof date === 'string') {
|
|
211
|
+
return date;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
195
216
|
}
|
|
196
217
|
static fromHasura(_object, type) {
|
|
197
218
|
const object = deepSnakeToCamelCase(_object);
|
|
@@ -204,6 +225,7 @@ class HasuraUtils {
|
|
|
204
225
|
switch (annotation.type) {
|
|
205
226
|
case 'text': return { ...acc, [key]: value };
|
|
206
227
|
case 'timestamp': return { ...acc, [key]: this.toTimestamp(value) };
|
|
228
|
+
case 'date': return { ...acc, [key]: this.toDate(value) };
|
|
207
229
|
case 'numeric': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };
|
|
208
230
|
case 'integer': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };
|
|
209
231
|
case 'json': return { ...acc, [key]: value };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-hasura.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/links.ts","../../../../../packages/@nx-ddd/hasura/src/lib/apollo-multi.service.ts","../../../../../packages/@nx-ddd/hasura/src/lib/decorators.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.converter.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.service.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.repository.ts","../../../../../packages/@nx-ddd/hasura/src/lib/nx-ddd-hasura.ts"],"sourcesContent":["import { WebSocketLink } from \"@apollo/client/link/ws\";\nimport { distinctUntilChanged, filter, firstValueFrom, from, isObservable, Observable, of, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nfunction wrap<T>(token: Promise<T> | Observable<T> | T): Observable<T> {\n return isObservable(token) ? token : token instanceof Promise ? from(token) : of(token);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return firstValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n distinctUntilChanged(),\n tap((headers) => console.debug('[resolve] headers:', headers)),\n ))\n}\n\nexport function buildWebsocketLink(endpoint: string, getHeaders: GetHeaders) {\n return new WebSocketLink({\n uri: endpoint.replace('http', 'ws'),\n options: {\n reconnect: true,\n connectionParams: () => resolve(getHeaders).then((headers) => ({ headers })),\n },\n });\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { Apollo, ApolloBase } from \"apollo-angular\";\nimport { HasuraConfig } from \"./hasura.config\";\nimport { HttpLink } from 'apollo-angular/http';\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloClient, ApolloLink, DocumentNode, split } from \"@apollo/client/core\";\nimport { getMainDefinition } from \"@apollo/client/utilities\";\nimport { makeDI } from \"@nx-ddd/core\";\nimport { Observable } from \"rxjs\";\nimport { buildWebsocketLink, GetHeaders, resolve } from \"./links\";\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloMultiService {\n readonly apollo = inject(Apollo);\n readonly httpLink = inject(HttpLink);\n\n protected createClient(name: string, baseUrl: string, getHeaders: GetHeaders) {\n const wsLink = buildWebsocketLink(baseUrl, getHeaders);\n const link = split(\n ({ query }) => isSubscription(query),\n wsLink,\n ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }),\n ])\n );\n\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, { link, cache: new InMemoryCache() });\n }\n\n getClient(endpoint: string, getHeaders: GetHeaders): ApolloBase {\n const name = endpoint;\n let client = this.apollo.use(name);\n console.debug('[ApolloMultiService] getClient:', name);\n if (!client) {\n this.createClient(name, endpoint, getHeaders);\n client = this.apollo.use(name);\n }\n return client;\n }\n}\n\n\nexport type GetApolloClient<E extends {id: string}> = (config: HasuraConfig) => ApolloClient<E> | Promise<ApolloClient<E>> | Observable<ApolloClient<E>>;\nexport const GET_APOLLO_CLIENT = makeDI<GetApolloClient<any>>('GET_APOLLO_CLIENT');","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\n\nconst {\n createDecorator,\n getAnnotations,\n} = makeDecoratorFactories(\n (type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }),\n '[@nx-ddd/hasura] annotations'\n);\n\nexport function getFlattenFieldAnnotations<Annotation>(T: any, prefix: string = ''): Record<string, Annotation> {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n if (annotation.childType) {\n return {\n ...acc,\n ...getFlattenFieldAnnotations(annotation.childType(), currentKey)\n };\n }\n return {\n ...acc,\n [currentKey]: annotation\n };\n }, {});\n}\n\nexport function getFields(T: any, options: {\n prefix?: string;\n case?: 'snake' | 'camel';\n} = {\n prefix: '',\n case: 'snake'\n}): string[] {\n const annotations = Hasura.getAnnotations(T);\n const changeCase = options?.case === 'snake' ? snakeCase : camelCase;\n const fields = (annotations ?? []).flatMap((annotation) => {\n const currentKey = changeCase(options?.prefix ? `${options?.prefix}_${annotation.fieldName}` : annotation.fieldName);\n if (annotation.childType) {\n return [\n ...getFields(annotation.childType(), {\n prefix: currentKey,\n case: options?.case,\n })\n ];\n }\n return [currentKey];\n });\n return fields;\n}\n\nexport const Hasura = {\n Text: createDecorator('text'),\n Timestamp: createDecorator('timestamp'),\n Date: createDecorator('date'),\n Integer: createDecorator('integer'),\n Numeric: createDecorator('numeric'),\n Boolean: createDecorator('boolean'),\n Map: (childType: () => any) => createDecorator('map', {childType})(),\n JSON: createDecorator('json'),\n getAnnotations,\n};\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\n\n@Injectable()\nexport class HasuraInterceptor implements HttpInterceptor {\n private config = inject(HASURA_CONFIG);\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (req.url.startsWith(this.config.url)) {\n return next.handle(req.clone({\n headers: req.headers.set('x-hasura-admin-secret', this.config.adminSecret),\n }));\n }\n return next.handle(req);\n }\n}","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { Provider } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\n\nexport interface HasuraConfig {\n adminSecret?: string;\n url: string;\n}\n\nexport const HASURA_CONFIG = new InjectionToken<HasuraConfig>('HASURA_CONFIG');\n\nexport function provideHasuraConfig(config: HasuraConfig): Provider[] {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true} : [],\n ];\n}\n","import { getFlattenFieldAnnotations } from './decorators';\nimport { get, isObject, mapKeys, mapValues, snakeCase } from 'lodash-es';\nimport { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { ClassConstructor } from 'class-transformer';\nimport dayjs from 'dayjs';\n\nexport interface HasuraConverter<E> {\n toHasura(entity: E): object;\n toHasuraMany(entities: E[]): object[];\n fromHasura(entity: object): E;\n fromHasuraMany(entities: object[]): E[];\n}\n\nexport function deepCamelToSnakeCase(obj: any): any {\n if (Array.isArray(obj)) {\n return obj.map(deepCamelToSnakeCase);\n } else if (isObject(obj)) {\n return mapKeys(mapValues(obj, deepCamelToSnakeCase), (_, key) =>\n snakeCase(key)\n );\n }\n return obj;\n}\n\nexport function deepSnakeToCamelCase(obj: any): any {\n if (Array.isArray(obj)) {\n return obj.map(deepSnakeToCamelCase);\n } else if (isObject(obj)) {\n return mapKeys(mapValues(obj, deepSnakeToCamelCase), (_, key) =>\n key.replace(/_([a-z])/g, (g) => g[1].toUpperCase())\n );\n }\n return obj;\n}\n\nexport function fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T {\n return HasuraUtils.fromHasura(_object, type);\n}\n\nexport function toHasura(object: object, type: any, {\n extraFunc = deepCamelToSnakeCase\n}: {\n extraFunc?: (obj: any) => any;\n} = { }) {\n return HasuraUtils.toHasura(object, type, { extraFunc });\n}\n\nexport function getConverter<T extends object>(type: {new(): T}): HasuraConverter<T> {\n return {\n toHasura(entity: T) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities: T[]) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity: object) {\n return fromHasura(entity, type) as T;\n },\n fromHasuraMany(entities: object[]) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n }\n}\n\n/** @deprecated use `getConverter` instead */\nexport const makeConverter = getConverter;\n\nexport class HasuraUtils {\n static toTimestamp(date: dayjs.Dayjs | null): string | null {\n if (!dayjs.isDayjs(date)) return null;\n return date.toISOString();\n }\n\n static fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T {\n const object = deepSnakeToCamelCase(_object);\n return plainToInstanceWithValid(type, object);\n }\n \n static toHasura(object: object, type: any, {\n extraFunc = deepCamelToSnakeCase\n }: {\n extraFunc?: (obj: any) => any;\n } = { }) {\n const fields = getFlattenFieldAnnotations<{\n type: 'text' | 'timestamp' | 'numeric' | 'integer' | 'json' | 'map';\n fieldName: string;\n childType?: () => any;\n }>(type);\n const obj = Object.entries(fields).reduce((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n switch (annotation.type) {\n case 'text': return { ...acc, [key]: value };\n case 'timestamp': return { ...acc, [key]: this.toTimestamp(value) };\n case 'numeric': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };\n case 'integer': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };\n case 'json': return { ...acc, [key]: value };\n case 'map': return {...acc};\n default: return { ...acc, [key]: value };\n }\n }, {});\n return extraFunc(obj);\n }\n}\n","export { DeepPartial } from '@nx-ddd/common/domain';\nexport { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { EnvironmentProviders, InjectionToken, Provider, importProvidersFrom, inject } from '@angular/core';\nimport { ApolloLink, HttpLink, InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';\nimport { HASURA_CONFIG, HasuraConfig, provideHasuraConfig } from './hasura.config';\nimport { buildWebsocketLink, GetHeaders } from './links';\nimport { Observable } from 'rxjs';\n\nexport function provideHttpLink() {\n return {\n provide: ApolloLink,\n useFactory: (config: HasuraConfig) => new HttpLink({\n uri: config.url,\n headers: config?.adminSecret && { 'x-hasura-admin-secret': config.adminSecret },\n }),\n deps: [HASURA_CONFIG],\n };\n}\n\ntype HasuraAuthorization = Promise<string> | Observable<string> | string;\n\nconst HASURA_AUTHORIZATION = new InjectionToken<HasuraAuthorization>('HASURA_AUTHORIZATION');\n\nexport function provideHasuraAuthorization(useFactory: () => HasuraAuthorization) {\n return {\n provide: HASURA_AUTHORIZATION,\n useFactory,\n };\n}\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\n\nconst GRAPHQL_HEADERS = new InjectionToken<GetHeaders>('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\n\nexport function provideGraphqlHeaders(\n useFactory: () => () => PromiseOrObservable<Record<string, string>>,\n): Provider {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n\nexport function provideWebsocketLink() {\n return {\n provide: ApolloLink,\n useFactory: () => {\n const config = inject(HASURA_CONFIG);\n const _getHeaders = inject(GRAPHQL_HEADERS);\n return buildWebsocketLink(config.url, _getHeaders);\n },\n };\n}\n\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: (link: ApolloLink) => ({ cache: new InMemoryCache(), link }),\n deps: [ApolloLink],\n };\n}\n\nexport function provideHasura(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(ApolloModule),\n provideHasuraConfig(config),\n provideApolloOptions(),\n provideHttpLink(),\n ]\n}\n\nexport function provideHasuraWithWebSocket(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(ApolloModule),\n provideHasuraConfig(config),\n provideApolloOptions(),\n provideWebsocketLink(),\n ]\n}\n\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Apollo } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { ApolloClient } from \"@apollo/client/core\";\nimport { from, isObservable, Observable, of } from \"rxjs\";\nimport { ApolloMultiService, GET_APOLLO_CLIENT } from \"./apollo-multi.service\";\n\n\n@Injectable({providedIn: 'root'})\nexport class HasuraService {\n private http = inject(HttpClient);\n readonly apollo = inject(Apollo);\n readonly config = inject(HASURA_CONFIG);\n readonly apolloMulti = inject(ApolloMultiService);\n readonly _getApolloClient = GET_APOLLO_CLIENT.inject() ?? (() => this.apollo.client);\n\n getApolloClient(): Observable<ApolloClient<any>> {\n const clientOrObsOrPromise = this._getApolloClient(this.config);\n if (isObservable(clientOrObsOrPromise)) {\n return clientOrObsOrPromise;\n } else if (clientOrObsOrPromise instanceof Promise) {\n return from(clientOrObsOrPromise);\n } else {\n return of(clientOrObsOrPromise);\n }\n }\n\n graphql<T = any>(args: {query: string, variables?: object}) {\n return this.post<T>('/v1/graphql', {\n query: args.query,\n variables: args.variables,\n });\n }\n\n post<T>(endpoint: string, body: object) {\n return this.http.post<T>(`${this.config.url}${endpoint}`, body, {});\n }\n\n delete<T>(endpoint: string) {\n return this.http.delete<T>(`${this.config.url}${endpoint}`);\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { FetchResult, gql, OperationVariables } from \"@apollo/client/core\";\nimport { HasuraConverter } from \"./hasura.converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { omit, omitBy, pick, snakeCase } from \"lodash-es\";\nimport { lastValueFrom, map, Observable, switchMap, tap } from \"rxjs\";\n\nexport function makeSubscription(query: any) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition: any) => {\n if (definition.kind === 'OperationDefinition' && definition.operation === 'query') {\n return {\n ...definition,\n operation: 'subscription',\n };\n }\n return definition;\n });\n return { kind, definitions: subscriptionDefinitions };\n};\n\n@Injectable()\nexport abstract class HasuraRepository<E extends {id: string}> {\n protected hasura = inject(HasuraService);\n protected abstract converter: HasuraConverter<E>;\n readonly abstract updateColumns: string[];\n readonly abstract tableName: string;\n\n protected subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables\n >({query, variables}: {query: any, variables: any}): Observable<FetchResult<T>> {\n return this.hasura.getApolloClient().pipe(\n switchMap((client) => client.subscribe<T, TVariables>({\n query: makeSubscription(query),\n variables: variables,\n })),\n );\n }\n\n get pkey(): string {\n return `${this.tableName}_pkey`;\n }\n\n async get(params: {id: string}) {\n const queryName = `${this.tableName}_by_pk`;\n return lastValueFrom(this.hasura.getApolloClient()).then((client) => client.query({\n query: gql`query get($id: String!) {\n ${queryName}(id: $id) {\n ${this.updateColumns.join(' ')}\n }\n }`,\n variables: params,\n })).then((res => res.data[queryName])).then(data => data ? this.converter.fromHasura(data) : data);\n }\n\n get listQuery() {\n return `query list {\n ${this.tableName} {\n ${this.updateColumns.join(' ')}\n }\n }`;\n }\n\n async list(): Promise<E[]> {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.query({\n query: gql`${this.listQuery}`,\n }).then(res => this.converter.fromHasuraMany(res.data[this.tableName]));\n }\n\n listChanges(): Observable<E[]> {\n return this.subscribe({\n query: gql`${this.listQuery}`,\n variables: {},\n }).pipe(\n map(res => this.converter.fromHasuraMany(res.data[this.tableName])),\n );\n }\n\n async create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt'> & Partial<Pick<E, 'id'>>): Promise<E> {\n const mutationName = `insert_${this.tableName}`;\n const mutation = gql`mutation create($object: ${this.tableName}_insert_input!) {\n ${mutationName}(objects: [$object]) {\n affected_rows\n returning {\n ${this.updateColumns.join(' ')}\n }\n }\n }`;\n const object = omitBy(omit(this.converter.toHasura(data as any), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { object },\n }).then(result => {\n return this.converter.fromHasura(result.data[mutationName].returning[0]);\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n async createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]> {\n const mutationName = `insert_${this.tableName}`;\n const objects = data.map((item) => this.converter.toHasura(item as any))\n const mutation = gql`\n mutation createMany($objects: [${this.tableName}_insert_input!]!) {\n ${mutationName}(objects: $objects) {\n returning {\n ${this.updateColumns.join(\" \")}\n }\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { objects },\n }).then((result) =>\n this.converter.fromHasuraMany(result.data[mutationName].returning)\n ).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async update(data: Partial<E> & {id: string}) {\n const mutation = gql`mutation update($id: String!, $object: ${this.tableName}_set_input!) {\n update_${this.tableName}(where: {id: {_eq: $id}}, _set: $object) { affected_rows }\n }`;\n const fields = Object.keys(data).map(snakeCase);\n const object = omitBy(omit(pick(this.converter.toHasura(data as any), fields), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');\n const client = await lastValueFrom(this.hasura.getApolloClient());\n console.debug('[Hasura Repository] update:', object);\n return client.mutate({\n mutation,\n variables: {\n id: data.id,\n object,\n },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async updateMany(data: Partial<E>[]): Promise<number> {\n const mutationName = `update_${this.tableName}_many`;\n const objects = data.map((item) => {\n const fields = Object.keys(item).map(snakeCase);\n const object = pick(this.converter.toHasura(item as any), fields);\n return { where: { id: { _eq: item.id } }, _set: object };\n });\n \n const mutation = gql`\n mutation ${mutationName}($objects: [${this.tableName}_updates!]!) {\n ${mutationName}(updates: $objects) {\n affected_rows\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client\n .mutate({ mutation, variables: { objects } })\n .then((result) => result.data[mutationName].affected_rows)\n .catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async delete(id: string) {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: gql`mutation delete($id: String!) {\n delete_${this.tableName}(where: {id: {_eq: $id}}) { affected_rows }\n }`,\n variables: { id },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async save(data: Omit<E, 'createdAt' | 'updatedAt' | 'deletedAt'>) {\n const object = omit(this.converter.toHasura(data as any), ['createdAt', 'updatedAt']);\n const query = gql`mutation upsert($object: [${this.tableName}_insert_input!]!) {\n insert_${this.tableName}(\n objects: $object,\n on_conflict: {\n constraint: ${this.pkey},\n update_columns: [${this.updateColumns}]\n }\n ) { affected_rows }\n }`;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n console.debug('[Hasura Repository] save:', client);\n return client.mutate({\n mutation: query,\n variables: {\n object: object,\n },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async saveMany(entities: E[]) {\n const query = gql`mutation upsert($objects: [${this.tableName}_insert_input!]!) {\n insert_${this.tableName}(\n objects: $objects,\n on_conflict: {\n constraint: ${this.pkey},\n update_columns: [${this.updateColumns}]\n }\n ) { affected_rows }\n }`;\n const objects = entities.map(entity => this.converter.toHasura(entity));\n console.debug('[Hasura Repository] objects:', objects);\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: query,\n variables: { objects },\n }).catch(error => {\n console.error(error);\n // console.error(error.graphQLErrors?.[0]?.extensions?.internal);\n throw error;\n });\n }\n\n async deleteMany(params: {id: string}[]): Promise<number> {\n const mutationName = `delete_${this.tableName}`;\n const mutation = gql`\n mutation deleteMany($ids: [String!]!) {\n ${mutationName}(where: {id: {_in: $ids}}) {\n affected_rows\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { ids: params.map(param => param.id) },\n }).then((result) => result.data[mutationName].affected_rows).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async deleteAll() {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: gql`mutation delete_all {\n delete_${this.tableName} (where: {}) { affected_rows }\n }`,\n variables: {},\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["HttpLink","InMemoryCache"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-hasura.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/links.ts","../../../../../packages/@nx-ddd/hasura/src/lib/apollo-multi.service.ts","../../../../../packages/@nx-ddd/hasura/src/lib/decorators.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.converter.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.service.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.repository.ts","../../../../../packages/@nx-ddd/hasura/src/lib/nx-ddd-hasura.ts"],"sourcesContent":["import { WebSocketLink } from \"@apollo/client/link/ws\";\nimport { distinctUntilChanged, filter, firstValueFrom, from, isObservable, Observable, of, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nfunction wrap<T>(token: Promise<T> | Observable<T> | T): Observable<T> {\n return isObservable(token) ? token : token instanceof Promise ? from(token) : of(token);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return firstValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n distinctUntilChanged(),\n tap((headers) => console.debug('[resolve] headers:', headers)),\n ))\n}\n\nexport function buildWebsocketLink(endpoint: string, getHeaders: GetHeaders) {\n return new WebSocketLink({\n uri: endpoint.replace('http', 'ws'),\n options: {\n reconnect: true,\n connectionParams: () => resolve(getHeaders).then((headers) => ({ headers })),\n },\n });\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { Apollo, ApolloBase } from \"apollo-angular\";\nimport { HasuraConfig } from \"./hasura.config\";\nimport { HttpLink } from 'apollo-angular/http';\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloClient, ApolloLink, DocumentNode, split } from \"@apollo/client/core\";\nimport { getMainDefinition } from \"@apollo/client/utilities\";\nimport { makeDI } from \"@nx-ddd/core\";\nimport { Observable } from \"rxjs\";\nimport { buildWebsocketLink, GetHeaders, resolve } from \"./links\";\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloMultiService {\n readonly apollo = inject(Apollo);\n readonly httpLink = inject(HttpLink);\n\n protected createClient(name: string, baseUrl: string, getHeaders: GetHeaders) {\n const wsLink = buildWebsocketLink(baseUrl, getHeaders);\n const link = split(\n ({ query }) => isSubscription(query),\n wsLink,\n ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }),\n ])\n );\n\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, { link, cache: new InMemoryCache() });\n }\n\n getClient(endpoint: string, getHeaders: GetHeaders): ApolloBase {\n const name = endpoint;\n let client = this.apollo.use(name);\n console.debug('[ApolloMultiService] getClient:', name);\n if (!client) {\n this.createClient(name, endpoint, getHeaders);\n client = this.apollo.use(name);\n }\n return client;\n }\n}\n\n\nexport type GetApolloClient<E extends {id: string}> = (config: HasuraConfig) => ApolloClient<E> | Promise<ApolloClient<E>> | Observable<ApolloClient<E>>;\nexport const GET_APOLLO_CLIENT = makeDI<GetApolloClient<any>>('GET_APOLLO_CLIENT');","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\n\nconst {\n createDecorator,\n getAnnotations,\n} = makeDecoratorFactories(\n (type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }),\n '[@nx-ddd/hasura] annotations'\n);\n\nexport function getFlattenFieldAnnotations<Annotation>(T: any, prefix: string = ''): Record<string, Annotation> {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n if (annotation.childType) {\n return {\n ...acc,\n ...getFlattenFieldAnnotations(annotation.childType(), currentKey)\n };\n }\n return {\n ...acc,\n [currentKey]: annotation\n };\n }, {});\n}\n\nexport function getFields(T: any, options: {\n prefix?: string;\n case?: 'snake' | 'camel';\n} = {\n prefix: '',\n case: 'snake'\n}): string[] {\n const annotations = Hasura.getAnnotations(T);\n const changeCase = options?.case === 'snake' ? snakeCase : camelCase;\n const fields = (annotations ?? []).flatMap((annotation) => {\n const currentKey = changeCase(options?.prefix ? `${options?.prefix}_${annotation.fieldName}` : annotation.fieldName);\n if (annotation.childType) {\n return [\n ...getFields(annotation.childType(), {\n prefix: currentKey,\n case: options?.case,\n })\n ];\n }\n return [currentKey];\n });\n return fields;\n}\n\nexport const Hasura = {\n Text: createDecorator('text'),\n Timestamp: createDecorator('timestamp'),\n Date: createDecorator('date'),\n Integer: createDecorator('integer'),\n Numeric: createDecorator('numeric'),\n Boolean: createDecorator('boolean'),\n Map: (childType: () => any) => createDecorator('map', {childType})(),\n JSON: createDecorator('json'),\n getAnnotations,\n};\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\n\n@Injectable()\nexport class HasuraInterceptor implements HttpInterceptor {\n private config = inject(HASURA_CONFIG);\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (req.url.startsWith(this.config.url)) {\n return next.handle(req.clone({\n headers: req.headers.set('x-hasura-admin-secret', this.config.adminSecret),\n }));\n }\n return next.handle(req);\n }\n}","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { Provider } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\n\nexport interface HasuraConfig {\n adminSecret?: string;\n url: string;\n}\n\nexport const HASURA_CONFIG = new InjectionToken<HasuraConfig>('HASURA_CONFIG');\n\nexport function provideHasuraConfig(config: HasuraConfig): Provider[] {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true} : [],\n ];\n}\n","import { getFlattenFieldAnnotations } from './decorators';\nimport { get, isObject, mapKeys, mapValues, snakeCase } from 'lodash-es';\nimport { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { ClassConstructor } from 'class-transformer';\nimport dayjs from 'dayjs';\nimport { format } from 'date-fns';\n\nexport interface HasuraConverter<E> {\n toHasura(entity: E): object;\n toHasuraMany(entities: E[]): object[];\n fromHasura(entity: object): E;\n fromHasuraMany(entities: object[]): E[];\n}\n\nexport function deepCamelToSnakeCase(obj: any): any {\n if (Array.isArray(obj)) {\n return obj.map(deepCamelToSnakeCase);\n } else if (isObject(obj)) {\n return mapKeys(mapValues(obj, deepCamelToSnakeCase), (_, key) =>\n snakeCase(key)\n );\n }\n return obj;\n}\n\nexport function deepSnakeToCamelCase(obj: any): any {\n if (Array.isArray(obj)) {\n return obj.map(deepSnakeToCamelCase);\n } else if (isObject(obj)) {\n return mapKeys(mapValues(obj, deepSnakeToCamelCase), (_, key) =>\n key.replace(/_([a-z])/g, (g) => g[1].toUpperCase())\n );\n }\n return obj;\n}\n\nexport function fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T {\n return HasuraUtils.fromHasura(_object, type);\n}\n\nexport function toHasura(object: object, type: any, {\n extraFunc = deepCamelToSnakeCase\n}: {\n extraFunc?: (obj: any) => any;\n} = { }) {\n return HasuraUtils.toHasura(object, type, { extraFunc });\n}\n\nexport function getConverter<T extends object>(type: {new(): T}): HasuraConverter<T> {\n return {\n toHasura(entity: T) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities: T[]) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity: object) {\n return fromHasura(entity, type) as T;\n },\n fromHasuraMany(entities: object[]) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n }\n}\n\n/** @deprecated use `getConverter` instead */\nexport const makeConverter = getConverter;\n\nexport class HasuraUtils {\n static toTimestamp(date: dayjs.Dayjs | Date | null): string | null {\n if (dayjs.isDayjs(date)) {\n return date.toISOString();\n } else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n } else {\n return null;\n }\n }\n\n static toDate(date: dayjs.Dayjs | Date | string | null): string | null {\n if (dayjs.isDayjs(date)) {\n return format(date.toDate(), 'yyyy-MM-dd');\n } else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd');\n } else if (typeof date === 'string') {\n return date;\n } else {\n return null;\n }\n }\n\n static fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T {\n const object = deepSnakeToCamelCase(_object);\n return plainToInstanceWithValid(type, object);\n }\n \n static toHasura(object: object, type: any, {\n extraFunc = deepCamelToSnakeCase\n }: {\n extraFunc?: (obj: any) => any;\n } = { }) {\n const fields = getFlattenFieldAnnotations<{\n type: 'text' | 'timestamp' | 'date' | 'numeric' | 'integer' | 'json' | 'map';\n fieldName: string;\n childType?: () => any;\n }>(type);\n const obj = Object.entries(fields).reduce((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n switch (annotation.type) {\n case 'text': return { ...acc, [key]: value };\n case 'timestamp': return { ...acc, [key]: this.toTimestamp(value) };\n case 'date': return { ...acc, [key]: this.toDate(value) };\n case 'numeric': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };\n case 'integer': return { ...acc, [key]: isNaN(Number(value)) ? null : Number(value) };\n case 'json': return { ...acc, [key]: value };\n case 'map': return {...acc};\n default: return { ...acc, [key]: value };\n }\n }, {});\n return extraFunc(obj);\n }\n}\n","export { DeepPartial } from '@nx-ddd/common/domain';\nexport { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { EnvironmentProviders, InjectionToken, Provider, importProvidersFrom, inject } from '@angular/core';\nimport { ApolloLink, HttpLink, InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';\nimport { HASURA_CONFIG, HasuraConfig, provideHasuraConfig } from './hasura.config';\nimport { buildWebsocketLink, GetHeaders } from './links';\nimport { Observable } from 'rxjs';\n\nexport function provideHttpLink() {\n return {\n provide: ApolloLink,\n useFactory: (config: HasuraConfig) => new HttpLink({\n uri: config.url,\n headers: config?.adminSecret && { 'x-hasura-admin-secret': config.adminSecret },\n }),\n deps: [HASURA_CONFIG],\n };\n}\n\ntype HasuraAuthorization = Promise<string> | Observable<string> | string;\n\nconst HASURA_AUTHORIZATION = new InjectionToken<HasuraAuthorization>('HASURA_AUTHORIZATION');\n\nexport function provideHasuraAuthorization(useFactory: () => HasuraAuthorization) {\n return {\n provide: HASURA_AUTHORIZATION,\n useFactory,\n };\n}\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\n\nconst GRAPHQL_HEADERS = new InjectionToken<GetHeaders>('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\n\nexport function provideGraphqlHeaders(\n useFactory: () => () => PromiseOrObservable<Record<string, string>>,\n): Provider {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n\nexport function provideWebsocketLink() {\n return {\n provide: ApolloLink,\n useFactory: () => {\n const config = inject(HASURA_CONFIG);\n const _getHeaders = inject(GRAPHQL_HEADERS);\n return buildWebsocketLink(config.url, _getHeaders);\n },\n };\n}\n\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: (link: ApolloLink) => ({ cache: new InMemoryCache(), link }),\n deps: [ApolloLink],\n };\n}\n\nexport function provideHasura(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(ApolloModule),\n provideHasuraConfig(config),\n provideApolloOptions(),\n provideHttpLink(),\n ]\n}\n\nexport function provideHasuraWithWebSocket(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(ApolloModule),\n provideHasuraConfig(config),\n provideApolloOptions(),\n provideWebsocketLink(),\n ]\n}\n\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Apollo } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { ApolloClient } from \"@apollo/client/core\";\nimport { from, isObservable, Observable, of } from \"rxjs\";\nimport { ApolloMultiService, GET_APOLLO_CLIENT } from \"./apollo-multi.service\";\n\n\n@Injectable({providedIn: 'root'})\nexport class HasuraService {\n private http = inject(HttpClient);\n readonly apollo = inject(Apollo);\n readonly config = inject(HASURA_CONFIG);\n readonly apolloMulti = inject(ApolloMultiService);\n readonly _getApolloClient = GET_APOLLO_CLIENT.inject() ?? (() => this.apollo.client);\n\n getApolloClient(): Observable<ApolloClient<any>> {\n const clientOrObsOrPromise = this._getApolloClient(this.config);\n if (isObservable(clientOrObsOrPromise)) {\n return clientOrObsOrPromise;\n } else if (clientOrObsOrPromise instanceof Promise) {\n return from(clientOrObsOrPromise);\n } else {\n return of(clientOrObsOrPromise);\n }\n }\n\n graphql<T = any>(args: {query: string, variables?: object}) {\n return this.post<T>('/v1/graphql', {\n query: args.query,\n variables: args.variables,\n });\n }\n\n post<T>(endpoint: string, body: object) {\n return this.http.post<T>(`${this.config.url}${endpoint}`, body, {});\n }\n\n delete<T>(endpoint: string) {\n return this.http.delete<T>(`${this.config.url}${endpoint}`);\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { FetchResult, gql, OperationVariables } from \"@apollo/client/core\";\nimport { HasuraConverter } from \"./hasura.converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { omit, omitBy, pick, snakeCase } from \"lodash-es\";\nimport { lastValueFrom, map, Observable, switchMap, tap } from \"rxjs\";\n\nexport function makeSubscription(query: any) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition: any) => {\n if (definition.kind === 'OperationDefinition' && definition.operation === 'query') {\n return {\n ...definition,\n operation: 'subscription',\n };\n }\n return definition;\n });\n return { kind, definitions: subscriptionDefinitions };\n};\n\n@Injectable()\nexport abstract class HasuraRepository<E extends {id: string}> {\n protected hasura = inject(HasuraService);\n protected abstract converter: HasuraConverter<E>;\n readonly abstract updateColumns: string[];\n readonly abstract tableName: string;\n\n protected subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables\n >({query, variables}: {query: any, variables: any}): Observable<FetchResult<T>> {\n return this.hasura.getApolloClient().pipe(\n switchMap((client) => client.subscribe<T, TVariables>({\n query: makeSubscription(query),\n variables: variables,\n })),\n );\n }\n\n get pkey(): string {\n return `${this.tableName}_pkey`;\n }\n\n async get(params: {id: string}) {\n const queryName = `${this.tableName}_by_pk`;\n return lastValueFrom(this.hasura.getApolloClient()).then((client) => client.query({\n query: gql`query get($id: String!) {\n ${queryName}(id: $id) {\n ${this.updateColumns.join(' ')}\n }\n }`,\n variables: params,\n })).then((res => res.data[queryName])).then(data => data ? this.converter.fromHasura(data) : data);\n }\n\n get listQuery() {\n return `query list {\n ${this.tableName} {\n ${this.updateColumns.join(' ')}\n }\n }`;\n }\n\n async list(): Promise<E[]> {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.query({\n query: gql`${this.listQuery}`,\n }).then(res => this.converter.fromHasuraMany(res.data[this.tableName]));\n }\n\n listChanges(): Observable<E[]> {\n return this.subscribe({\n query: gql`${this.listQuery}`,\n variables: {},\n }).pipe(\n map(res => this.converter.fromHasuraMany(res.data[this.tableName])),\n );\n }\n\n async create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt'> & Partial<Pick<E, 'id'>>): Promise<E> {\n const mutationName = `insert_${this.tableName}`;\n const mutation = gql`mutation create($object: ${this.tableName}_insert_input!) {\n ${mutationName}(objects: [$object]) {\n affected_rows\n returning {\n ${this.updateColumns.join(' ')}\n }\n }\n }`;\n const object = omitBy(omit(this.converter.toHasura(data as any), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { object },\n }).then(result => {\n return this.converter.fromHasura(result.data[mutationName].returning[0]);\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n async createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]> {\n const mutationName = `insert_${this.tableName}`;\n const objects = data.map((item) => this.converter.toHasura(item as any))\n const mutation = gql`\n mutation createMany($objects: [${this.tableName}_insert_input!]!) {\n ${mutationName}(objects: $objects) {\n returning {\n ${this.updateColumns.join(\" \")}\n }\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { objects },\n }).then((result) =>\n this.converter.fromHasuraMany(result.data[mutationName].returning)\n ).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async update(data: Partial<E> & {id: string}) {\n const mutation = gql`mutation update($id: String!, $object: ${this.tableName}_set_input!) {\n update_${this.tableName}(where: {id: {_eq: $id}}, _set: $object) { affected_rows }\n }`;\n const fields = Object.keys(data).map(snakeCase);\n const object = omitBy(omit(pick(this.converter.toHasura(data as any), fields), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');\n const client = await lastValueFrom(this.hasura.getApolloClient());\n console.debug('[Hasura Repository] update:', object);\n return client.mutate({\n mutation,\n variables: {\n id: data.id,\n object,\n },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async updateMany(data: Partial<E>[]): Promise<number> {\n const mutationName = `update_${this.tableName}_many`;\n const objects = data.map((item) => {\n const fields = Object.keys(item).map(snakeCase);\n const object = pick(this.converter.toHasura(item as any), fields);\n return { where: { id: { _eq: item.id } }, _set: object };\n });\n \n const mutation = gql`\n mutation ${mutationName}($objects: [${this.tableName}_updates!]!) {\n ${mutationName}(updates: $objects) {\n affected_rows\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client\n .mutate({ mutation, variables: { objects } })\n .then((result) => result.data[mutationName].affected_rows)\n .catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async delete(id: string) {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: gql`mutation delete($id: String!) {\n delete_${this.tableName}(where: {id: {_eq: $id}}) { affected_rows }\n }`,\n variables: { id },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async save(data: Omit<E, 'createdAt' | 'updatedAt' | 'deletedAt'>) {\n const object = omit(this.converter.toHasura(data as any), ['createdAt', 'updatedAt']);\n const query = gql`mutation upsert($object: [${this.tableName}_insert_input!]!) {\n insert_${this.tableName}(\n objects: $object,\n on_conflict: {\n constraint: ${this.pkey},\n update_columns: [${this.updateColumns}]\n }\n ) { affected_rows }\n }`;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n console.debug('[Hasura Repository] save:', client);\n return client.mutate({\n mutation: query,\n variables: {\n object: object,\n },\n }).catch(error => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async saveMany(entities: E[]) {\n const query = gql`mutation upsert($objects: [${this.tableName}_insert_input!]!) {\n insert_${this.tableName}(\n objects: $objects,\n on_conflict: {\n constraint: ${this.pkey},\n update_columns: [${this.updateColumns}]\n }\n ) { affected_rows }\n }`;\n const objects = entities.map(entity => this.converter.toHasura(entity));\n console.debug('[Hasura Repository] objects:', objects);\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: query,\n variables: { objects },\n }).catch(error => {\n console.error(error);\n // console.error(error.graphQLErrors?.[0]?.extensions?.internal);\n throw error;\n });\n }\n\n async deleteMany(params: {id: string}[]): Promise<number> {\n const mutationName = `delete_${this.tableName}`;\n const mutation = gql`\n mutation deleteMany($ids: [String!]!) {\n ${mutationName}(where: {id: {_in: $ids}}) {\n affected_rows\n }\n }\n `;\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation,\n variables: { ids: params.map(param => param.id) },\n }).then((result) => result.data[mutationName].affected_rows).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n\n async deleteAll() {\n const client = await lastValueFrom(this.hasura.getApolloClient());\n return client.mutate({\n mutation: gql`mutation delete_all {\n delete_${this.tableName} (where: {}) { affected_rows }\n }`,\n variables: {},\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["HttpLink","InMemoryCache"],"mappings":"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"}
|
package/hasura.converter.d.ts
CHANGED
|
@@ -18,7 +18,8 @@ export declare function getConverter<T extends object>(type: {
|
|
|
18
18
|
/** @deprecated use `getConverter` instead */
|
|
19
19
|
export declare const makeConverter: typeof getConverter;
|
|
20
20
|
export declare class HasuraUtils {
|
|
21
|
-
static toTimestamp(date: dayjs.Dayjs | null): string | null;
|
|
21
|
+
static toTimestamp(date: dayjs.Dayjs | Date | null): string | null;
|
|
22
|
+
static toDate(date: dayjs.Dayjs | Date | string | null): string | null;
|
|
22
23
|
static fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T;
|
|
23
24
|
static toHasura(object: object, type: any, { extraFunc }?: {
|
|
24
25
|
extraFunc?: (obj: any) => any;
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-ddd/hasura",
|
|
3
|
-
"version": "19.0.0-preview.
|
|
3
|
+
"version": "19.0.0-preview.24",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@nx-ddd/core": "19.0.0-preview.
|
|
6
|
+
"@nx-ddd/core": "19.0.0-preview.24"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|