@meshmakers/octo-services 3.2.174-0 → 3.2.176-0
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.
- package/fesm2022/meshmakers-octo-services.mjs +134 -125
- package/fesm2022/meshmakers-octo-services.mjs.map +1 -1
- package/index.d.ts +13 -16
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@ import { map, finalize } from 'rxjs/operators';
|
|
|
2
2
|
import { PagedResultDto, MessageService, DataSourceBase } from '@meshmakers/shared-services';
|
|
3
3
|
import { InMemoryCache, ApolloLink } from '@apollo/client/core';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject,
|
|
6
|
-
import { ApolloError } from '@apollo/client/errors';
|
|
5
|
+
import { inject, Injector, Injectable, NgModule } from '@angular/core';
|
|
7
6
|
import { onError } from '@apollo/client/link/error';
|
|
7
|
+
import { CombinedGraphQLErrors } from '@apollo/client';
|
|
8
8
|
import { map as map$1 } from 'rxjs';
|
|
9
9
|
|
|
10
10
|
class PagedGraphResultDto extends PagedResultDto {
|
|
@@ -25,51 +25,92 @@ class OctoGraphQLServiceBase {
|
|
|
25
25
|
this.octoServiceOptions = octoServiceOptions;
|
|
26
26
|
}
|
|
27
27
|
getEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
28
|
+
if (watchQuery) {
|
|
29
|
+
const prepareWatchQuery = this.prepareWatchQuery(tenantId, variables, queryNode);
|
|
30
|
+
return prepareWatchQuery.pipe(map((result) => {
|
|
31
|
+
const resultSet = new PagedResultDto();
|
|
32
|
+
if (result.error != null) {
|
|
33
|
+
console.error(result.error);
|
|
34
|
+
throw Error('Error in GraphQL statement.');
|
|
35
|
+
}
|
|
36
|
+
else if (result.data) {
|
|
37
|
+
f(resultSet, result.data);
|
|
38
|
+
}
|
|
39
|
+
return resultSet;
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const prepareQuery = this.prepareQuery(tenantId, variables, queryNode);
|
|
44
|
+
return prepareQuery.pipe(map((result) => {
|
|
45
|
+
const resultSet = new PagedResultDto();
|
|
46
|
+
if (result.error != null) {
|
|
47
|
+
console.error(result.error);
|
|
48
|
+
throw Error('Error in GraphQL statement.');
|
|
49
|
+
}
|
|
50
|
+
else if (result.data) {
|
|
51
|
+
f(resultSet, result.data);
|
|
52
|
+
}
|
|
53
|
+
return resultSet;
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
42
56
|
}
|
|
43
57
|
getGraphEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
+
if (watchQuery) {
|
|
59
|
+
const prepareWatchQuery = this.prepareWatchQuery(tenantId, variables, queryNode);
|
|
60
|
+
return prepareWatchQuery.pipe(map((result) => {
|
|
61
|
+
const resultSet = new PagedGraphResultDto();
|
|
62
|
+
if (result.error != null) {
|
|
63
|
+
console.error(result.error);
|
|
64
|
+
throw Error('Error in GraphQL statement.');
|
|
65
|
+
}
|
|
66
|
+
else if (result.data) {
|
|
67
|
+
f(resultSet, result.data);
|
|
68
|
+
}
|
|
69
|
+
return resultSet;
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const prepareQuery = this.prepareQuery(tenantId, variables, queryNode);
|
|
74
|
+
return prepareQuery.pipe(map((result) => {
|
|
75
|
+
const resultSet = new PagedGraphResultDto();
|
|
76
|
+
if (result.error != null) {
|
|
77
|
+
console.error(result.error);
|
|
78
|
+
throw Error('Error in GraphQL statement.');
|
|
79
|
+
}
|
|
80
|
+
else if (result.data) {
|
|
81
|
+
f(resultSet, result.data);
|
|
82
|
+
}
|
|
83
|
+
return resultSet;
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
58
86
|
}
|
|
59
87
|
getEntityDetail(tenantId, variables, queryNode, watchQuery, f) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
88
|
+
if (watchQuery) {
|
|
89
|
+
const query = this.prepareWatchQuery(tenantId, variables, queryNode);
|
|
90
|
+
return query.pipe(map((result) => {
|
|
91
|
+
if (result.error != null) {
|
|
92
|
+
console.error(result.error);
|
|
93
|
+
throw Error('Error in GraphQL statement.');
|
|
94
|
+
}
|
|
95
|
+
else if (result.data) {
|
|
96
|
+
return f(result.data);
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const query = this.prepareQuery(tenantId, variables, queryNode);
|
|
103
|
+
return query.pipe(map((result) => {
|
|
104
|
+
if (result.error != null) {
|
|
105
|
+
console.error(result.error);
|
|
106
|
+
throw Error('Error in GraphQL statement.');
|
|
107
|
+
}
|
|
108
|
+
else if (result.data) {
|
|
109
|
+
return f(result.data);
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
73
114
|
}
|
|
74
115
|
createUpdateEntity(tenantId, variables, queryNode, f) {
|
|
75
116
|
this.createApolloForTenant(tenantId);
|
|
@@ -136,53 +177,6 @@ class OctoGraphQLServiceBase {
|
|
|
136
177
|
}
|
|
137
178
|
}
|
|
138
179
|
|
|
139
|
-
class OctoMessageService {
|
|
140
|
-
messageService = inject(MessageService);
|
|
141
|
-
showErrorWithDetails(error) {
|
|
142
|
-
if (error.constructor.name === ApolloError.prototype.constructor.name) {
|
|
143
|
-
console.info("is apollo error");
|
|
144
|
-
if (error.graphQLErrors) {
|
|
145
|
-
for (const graphQLError of error.graphQLErrors) {
|
|
146
|
-
const path = graphQLError.path?.join('.');
|
|
147
|
-
const message = `${path}: ${graphQLError.message}`;
|
|
148
|
-
this.messageService.showError(message, "Request because of GraphQL error failed");
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
else if (error.networkError) {
|
|
152
|
-
this.messageService.showError(error.networkError.message, "Request because of network error failed");
|
|
153
|
-
}
|
|
154
|
-
else if (error.clientErrors) {
|
|
155
|
-
let message = "";
|
|
156
|
-
for (const clientError of error.clientErrors) {
|
|
157
|
-
if (message.length > 0) {
|
|
158
|
-
message += "\n";
|
|
159
|
-
}
|
|
160
|
-
message += `${clientError.message}`;
|
|
161
|
-
}
|
|
162
|
-
this.messageService.showError(message, "Request because of client error failed");
|
|
163
|
-
}
|
|
164
|
-
else if (error.protocolErrors) {
|
|
165
|
-
let message = "";
|
|
166
|
-
for (const clientError of error.protocolErrors) {
|
|
167
|
-
if (message.length > 0) {
|
|
168
|
-
message += "\n";
|
|
169
|
-
}
|
|
170
|
-
message += `${clientError.message}`;
|
|
171
|
-
}
|
|
172
|
-
this.messageService.showError(message, "Request because of protocol error failed");
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
this.messageService.showErrorWithDetails(error);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
180
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoMessageService });
|
|
181
|
-
}
|
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoMessageService, decorators: [{
|
|
183
|
-
type: Injectable
|
|
184
|
-
}] });
|
|
185
|
-
|
|
186
180
|
class OctoServiceOptions {
|
|
187
181
|
assetServices;
|
|
188
182
|
defaultDataSourceId;
|
|
@@ -199,45 +193,61 @@ class OctoErrorLink extends ApolloLink {
|
|
|
199
193
|
super();
|
|
200
194
|
// There is currently no other way to inject a service into an Apollo Link,
|
|
201
195
|
// because Apollo deprecated without replacement
|
|
202
|
-
this.errorLink = onError(({
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
196
|
+
this.errorLink = onError(({ error, operation, forward }) => {
|
|
197
|
+
if (error) {
|
|
198
|
+
if (error instanceof CombinedGraphQLErrors) {
|
|
199
|
+
this.showError(error);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
this.showErrorLike(error);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return forward(operation);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
showErrorLike(error) {
|
|
209
|
+
const messageService = this.injector.get(MessageService);
|
|
210
|
+
const title = error.message;
|
|
211
|
+
const details = error.message;
|
|
212
|
+
console.error(error);
|
|
213
|
+
messageService.showError(details, title);
|
|
214
|
+
}
|
|
215
|
+
showError(combinedGraphQLErrors) {
|
|
216
|
+
const messageService = this.injector.get(MessageService);
|
|
217
|
+
let title = 'GraphQL error';
|
|
218
|
+
let details = '';
|
|
219
|
+
for (const error of combinedGraphQLErrors.errors) {
|
|
220
|
+
console.error(error);
|
|
221
|
+
if (title == 'GraphQL error') {
|
|
222
|
+
title = `${error.message}`;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
details += `======================`;
|
|
226
|
+
details += `${error.message}`;
|
|
227
|
+
}
|
|
228
|
+
if (error.extensions) {
|
|
229
|
+
// check for custom error properties, OctoDetails should be an array of MessageDetails
|
|
230
|
+
if (error.extensions['code']) {
|
|
231
|
+
details += `Global Result Code: ${error.extensions['code']}`;
|
|
232
|
+
}
|
|
233
|
+
if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {
|
|
234
|
+
// iterate over the details and add them to the message
|
|
235
|
+
for (const detail of error.extensions['OctoDetails']) {
|
|
236
|
+
if (detail.message) {
|
|
237
|
+
details += `\n\n✗ ${detail.message}`;
|
|
219
238
|
}
|
|
220
|
-
if (
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
details += `\n\n✗ ${detail.message}`;
|
|
225
|
-
}
|
|
226
|
-
if (detail.details && Array.isArray(detail.details)) {
|
|
227
|
-
for (const subDetail of detail.details) {
|
|
228
|
-
if (subDetail) {
|
|
229
|
-
details += `\n • ${subDetail}`;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
239
|
+
if (detail.details && Array.isArray(detail.details)) {
|
|
240
|
+
for (const subDetail of detail.details) {
|
|
241
|
+
if (subDetail) {
|
|
242
|
+
details += `\n • ${subDetail}`;
|
|
232
243
|
}
|
|
233
244
|
}
|
|
234
245
|
}
|
|
235
246
|
}
|
|
236
247
|
}
|
|
237
|
-
messageService.showError(details, title);
|
|
238
248
|
}
|
|
239
|
-
|
|
240
|
-
}
|
|
249
|
+
messageService.showError(details, title);
|
|
250
|
+
}
|
|
241
251
|
}
|
|
242
252
|
request(operation, forward) {
|
|
243
253
|
return this.errorLink.request(operation, forward);
|
|
@@ -258,7 +268,6 @@ class OctoServicesModule {
|
|
|
258
268
|
provide: OctoServiceOptions,
|
|
259
269
|
useValue: octoServiceOptions
|
|
260
270
|
},
|
|
261
|
-
OctoMessageService,
|
|
262
271
|
OctoErrorLink
|
|
263
272
|
]
|
|
264
273
|
};
|
|
@@ -340,7 +349,7 @@ class AssetRepoGraphQlDataSource extends GraphQlDataSource {
|
|
|
340
349
|
this.clear();
|
|
341
350
|
super.onBeginLoad();
|
|
342
351
|
const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
|
|
343
|
-
this.queryRef = this.query.watch(variables,
|
|
352
|
+
this.queryRef = this.query.watch({ variables, errorPolicy: 'all' });
|
|
344
353
|
this.subscription = this.queryRef.valueChanges
|
|
345
354
|
.pipe(map$1((v, i) => this.executeLoad(v, i)))
|
|
346
355
|
.subscribe({
|
|
@@ -400,5 +409,5 @@ var SortOrdersDto;
|
|
|
400
409
|
* Generated bundle index. Do not edit.
|
|
401
410
|
*/
|
|
402
411
|
|
|
403
|
-
export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase,
|
|
412
|
+
export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
|
|
404
413
|
//# sourceMappingURL=meshmakers-octo-services.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meshmakers-octo-services.mjs","sources":["../../../../projects/meshmakers/octo-services/src/lib/models/pagedGraphResultDto.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-graph-ql-service-base.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-message.service.ts","../../../../projects/meshmakers/octo-services/src/lib/options/octo-service-options.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/octo-error-link.ts","../../../../projects/meshmakers/octo-services/src/lib/octo-services.module.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/graphQL.ts","../../../../projects/meshmakers/octo-services/src/lib/services/assetRepoGraphQlDataSource.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/globalTypes.ts","../../../../projects/meshmakers/octo-services/src/public-api.ts","../../../../projects/meshmakers/octo-services/src/meshmakers-octo-services.ts"],"sourcesContent":["import { PagedResultDto } from '@meshmakers/shared-services';\n\nexport class PagedGraphResultDto<P, C> extends PagedResultDto<C> {\n document: P | null;\n\n constructor() {\n super();\n\n this.document = null;\n }\n}\n","import { DocumentNode } from 'graphql';\nimport { finalize, map } from 'rxjs/operators';\nimport { Apollo } from 'apollo-angular';\nimport { OctoServiceOptions } from '../options/octo-service-options';\nimport { PagedGraphResultDto } from '../models/pagedGraphResultDto';\nimport { PagedResultDto } from '@meshmakers/shared-services';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ApolloQueryResult, InMemoryCache } from '@apollo/client/core';\nimport { OperationVariables } from '@apollo/client/core/types';\nimport { Observable } from 'rxjs';\n\nexport class OctoGraphQLServiceBase {\n constructor(\n private readonly apollo: Apollo,\n private readonly httpLink: HttpLink,\n private readonly octoServiceOptions: OctoServiceOptions\n ) {}\n\n protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedResultDto<TEntity>, result: TResult) => void\n ): Observable<PagedResultDto<TEntity>> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n\n protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedGraphResultDto<TP, TC>, result: TResult) => void\n ): Observable<PagedGraphResultDto<TP, TC>> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n\n protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (result: TResult) => TEntity\n ): Observable<TEntity | null> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }\n\n protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => TEntity\n ): Observable<TEntity> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n protected deleteEntity<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => boolean\n ): Observable<boolean> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n private createApolloForTenant(tenantId: string): void {\n const result = this.apollo.use(tenantId);\n if (result) {\n return;\n }\n\n const service = this.octoServiceOptions.assetServices ?? '';\n const uri = `${service}tenants/${tenantId}/GraphQL`;\n\n this.apollo.createNamed(tenantId, {\n link: this.httpLink.create({ uri }),\n cache: new InMemoryCache({\n dataIdFromObject: (o) => (o['rtId'] as string)\n })\n });\n }\n\n private prepareWatchQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ApolloQueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).watchQuery<TResult>({\n query: queryNode,\n variables\n }).valueChanges;\n }\n\n private prepareQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ApolloQueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).query<TResult>({\n query: queryNode,\n variables,\n fetchPolicy: 'network-only'\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MessageService } from \"@meshmakers/shared-services\";\nimport { ApolloError } from \"@apollo/client/errors\";\n\n@Injectable()\nexport class OctoMessageService{\n private readonly messageService = inject(MessageService);\n\n\n showErrorWithDetails(error: any): void {\n if (error.constructor.name === ApolloError.prototype.constructor.name)\n {\n console.info(\"is apollo error\");\n\n if (error.graphQLErrors) {\n for (const graphQLError of error.graphQLErrors) {\n const path = graphQLError.path?.join('.');\n const message = `${path}: ${graphQLError.message}`;\n this.messageService.showError(message, \"Request because of GraphQL error failed\");\n }\n }\n else if (error.networkError) {\n this.messageService.showError(error.networkError.message, \"Request because of network error failed\");\n }\n else if (error.clientErrors) {\n let message = \"\";\n for (const clientError of error.clientErrors) {\n if (message.length > 0) {\n message += \"\\n\";\n }\n message += `${clientError.message}`;\n }\n this.messageService.showError(message, \"Request because of client error failed\");\n }\n else if (error.protocolErrors) {\n let message = \"\";\n for (const clientError of error.protocolErrors) {\n if (message.length > 0) {\n message += \"\\n\";\n }\n message += `${clientError.message}`;\n }\n this.messageService.showError(message, \"Request because of protocol error failed\");\n }\n else {\n this.messageService.showErrorWithDetails(error);\n }\n }\n }\n\n}\n","export class OctoServiceOptions {\n assetServices: string | null;\n defaultDataSourceId?: string;\n\n constructor() {\n this.assetServices = null;\n this.defaultDataSourceId = undefined;\n }\n}\n","import {onError} from '@apollo/client/link/error';\nimport { inject, Injectable, Injector } from \"@angular/core\";\nimport {MessageService} from \"@meshmakers/shared-services\";\nimport {ApolloLink} from '@apollo/client/core';\n\n@Injectable()\nexport class OctoErrorLink extends ApolloLink {\n private errorLink: ApolloLink;\n private readonly injector: Injector = inject(Injector);\n\n constructor() {\n super();\n\n // There is currently no other way to inject a service into an Apollo Link,\n // because Apollo deprecated without replacement\n this.errorLink = onError(({graphQLErrors, operation, forward}) => {\n const messageService = this.injector.get(MessageService);\n\n if (graphQLErrors) {\n\n let title = 'GraphQL error';\n let details = '';\n for (const error of graphQLErrors) {\n if (title == 'GraphQL error') {\n title = `${error.message}`;\n } else {\n details += `======================`;\n details += `${error.message}`;\n }\n\n if (error.extensions) {\n // check for custom error properties, OctoDetails should be an array of MessageDetails\n if (error.extensions['code']) {\n details += `Global Result Code: ${error.extensions['code']}`;\n }\n\n if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {\n\n // iterate over the details and add them to the message\n for (const detail of error.extensions['OctoDetails']) {\n if (detail.message) {\n details += `\\n\\n✗ ${detail.message}`;\n }\n\n if (detail.details && Array.isArray(detail.details)) {\n for (const subDetail of detail.details) {\n if (subDetail) {\n details += `\\n • ${subDetail}`;\n }\n }\n }\n }\n\n }\n }\n }\n\n messageService.showError(details, title);\n }\n\n return forward(operation);\n });\n }\n\n override request(operation: any, forward: any) {\n return this.errorLink.request(operation, forward);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { OctoServiceOptions } from './options/octo-service-options';\nimport { OctoMessageService } from \"./services/octo-message.service\";\nimport { OctoErrorLink } from \"./shared/octo-error-link\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class OctoServicesModule {\n static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule> {\n return {\n ngModule: OctoServicesModule,\n providers: [\n {\n provide: OctoServiceOptions,\n useValue: octoServiceOptions\n },\n OctoMessageService,\n OctoErrorLink\n ]\n };\n }\n}\n","export class GraphQL {\n public static getCursor(position: number): string {\n return btoa(`arrayconnection:${position}`);\n }\n\n public static offsetToCursor(offset: number): string | null {\n if (!offset) {\n return null;\n }\n\n return this.getCursor(offset - 1);\n }\n}\n\nexport const GraphQLCommonIgnoredProperties = ['__typename'];\nexport const GraphQLCloneIgnoredProperties = ['id', 'rtId', 'ckTypeId', '__typename'];\n","import { map, Subscription } from 'rxjs';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, InputMaybe, SearchFilterDto, SortDto } from '../shared/globalTypes';\nimport { Query, QueryRef } from 'apollo-angular';\nimport type { ApolloQueryResult, OperationVariables } from '@apollo/client/core';\nimport { GraphQL } from \"../shared/graphQL\";\n\nexport interface IQueryVariablesDto extends OperationVariables {\n first?: number | null | undefined;\n after?: string | null | undefined;\n sort?: InputMaybe<InputMaybe<SortDto> | InputMaybe<SortDto>[]> | undefined;\n searchFilter?: InputMaybe<SearchFilterDto> | undefined;\n fieldFilters?: InputMaybe<InputMaybe<FieldFilterDto>[] | InputMaybe<FieldFilterDto>>;\n}\n\nexport abstract class GraphQlDataSource<TDto> extends DataSourceBase<TDto> {\n public abstract refetch(): Promise<void>;\n\n public abstract refetchWith(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): Promise<void>;\n\n public abstract loadData(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): void;\n}\n\nexport class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends IQueryVariablesDto> extends GraphQlDataSource<TDto> {\n private queryRef: QueryRef<TQueryDto, TVariablesDto> | null;\n private subscription: Subscription | null;\n\n constructor(\n protected messageService: MessageService,\n private readonly query: Query<TQueryDto, TVariablesDto>,\n private readonly defaultSort: SortDto[] | null = null\n ) {\n super();\n this.queryRef = null;\n this.subscription = null;\n }\n\n override clear(): void {\n super.clear();\n this.queryRef?.stopPolling();\n this.queryRef = null;\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n public async refetch(): Promise<void> {\n await this.queryRef?.refetch();\n }\n\n public async refetchWith(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Promise<void> {\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n await this.queryRef?.refetch(variables);\n }\n\n protected createVariables(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): TVariablesDto {\n // Default sort\n if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {\n sort = new Array<SortDto>();\n if (this.defaultSort) {\n sort = this.defaultSort;\n }\n }\n\n return {\n first: take,\n after: GraphQL.offsetToCursor(skip),\n sort,\n searchFilter,\n fieldFilters: fieldFilter\n } as TVariablesDto;\n }\n\n public loadData(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n this.clear();\n super.onBeginLoad();\n\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n this.queryRef = this.query.watch(variables, { errorPolicy: 'all' });\n\n this.subscription = this.queryRef.valueChanges\n .pipe(\n map((v, i) => this.executeLoad(v, i)))\n .subscribe({\n next: (pagedResult) => super.onCompleteLoad(pagedResult),\n error: (e) => {\n this.messageService.showErrorWithDetails(e);\n super.onCompleteLoad(new PagedResultDto<TDto>());\n }\n });\n }\n\n protected executeLoad(_value: ApolloQueryResult<TQueryDto>, _index: number): PagedResultDto<TDto> {\n return new PagedResultDto<TDto>();\n }\n}\n","/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\n\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: any; output: any; }\n CkAttributeId: { input: string; output: string; }\n CkEnumId: { input: string; output: string; }\n CkModelId: { input: any; output: any; }\n CkRecordId: { input: string; output: string; }\n CkTypeId: { input: string; output: string; }\n DateTime: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n LargeBinary: { input: any; output: any; }\n OctoObjectId: { input: string; output: string; }\n Seconds: { input: any; output: any; }\n SimpleScalar: { input: any; output: any; }\n ULong: { input: any; output: any; }\n Uri: { input: any; output: any; }\n};\n\nexport type FieldFilterDto = {\n attributePath: Scalars['String']['input'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalar']['input']>;\n operator: FieldFilterOperatorsDto;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\n AnyEqDto = 'ANY_EQ',\n AnyLikeDto = 'ANY_LIKE',\n EqualsDto = 'EQUALS',\n GreaterEqualThanDto = 'GREATER_EQUAL_THAN',\n GreaterThanDto = 'GREATER_THAN',\n InDto = 'IN',\n LessEqualThanDto = 'LESS_EQUAL_THAN',\n LessThanDto = 'LESS_THAN',\n LikeDto = 'LIKE',\n MatchRegExDto = 'MATCH_REG_EX',\n NotEqualsDto = 'NOT_EQUALS',\n NotInDto = 'NOT_IN'\n}\n\n\nexport type SearchFilterDto = {\n attributePaths?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n searchTerm: Scalars['String']['input'];\n type?: InputMaybe<SearchFilterTypesDto>;\n};\n\n/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */\nexport enum SearchFilterTypesDto {\n AttributeFilterDto = 'ATTRIBUTE_FILTER',\n TextSearchDto = 'TEXT_SEARCH'\n}\n\nexport type SortDto = {\n attributePath: Scalars['String']['input'];\n sortOrder?: InputMaybe<SortOrdersDto>;\n};\n\n/** Defines the sort order */\nexport enum SortOrdersDto {\n AscendingDto = 'ASCENDING',\n DefaultDto = 'DEFAULT',\n DescendingDto = 'DESCENDING'\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/*\n * Public API Surface of octo-services\n */\n\nexport * from './lib/services/octo-graph-ql-service-base';\nexport * from './lib/services/octo-message.service';\nexport * from './lib/options/octo-service-options';\nexport * from './lib/octo-services.module';\nexport * from './lib/models/pagedGraphResultDto';\nexport * from './lib/shared/graphQL';\nexport * from './lib/services/assetRepoGraphQlDataSource';\nexport * from './lib/shared/globalTypes';\nexport * from './lib/shared/octo-error-link';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meshmakers-octo-services.mjs","sources":["../../../../projects/meshmakers/octo-services/src/lib/models/pagedGraphResultDto.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-graph-ql-service-base.ts","../../../../projects/meshmakers/octo-services/src/lib/options/octo-service-options.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/octo-error-link.ts","../../../../projects/meshmakers/octo-services/src/lib/octo-services.module.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/graphQL.ts","../../../../projects/meshmakers/octo-services/src/lib/services/assetRepoGraphQlDataSource.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/globalTypes.ts","../../../../projects/meshmakers/octo-services/src/public-api.ts","../../../../projects/meshmakers/octo-services/src/meshmakers-octo-services.ts"],"sourcesContent":["import { PagedResultDto } from '@meshmakers/shared-services';\n\nexport class PagedGraphResultDto<P, C> extends PagedResultDto<C> {\n document: P | null;\n\n constructor() {\n super();\n\n this.document = null;\n }\n}\n","import { DocumentNode } from 'graphql';\nimport { finalize, map } from 'rxjs/operators';\nimport { Apollo } from 'apollo-angular';\nimport { OctoServiceOptions } from '../options/octo-service-options';\nimport { PagedGraphResultDto } from '../models/pagedGraphResultDto';\nimport { PagedResultDto } from '@meshmakers/shared-services';\nimport { HttpLink } from 'apollo-angular/http';\nimport { InMemoryCache } from '@apollo/client/core';\nimport { OperationVariables } from '@apollo/client/core/types';\nimport { Observable } from 'rxjs';\nimport { DeepPartial } from \"@apollo/client/utilities\";\nimport QueryResult = Apollo.QueryResult;\nimport type { ObservableQuery } from \"@apollo/client\";\n\nexport class OctoGraphQLServiceBase {\n constructor(\n private readonly apollo: Apollo,\n private readonly httpLink: HttpLink,\n private readonly octoServiceOptions: OctoServiceOptions\n ) {}\n\n protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedResultDto<TEntity>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void\n ): Observable<PagedResultDto<TEntity>> {\n\n if (watchQuery){\n const prepareWatchQuery = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareWatchQuery.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n } else {\n const prepareQuery = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareQuery.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n }\n\n protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedGraphResultDto<TP, TC>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void\n ): Observable<PagedGraphResultDto<TP, TC>> {\n\n if (watchQuery){\n const prepareWatchQuery = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareWatchQuery.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n } else{\n const prepareQuery = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareQuery.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n }\n\n protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => TEntity\n ): Observable<TEntity | null> {\n\n\n if (watchQuery){\n const query = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }else {\n const query = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }\n }\n\n protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => TEntity\n ): Observable<TEntity> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n protected deleteEntity<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => boolean\n ): Observable<boolean> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n private createApolloForTenant(tenantId: string): void {\n const result = this.apollo.use(tenantId);\n if (result) {\n return;\n }\n\n const service = this.octoServiceOptions.assetServices ?? '';\n const uri = `${service}tenants/${tenantId}/GraphQL`;\n\n this.apollo.createNamed(tenantId, {\n link: this.httpLink.create({ uri }),\n cache: new InMemoryCache({\n dataIdFromObject: (o) => (o['rtId'] as string)\n })\n });\n }\n\n private prepareWatchQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ObservableQuery.Result<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).watchQuery<TResult>({\n query: queryNode,\n variables\n }).valueChanges;\n }\n\n private prepareQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<QueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).query<TResult>({\n query: queryNode,\n variables,\n fetchPolicy: 'network-only'\n });\n }\n}\n","export class OctoServiceOptions {\n assetServices: string | null;\n defaultDataSourceId?: string;\n\n constructor() {\n this.assetServices = null;\n this.defaultDataSourceId = undefined;\n }\n}\n","import {onError} from '@apollo/client/link/error';\nimport { inject, Injectable, Injector } from \"@angular/core\";\nimport {MessageService} from \"@meshmakers/shared-services\";\nimport {ApolloLink} from '@apollo/client/core';\nimport { CombinedGraphQLErrors, ErrorLike } from \"@apollo/client\";\n\n@Injectable()\nexport class OctoErrorLink extends ApolloLink {\n private errorLink: ApolloLink;\n private readonly injector: Injector = inject(Injector);\n\n constructor() {\n super();\n\n // There is currently no other way to inject a service into an Apollo Link,\n // because Apollo deprecated without replacement\n this.errorLink = onError(({error, operation, forward}) => {\n\n if (error) {\n\n if (error instanceof CombinedGraphQLErrors) {\n this.showError(error);\n } else {\n this.showErrorLike(error);\n }\n }\n\n return forward(operation);\n });\n }\n\n private showErrorLike(error: ErrorLike): void {\n const messageService = this.injector.get(MessageService);\n\n const title = error.message;\n const details = error.message\n\n console.error(error);\n\n messageService.showError(details, title);\n }\n\n private showError(combinedGraphQLErrors: CombinedGraphQLErrors): void{\n const messageService = this.injector.get(MessageService);\n\n let title = 'GraphQL error';\n let details = '';\n for (const error of combinedGraphQLErrors.errors) {\n\n console.error(error);\n\n if (title == 'GraphQL error') {\n title = `${error.message}`;\n } else {\n details += `======================`;\n details += `${error.message}`;\n }\n\n if (error.extensions) {\n // check for custom error properties, OctoDetails should be an array of MessageDetails\n if (error.extensions['code']) {\n details += `Global Result Code: ${error.extensions['code']}`;\n }\n\n if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {\n\n // iterate over the details and add them to the message\n for (const detail of error.extensions['OctoDetails']) {\n if (detail.message) {\n details += `\\n\\n✗ ${detail.message}`;\n }\n\n if (detail.details && Array.isArray(detail.details)) {\n for (const subDetail of detail.details) {\n if (subDetail) {\n details += `\\n • ${subDetail}`;\n }\n }\n }\n }\n }\n }\n messageService.showError(details, title);\n }\n\n }\n\n override request(operation: any, forward: any) {\n return this.errorLink.request(operation, forward);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { OctoServiceOptions } from './options/octo-service-options';\nimport { OctoErrorLink } from \"./shared/octo-error-link\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class OctoServicesModule {\n static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule> {\n return {\n ngModule: OctoServicesModule,\n providers: [\n {\n provide: OctoServiceOptions,\n useValue: octoServiceOptions\n },\n OctoErrorLink\n ]\n };\n }\n}\n","export class GraphQL {\n public static getCursor(position: number): string {\n return btoa(`arrayconnection:${position}`);\n }\n\n public static offsetToCursor(offset: number): string | null {\n if (!offset) {\n return null;\n }\n\n return this.getCursor(offset - 1);\n }\n}\n\nexport const GraphQLCommonIgnoredProperties = ['__typename'];\nexport const GraphQLCloneIgnoredProperties = ['id', 'rtId', 'ckTypeId', '__typename'];\n","import { map, Subscription } from 'rxjs';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, InputMaybe, SearchFilterDto, SortDto } from '../shared/globalTypes';\nimport { Query, QueryRef } from 'apollo-angular';\nimport type { OperationVariables } from '@apollo/client/core';\nimport { GraphQL } from \"../shared/graphQL\";\nimport type { ObservableQuery } from \"@apollo/client\";\n\nexport interface IQueryVariablesDto extends OperationVariables {\n first?: number | null | undefined;\n after?: string | null | undefined;\n sort?: InputMaybe<InputMaybe<SortDto> | InputMaybe<SortDto>[]> | undefined;\n searchFilter?: InputMaybe<SearchFilterDto> | undefined;\n fieldFilters?: InputMaybe<InputMaybe<FieldFilterDto>[] | InputMaybe<FieldFilterDto>>;\n}\n\nexport abstract class GraphQlDataSource<TDto> extends DataSourceBase<TDto> {\n public abstract refetch(): Promise<void>;\n\n public abstract refetchWith(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): Promise<void>;\n\n public abstract loadData(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): void;\n}\n\nexport class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends IQueryVariablesDto> extends GraphQlDataSource<TDto> {\n private queryRef: QueryRef<TQueryDto, TVariablesDto> | null;\n private subscription: Subscription | null;\n\n constructor(\n protected messageService: MessageService,\n private readonly query: Query<TQueryDto, TVariablesDto>,\n private readonly defaultSort: SortDto[] | null = null\n ) {\n super();\n this.queryRef = null;\n this.subscription = null;\n }\n\n override clear(): void {\n super.clear();\n this.queryRef?.stopPolling();\n this.queryRef = null;\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n public async refetch(): Promise<void> {\n await this.queryRef?.refetch();\n }\n\n public async refetchWith(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Promise<void> {\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n await this.queryRef?.refetch(variables);\n }\n\n protected createVariables(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): TVariablesDto {\n // Default sort\n if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {\n sort = new Array<SortDto>();\n if (this.defaultSort) {\n sort = this.defaultSort;\n }\n }\n\n return {\n first: take,\n after: GraphQL.offsetToCursor(skip),\n sort,\n searchFilter,\n fieldFilters: fieldFilter\n } as TVariablesDto;\n }\n\n public loadData(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n this.clear();\n super.onBeginLoad();\n\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n this.queryRef = this.query.watch({ variables, errorPolicy: 'all' } as Query.WatchOptions<TQueryDto, TVariablesDto>);\n\n this.subscription = this.queryRef.valueChanges\n .pipe(\n map((v, i) => this.executeLoad(v, i)))\n .subscribe({\n next: (pagedResult) => super.onCompleteLoad(pagedResult),\n error: (e) => {\n this.messageService.showErrorWithDetails(e);\n super.onCompleteLoad(new PagedResultDto<TDto>());\n }\n });\n }\n\n protected executeLoad(_value: ObservableQuery.Result<TQueryDto>, _index: number): PagedResultDto<TDto> {\n return new PagedResultDto<TDto>();\n }\n}\n","/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\n\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: any; output: any; }\n CkAttributeId: { input: string; output: string; }\n CkEnumId: { input: string; output: string; }\n CkModelId: { input: any; output: any; }\n CkRecordId: { input: string; output: string; }\n CkTypeId: { input: string; output: string; }\n DateTime: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n LargeBinary: { input: any; output: any; }\n OctoObjectId: { input: string; output: string; }\n Seconds: { input: any; output: any; }\n SimpleScalar: { input: any; output: any; }\n ULong: { input: any; output: any; }\n Uri: { input: any; output: any; }\n};\n\nexport type FieldFilterDto = {\n attributePath: Scalars['String']['input'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalar']['input']>;\n operator: FieldFilterOperatorsDto;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\n AnyEqDto = 'ANY_EQ',\n AnyLikeDto = 'ANY_LIKE',\n EqualsDto = 'EQUALS',\n GreaterEqualThanDto = 'GREATER_EQUAL_THAN',\n GreaterThanDto = 'GREATER_THAN',\n InDto = 'IN',\n LessEqualThanDto = 'LESS_EQUAL_THAN',\n LessThanDto = 'LESS_THAN',\n LikeDto = 'LIKE',\n MatchRegExDto = 'MATCH_REG_EX',\n NotEqualsDto = 'NOT_EQUALS',\n NotInDto = 'NOT_IN'\n}\n\n\nexport type SearchFilterDto = {\n attributePaths?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n searchTerm: Scalars['String']['input'];\n type?: InputMaybe<SearchFilterTypesDto>;\n};\n\n/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */\nexport enum SearchFilterTypesDto {\n AttributeFilterDto = 'ATTRIBUTE_FILTER',\n TextSearchDto = 'TEXT_SEARCH'\n}\n\nexport type SortDto = {\n attributePath: Scalars['String']['input'];\n sortOrder?: InputMaybe<SortOrdersDto>;\n};\n\n/** Defines the sort order */\nexport enum SortOrdersDto {\n AscendingDto = 'ASCENDING',\n DefaultDto = 'DEFAULT',\n DescendingDto = 'DESCENDING'\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/*\n * Public API Surface of octo-services\n */\n\nexport * from './lib/services/octo-graph-ql-service-base';\nexport * from './lib/options/octo-service-options';\nexport * from './lib/octo-services.module';\nexport * from './lib/models/pagedGraphResultDto';\nexport * from './lib/shared/graphQL';\nexport * from './lib/services/assetRepoGraphQlDataSource';\nexport * from './lib/shared/globalTypes';\nexport * from './lib/shared/octo-error-link';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import * as graphql from 'graphql';
|
|
1
2
|
import { DocumentNode } from 'graphql';
|
|
2
3
|
import { Apollo, Query } from 'apollo-angular';
|
|
3
4
|
import { PagedResultDto, DataSourceBase, MessageService } from '@meshmakers/shared-services';
|
|
4
5
|
import { HttpLink } from 'apollo-angular/http';
|
|
5
6
|
import { OperationVariables } from '@apollo/client/core/types';
|
|
6
7
|
import { Observable } from 'rxjs';
|
|
8
|
+
import { DeepPartial } from '@apollo/client/utilities';
|
|
7
9
|
import * as i0 from '@angular/core';
|
|
8
10
|
import { ModuleWithProviders } from '@angular/core';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
11
|
+
import { OperationVariables as OperationVariables$1, ApolloLink } from '@apollo/client/core';
|
|
12
|
+
import * as _apollo_client from '@apollo/client';
|
|
13
|
+
import { ObservableQuery } from '@apollo/client';
|
|
12
14
|
|
|
13
15
|
declare class OctoServiceOptions {
|
|
14
16
|
assetServices: string | null;
|
|
@@ -26,9 +28,9 @@ declare class OctoGraphQLServiceBase {
|
|
|
26
28
|
private readonly httpLink;
|
|
27
29
|
private readonly octoServiceOptions;
|
|
28
30
|
constructor(apollo: Apollo, httpLink: HttpLink, octoServiceOptions: OctoServiceOptions);
|
|
29
|
-
protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedResultDto<TEntity>, result: TResult) => void): Observable<PagedResultDto<TEntity>>;
|
|
30
|
-
protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedGraphResultDto<TP, TC>, result: TResult) => void): Observable<PagedGraphResultDto<TP, TC>>;
|
|
31
|
-
protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (result: TResult) => TEntity): Observable<TEntity | null>;
|
|
31
|
+
protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedResultDto<TEntity>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void): Observable<PagedResultDto<TEntity>>;
|
|
32
|
+
protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedGraphResultDto<TP, TC>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void): Observable<PagedGraphResultDto<TP, TC>>;
|
|
33
|
+
protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => TEntity): Observable<TEntity | null>;
|
|
32
34
|
protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, f: (result: TResult | null | undefined) => TEntity): Observable<TEntity>;
|
|
33
35
|
protected deleteEntity<TResult, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, f: (result: TResult | null | undefined) => boolean): Observable<boolean>;
|
|
34
36
|
private createApolloForTenant;
|
|
@@ -36,13 +38,6 @@ declare class OctoGraphQLServiceBase {
|
|
|
36
38
|
private prepareQuery;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
declare class OctoMessageService {
|
|
40
|
-
private readonly messageService;
|
|
41
|
-
showErrorWithDetails(error: any): void;
|
|
42
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OctoMessageService, never>;
|
|
43
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<OctoMessageService>;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
41
|
declare class OctoServicesModule {
|
|
47
42
|
static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule>;
|
|
48
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<OctoServicesModule, never>;
|
|
@@ -204,17 +199,19 @@ declare class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends
|
|
|
204
199
|
refetchWith(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): Promise<void>;
|
|
205
200
|
protected createVariables(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): TVariablesDto;
|
|
206
201
|
loadData(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): void;
|
|
207
|
-
protected executeLoad(_value:
|
|
202
|
+
protected executeLoad(_value: ObservableQuery.Result<TQueryDto>, _index: number): PagedResultDto<TDto>;
|
|
208
203
|
}
|
|
209
204
|
|
|
210
205
|
declare class OctoErrorLink extends ApolloLink {
|
|
211
206
|
private errorLink;
|
|
212
207
|
private readonly injector;
|
|
213
208
|
constructor();
|
|
214
|
-
|
|
209
|
+
private showErrorLike;
|
|
210
|
+
private showError;
|
|
211
|
+
request(operation: any, forward: any): _apollo_client.Observable<graphql.FormattedExecutionResult<Record<string, any>, Record<string, any>>>;
|
|
215
212
|
static ɵfac: i0.ɵɵFactoryDeclaration<OctoErrorLink, never>;
|
|
216
213
|
static ɵprov: i0.ɵɵInjectableDeclaration<OctoErrorLink>;
|
|
217
214
|
}
|
|
218
215
|
|
|
219
|
-
export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase,
|
|
216
|
+
export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
|
|
220
217
|
export type { FieldFilterDto, IQueryVariablesDto, InputMaybe, Maybe, Scalars, SearchFilterDto, SortDto };
|