@nx-ddd/hasura 19.0.0-preview.21 → 19.0.0-preview.22

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.
@@ -169,7 +169,7 @@ function fromHasura(_object, type) {
169
169
  function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {
170
170
  return HasuraUtils.toHasura(object, type, { extraFunc });
171
171
  }
172
- function makeConverter(type) {
172
+ function getConverter(type) {
173
173
  return {
174
174
  toHasura(entity) {
175
175
  return toHasura(entity, type);
@@ -185,6 +185,8 @@ function makeConverter(type) {
185
185
  },
186
186
  };
187
187
  }
188
+ /** @deprecated use `getConverter` instead */
189
+ const makeConverter = getConverter;
188
190
  class HasuraUtils {
189
191
  static toTimestamp(date) {
190
192
  if (!dayjs.isDayjs(date))
@@ -546,5 +548,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
546
548
  * Generated bundle index. Do not edit.
547
549
  */
548
550
 
549
- export { ApolloMultiService, GET_APOLLO_CLIENT, HASURA_CONFIG, Hasura, HasuraInterceptor, HasuraRepository, HasuraService, HasuraUtils, deepCamelToSnakeCase, deepSnakeToCamelCase, fromHasura, getFields, getFlattenFieldAnnotations, makeConverter, makeSubscription, provideApolloOptions, provideGraphqlHeaders, provideHasura, provideHasuraAuthorization, provideHasuraConfig, provideHasuraWithWebSocket, provideHttpLink, provideWebsocketLink, toHasura };
551
+ export { ApolloMultiService, GET_APOLLO_CLIENT, HASURA_CONFIG, Hasura, HasuraInterceptor, HasuraRepository, HasuraService, HasuraUtils, deepCamelToSnakeCase, deepSnakeToCamelCase, fromHasura, getConverter, getFields, getFlattenFieldAnnotations, makeConverter, makeSubscription, provideApolloOptions, provideGraphqlHeaders, provideHasura, provideHasuraAuthorization, provideHasuraConfig, provideHasuraWithWebSocket, provideHttpLink, provideWebsocketLink, toHasura };
550
552
  //# sourceMappingURL=nx-ddd-hasura.mjs.map
@@ -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 makeConverter<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\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';\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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"}
@@ -12,9 +12,11 @@ export declare function fromHasura<T extends object>(_object: object, type: Clas
12
12
  export declare function toHasura(object: object, type: any, { extraFunc }?: {
13
13
  extraFunc?: (obj: any) => any;
14
14
  }): any;
15
- export declare function makeConverter<T extends object>(type: {
15
+ export declare function getConverter<T extends object>(type: {
16
16
  new (): T;
17
17
  }): HasuraConverter<T>;
18
+ /** @deprecated use `getConverter` instead */
19
+ export declare const makeConverter: typeof getConverter;
18
20
  export declare class HasuraUtils {
19
21
  static toTimestamp(date: dayjs.Dayjs | null): string | null;
20
22
  static fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T;
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@nx-ddd/hasura",
3
- "version": "19.0.0-preview.21",
3
+ "version": "19.0.0-preview.22",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
- "@nx-ddd/core": "19.0.0-preview.21"
6
+ "@nx-ddd/core": "19.0.0-preview.22"
7
7
  },
8
8
  "dependencies": {
9
9
  "tslib": "^2.3.0"