@nx-ddd/hasura 19.0.0-preview.8 → 19.1.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/apollo/link/index.d.ts +31 -0
- package/browser/index.d.ts +8 -0
- package/fesm2022/nx-ddd-hasura-apollo-link.mjs +77 -0
- package/fesm2022/nx-ddd-hasura-apollo-link.mjs.map +1 -0
- package/fesm2022/nx-ddd-hasura-browser.mjs +19 -0
- package/fesm2022/nx-ddd-hasura-browser.mjs.map +1 -0
- package/fesm2022/nx-ddd-hasura-server.mjs +19 -0
- package/fesm2022/nx-ddd-hasura-server.mjs.map +1 -0
- package/fesm2022/nx-ddd-hasura.mjs +880 -0
- package/fesm2022/nx-ddd-hasura.mjs.map +1 -0
- package/index.d.ts +391 -0
- package/package.json +32 -6
- package/server/index.d.ts +8 -0
- package/README.md +0 -11
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -5
- package/src/index.js.map +0 -1
- package/src/lib/apollo-multi.service.d.ts +0 -23
- package/src/lib/apollo-multi.service.js +0 -52
- package/src/lib/apollo-multi.service.js.map +0 -1
- package/src/lib/decorators.d.ts +0 -35
- package/src/lib/decorators.js +0 -50
- package/src/lib/decorators.js.map +0 -1
- package/src/lib/hasura.config.d.ts +0 -8
- package/src/lib/hasura.config.js +0 -15
- package/src/lib/hasura.config.js.map +0 -1
- package/src/lib/hasura.converter.d.ts +0 -24
- package/src/lib/hasura.converter.js +0 -82
- package/src/lib/hasura.converter.js.map +0 -1
- package/src/lib/hasura.di.d.ts +0 -33
- package/src/lib/hasura.di.js +0 -79
- package/src/lib/hasura.di.js.map +0 -1
- package/src/lib/hasura.interceptor.d.ts +0 -6
- package/src/lib/hasura.interceptor.js +0 -24
- package/src/lib/hasura.interceptor.js.map +0 -1
- package/src/lib/hasura.repository.d.ts +0 -40
- package/src/lib/hasura.repository.js +0 -261
- package/src/lib/hasura.repository.js.map +0 -1
- package/src/lib/hasura.service.d.ts +0 -18
- package/src/lib/hasura.service.js +0 -49
- package/src/lib/hasura.service.js.map +0 -1
- package/src/lib/index.d.ts +0 -8
- package/src/lib/index.js +0 -12
- package/src/lib/index.js.map +0 -1
- package/src/lib/links.d.ts +0 -7
- package/src/lib/links.js +0 -23
- package/src/lib/links.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasura.config.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts"],"names":[],"mappings":";;;AAYA,kDAKC;AAjBD,+CAAyD;AACzD,wCAA+C;AAE/C,6DAAyD;AAO5C,QAAA,aAAa,GAAG,IAAI,qBAAc,CAAe,eAAe,CAAC,CAAC;AAE/E,SAAgB,mBAAmB,CAAC,MAAoB;IACtD,OAAO;QACL,EAAE,OAAO,EAAE,qBAAa,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAiB,EAAE,QAAQ,EAAE,sCAAiB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE;KAClG,CAAC;AACJ,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ClassConstructor } from 'class-transformer';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
export interface HasuraConverter<E> {
|
|
4
|
-
toHasura(entity: E): object;
|
|
5
|
-
toHasuraMany(entities: E[]): object[];
|
|
6
|
-
fromHasura(entity: object): E;
|
|
7
|
-
fromHasuraMany(entities: object[]): E[];
|
|
8
|
-
}
|
|
9
|
-
export declare function deepCamelToSnakeCase(obj: any): any;
|
|
10
|
-
export declare function deepSnakeToCamelCase(obj: any): any;
|
|
11
|
-
export declare function fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T;
|
|
12
|
-
export declare function toHasura(object: object, type: any, { extraFunc }?: {
|
|
13
|
-
extraFunc?: (obj: any) => any;
|
|
14
|
-
}): any;
|
|
15
|
-
export declare function makeConverter<T extends object>(type: {
|
|
16
|
-
new (): T;
|
|
17
|
-
}): HasuraConverter<T>;
|
|
18
|
-
export declare class HasuraUtils {
|
|
19
|
-
static toTimestamp(date: dayjs.Dayjs | null): string | null;
|
|
20
|
-
static fromHasura<T extends object>(_object: object, type: ClassConstructor<T>): T;
|
|
21
|
-
static toHasura(object: object, type: any, { extraFunc }?: {
|
|
22
|
-
extraFunc?: (obj: any) => any;
|
|
23
|
-
}): any;
|
|
24
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HasuraUtils = void 0;
|
|
4
|
-
exports.deepCamelToSnakeCase = deepCamelToSnakeCase;
|
|
5
|
-
exports.deepSnakeToCamelCase = deepSnakeToCamelCase;
|
|
6
|
-
exports.fromHasura = fromHasura;
|
|
7
|
-
exports.toHasura = toHasura;
|
|
8
|
-
exports.makeConverter = makeConverter;
|
|
9
|
-
const tslib_1 = require("tslib");
|
|
10
|
-
const decorators_1 = require("./decorators");
|
|
11
|
-
const lodash_es_1 = require("lodash-es");
|
|
12
|
-
const util_1 = require("@nx-ddd/core/util");
|
|
13
|
-
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
14
|
-
function deepCamelToSnakeCase(obj) {
|
|
15
|
-
if (Array.isArray(obj)) {
|
|
16
|
-
return obj.map(deepCamelToSnakeCase);
|
|
17
|
-
}
|
|
18
|
-
else if ((0, lodash_es_1.isObject)(obj)) {
|
|
19
|
-
return (0, lodash_es_1.mapKeys)((0, lodash_es_1.mapValues)(obj, deepCamelToSnakeCase), (_, key) => (0, lodash_es_1.snakeCase)(key));
|
|
20
|
-
}
|
|
21
|
-
return obj;
|
|
22
|
-
}
|
|
23
|
-
function deepSnakeToCamelCase(obj) {
|
|
24
|
-
if (Array.isArray(obj)) {
|
|
25
|
-
return obj.map(deepSnakeToCamelCase);
|
|
26
|
-
}
|
|
27
|
-
else if ((0, lodash_es_1.isObject)(obj)) {
|
|
28
|
-
return (0, lodash_es_1.mapKeys)((0, lodash_es_1.mapValues)(obj, deepSnakeToCamelCase), (_, key) => key.replace(/_([a-z])/g, (g) => g[1].toUpperCase()));
|
|
29
|
-
}
|
|
30
|
-
return obj;
|
|
31
|
-
}
|
|
32
|
-
function fromHasura(_object, type) {
|
|
33
|
-
return HasuraUtils.fromHasura(_object, type);
|
|
34
|
-
}
|
|
35
|
-
function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {
|
|
36
|
-
return HasuraUtils.toHasura(object, type, { extraFunc });
|
|
37
|
-
}
|
|
38
|
-
function makeConverter(type) {
|
|
39
|
-
return {
|
|
40
|
-
toHasura(entity) {
|
|
41
|
-
return toHasura(entity, type);
|
|
42
|
-
},
|
|
43
|
-
toHasuraMany(entities) {
|
|
44
|
-
return entities.map((entity) => this.toHasura(entity));
|
|
45
|
-
},
|
|
46
|
-
fromHasura(entity) {
|
|
47
|
-
return fromHasura(entity, type);
|
|
48
|
-
},
|
|
49
|
-
fromHasuraMany(entities) {
|
|
50
|
-
return entities.map((entity) => this.fromHasura(entity));
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
class HasuraUtils {
|
|
55
|
-
static toTimestamp(date) {
|
|
56
|
-
if (!dayjs_1.default.isDayjs(date))
|
|
57
|
-
return null;
|
|
58
|
-
return date.toISOString();
|
|
59
|
-
}
|
|
60
|
-
static fromHasura(_object, type) {
|
|
61
|
-
const object = deepSnakeToCamelCase(_object);
|
|
62
|
-
return (0, util_1.plainToInstanceWithValid)(type, object);
|
|
63
|
-
}
|
|
64
|
-
static toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {
|
|
65
|
-
const fields = (0, decorators_1.getFlattenFieldAnnotations)(type);
|
|
66
|
-
const obj = Object.entries(fields).reduce((acc, [key, annotation]) => {
|
|
67
|
-
const value = (0, lodash_es_1.get)(object, annotation.fieldName);
|
|
68
|
-
switch (annotation.type) {
|
|
69
|
-
case 'text': return Object.assign(Object.assign({}, acc), { [key]: value });
|
|
70
|
-
case 'timestamp': return Object.assign(Object.assign({}, acc), { [key]: this.toTimestamp(value) });
|
|
71
|
-
case 'numeric': return Object.assign(Object.assign({}, acc), { [key]: isNaN(Number(value)) ? null : Number(value) });
|
|
72
|
-
case 'integer': return Object.assign(Object.assign({}, acc), { [key]: isNaN(Number(value)) ? null : Number(value) });
|
|
73
|
-
case 'json': return Object.assign(Object.assign({}, acc), { [key]: value });
|
|
74
|
-
case 'map': return Object.assign({}, acc);
|
|
75
|
-
default: return Object.assign(Object.assign({}, acc), { [key]: value });
|
|
76
|
-
}
|
|
77
|
-
}, {});
|
|
78
|
-
return extraFunc(obj);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.HasuraUtils = HasuraUtils;
|
|
82
|
-
//# sourceMappingURL=hasura.converter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasura.converter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/hasura.converter.ts"],"names":[],"mappings":";;;AAaA,oDASC;AAED,oDASC;AAED,gCAEC;AAED,4BAMC;AAED,sCAeC;;AA9DD,6CAA0D;AAC1D,yCAAyE;AACzE,4CAA6D;AAE7D,0DAA0B;AAS1B,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,IAAA,oBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,mBAAO,EAAC,IAAA,qBAAS,EAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAC9D,IAAA,qBAAS,EAAC,GAAG,CAAC,CACf,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,IAAA,oBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,mBAAO,EAAC,IAAA,qBAAS,EAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAC9D,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,UAAU,CAAmB,OAAe,EAAE,IAAyB;IACrF,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,QAAQ,CAAC,MAAc,EAAE,IAAS,EAAE,EAClD,SAAS,GAAG,oBAAoB,KAG9B,EAAG;IACL,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,aAAa,CAAmB,IAAgB;IAC9D,OAAO;QACL,QAAQ,CAAC,MAAS;YAChB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,YAAY,CAAC,QAAa;YACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,UAAU,CAAC,MAAc;YACvB,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAM,CAAC;QACvC,CAAC;QACD,cAAc,CAAC,QAAkB;YAC/B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAa,WAAW;IACtB,MAAM,CAAC,WAAW,CAAC,IAAwB;QACzC,IAAI,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,UAAU,CAAmB,OAAe,EAAE,IAAyB;QAC5E,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAA,+BAAwB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAS,EAAE,EACzC,SAAS,GAAG,oBAAoB,KAG9B,EAAG;QACL,MAAM,MAAM,GAAG,IAAA,uCAA0B,EAItC,IAAI,CAAC,CAAC;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE;YACnE,MAAM,KAAK,GAAG,IAAA,eAAG,EAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YAChD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAG;gBAC7C,KAAK,WAAW,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAG;gBACpE,KAAK,SAAS,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAG;gBACtF,KAAK,SAAS,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAG;gBACtF,KAAK,MAAM,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAG;gBAC7C,KAAK,KAAK,CAAC,CAAC,yBAAW,GAAG,EAAE;gBAC5B,OAAO,CAAC,CAAC,uCAAY,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAG;YAC3C,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AAnCD,kCAmCC"}
|
package/src/lib/hasura.di.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export { DeepPartial } from '@nx-ddd/common/domain/models';
|
|
2
|
-
export { TransformToDayjs } from '@nx-ddd/common/domain/models';
|
|
3
|
-
export { IsDayjs } from 'class-validator-extended';
|
|
4
|
-
import { EnvironmentProviders, InjectionToken, Provider } from '@angular/core';
|
|
5
|
-
import { ApolloLink, HttpLink, InMemoryCache } from '@apollo/client/core';
|
|
6
|
-
import { HasuraConfig } from './hasura.config';
|
|
7
|
-
import { Observable } from 'rxjs';
|
|
8
|
-
export declare function provideHttpLink(): {
|
|
9
|
-
provide: typeof ApolloLink;
|
|
10
|
-
useFactory: (config: HasuraConfig) => HttpLink;
|
|
11
|
-
deps: InjectionToken<HasuraConfig>[];
|
|
12
|
-
};
|
|
13
|
-
type HasuraAuthorization = Promise<string> | Observable<string> | string;
|
|
14
|
-
export declare function provideHasuraAuthorization(useFactory: () => HasuraAuthorization): {
|
|
15
|
-
provide: InjectionToken<HasuraAuthorization>;
|
|
16
|
-
useFactory: () => HasuraAuthorization;
|
|
17
|
-
};
|
|
18
|
-
type PromiseOrObservable<T> = Promise<T> | Observable<T> | T;
|
|
19
|
-
export declare function provideGraphqlHeaders(useFactory: () => () => PromiseOrObservable<Record<string, string>>): Provider;
|
|
20
|
-
export declare function provideWebsocketLink(): {
|
|
21
|
-
provide: typeof ApolloLink;
|
|
22
|
-
useFactory: () => import("@apollo/client/link/ws").WebSocketLink;
|
|
23
|
-
};
|
|
24
|
-
export declare function provideApolloOptions(): {
|
|
25
|
-
provide: InjectionToken<import("@apollo/client/core").ApolloClientOptions<any>>;
|
|
26
|
-
useFactory: (link: ApolloLink) => {
|
|
27
|
-
cache: InMemoryCache;
|
|
28
|
-
link: ApolloLink;
|
|
29
|
-
};
|
|
30
|
-
deps: (typeof ApolloLink)[];
|
|
31
|
-
};
|
|
32
|
-
export declare function provideHasura(config: HasuraConfig): (Provider | EnvironmentProviders)[];
|
|
33
|
-
export declare function provideHasuraWithWebSocket(config: HasuraConfig): (Provider | EnvironmentProviders)[];
|
package/src/lib/hasura.di.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IsDayjs = exports.TransformToDayjs = void 0;
|
|
4
|
-
exports.provideHttpLink = provideHttpLink;
|
|
5
|
-
exports.provideHasuraAuthorization = provideHasuraAuthorization;
|
|
6
|
-
exports.provideGraphqlHeaders = provideGraphqlHeaders;
|
|
7
|
-
exports.provideWebsocketLink = provideWebsocketLink;
|
|
8
|
-
exports.provideApolloOptions = provideApolloOptions;
|
|
9
|
-
exports.provideHasura = provideHasura;
|
|
10
|
-
exports.provideHasuraWithWebSocket = provideHasuraWithWebSocket;
|
|
11
|
-
var models_1 = require("@nx-ddd/common/domain/models");
|
|
12
|
-
Object.defineProperty(exports, "TransformToDayjs", { enumerable: true, get: function () { return models_1.TransformToDayjs; } });
|
|
13
|
-
var class_validator_extended_1 = require("class-validator-extended");
|
|
14
|
-
Object.defineProperty(exports, "IsDayjs", { enumerable: true, get: function () { return class_validator_extended_1.IsDayjs; } });
|
|
15
|
-
const core_1 = require("@angular/core");
|
|
16
|
-
const core_2 = require("@apollo/client/core");
|
|
17
|
-
const apollo_angular_1 = require("apollo-angular");
|
|
18
|
-
const hasura_config_1 = require("./hasura.config");
|
|
19
|
-
const links_1 = require("./links");
|
|
20
|
-
function provideHttpLink() {
|
|
21
|
-
return {
|
|
22
|
-
provide: core_2.ApolloLink,
|
|
23
|
-
useFactory: (config) => new core_2.HttpLink({
|
|
24
|
-
uri: config.url,
|
|
25
|
-
headers: (config === null || config === void 0 ? void 0 : config.adminSecret) && { 'x-hasura-admin-secret': config.adminSecret },
|
|
26
|
-
}),
|
|
27
|
-
deps: [hasura_config_1.HASURA_CONFIG],
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
const HASURA_AUTHORIZATION = new core_1.InjectionToken('HASURA_AUTHORIZATION');
|
|
31
|
-
function provideHasuraAuthorization(useFactory) {
|
|
32
|
-
return {
|
|
33
|
-
provide: HASURA_AUTHORIZATION,
|
|
34
|
-
useFactory,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
const GRAPHQL_HEADERS = new core_1.InjectionToken('GRAPHQL_HEADERS', {
|
|
38
|
-
providedIn: 'root',
|
|
39
|
-
factory: () => () => ({}),
|
|
40
|
-
});
|
|
41
|
-
function provideGraphqlHeaders(useFactory) {
|
|
42
|
-
return [
|
|
43
|
-
{ provide: GRAPHQL_HEADERS, useFactory },
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
function provideWebsocketLink() {
|
|
47
|
-
return {
|
|
48
|
-
provide: core_2.ApolloLink,
|
|
49
|
-
useFactory: () => {
|
|
50
|
-
const config = (0, core_1.inject)(hasura_config_1.HASURA_CONFIG);
|
|
51
|
-
const _getHeaders = (0, core_1.inject)(GRAPHQL_HEADERS);
|
|
52
|
-
return (0, links_1.buildWebsocketLink)(config.url, _getHeaders);
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function provideApolloOptions() {
|
|
57
|
-
return {
|
|
58
|
-
provide: apollo_angular_1.APOLLO_OPTIONS,
|
|
59
|
-
useFactory: (link) => ({ cache: new core_2.InMemoryCache(), link }),
|
|
60
|
-
deps: [core_2.ApolloLink],
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function provideHasura(config) {
|
|
64
|
-
return [
|
|
65
|
-
(0, core_1.importProvidersFrom)(apollo_angular_1.ApolloModule),
|
|
66
|
-
(0, hasura_config_1.provideHasuraConfig)(config),
|
|
67
|
-
provideApolloOptions(),
|
|
68
|
-
provideHttpLink(),
|
|
69
|
-
];
|
|
70
|
-
}
|
|
71
|
-
function provideHasuraWithWebSocket(config) {
|
|
72
|
-
return [
|
|
73
|
-
(0, core_1.importProvidersFrom)(apollo_angular_1.ApolloModule),
|
|
74
|
-
(0, hasura_config_1.provideHasuraConfig)(config),
|
|
75
|
-
provideApolloOptions(),
|
|
76
|
-
provideWebsocketLink(),
|
|
77
|
-
];
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=hasura.di.js.map
|
package/src/lib/hasura.di.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasura.di.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.ts"],"names":[],"mappings":";;;AAUA,0CASC;AAMD,gEAKC;AASD,sDAMC;AAED,oDASC;AAED,oDAMC;AAED,sCAOC;AAED,gEAOC;AAjFD,uDAAgE;AAAvD,0GAAA,gBAAgB,OAAA;AACzB,qEAAmD;AAA1C,mHAAA,OAAO,OAAA;AAChB,wCAA4G;AAC5G,8CAA0E;AAC1E,mDAA8D;AAC9D,mDAAmF;AACnF,mCAAyD;AAGzD,SAAgB,eAAe;IAC7B,OAAO;QACL,OAAO,EAAE,iBAAU;QACnB,UAAU,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,IAAI,eAAQ,CAAC;YACjD,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,WAAW,EAAE;SAChF,CAAC;QACF,IAAI,EAAE,CAAC,6BAAa,CAAC;KACtB,CAAC;AACJ,CAAC;AAID,MAAM,oBAAoB,GAAG,IAAI,qBAAc,CAAsB,sBAAsB,CAAC,CAAC;AAE7F,SAAgB,0BAA0B,CAAC,UAAqC;IAC9E,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,UAAU;KACX,CAAC;AACJ,CAAC;AAID,MAAM,eAAe,GAAG,IAAI,qBAAc,CAAa,iBAAiB,EAAE;IACxE,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,SAAgB,qBAAqB,CACnC,UAAmE;IAEnE,OAAO;QACL,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,iBAAU;QACnB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,MAAM,GAAG,IAAA,aAAM,EAAC,6BAAa,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC;YAC5C,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,+BAAc;QACvB,UAAU,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,oBAAa,EAAE,EAAE,IAAI,EAAE,CAAC;QACxE,IAAI,EAAE,CAAC,iBAAU,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,MAAoB;IAChD,OAAO;QACL,IAAA,0BAAmB,EAAC,6BAAY,CAAC;QACjC,IAAA,mCAAmB,EAAC,MAAM,CAAC;QAC3B,oBAAoB,EAAE;QACtB,eAAe,EAAE;KAClB,CAAA;AACH,CAAC;AAED,SAAgB,0BAA0B,CAAC,MAAoB;IAC7D,OAAO;QACL,IAAA,0BAAmB,EAAC,6BAAY,CAAC;QACjC,IAAA,mCAAmB,EAAC,MAAM,CAAC;QAC3B,oBAAoB,EAAE;QACtB,oBAAoB,EAAE;KACvB,CAAA;AACH,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http";
|
|
2
|
-
import { Observable } from "rxjs";
|
|
3
|
-
export declare class HasuraInterceptor implements HttpInterceptor {
|
|
4
|
-
private config;
|
|
5
|
-
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
6
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HasuraInterceptor = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const core_1 = require("@angular/core");
|
|
6
|
-
const hasura_config_1 = require("./hasura.config");
|
|
7
|
-
let HasuraInterceptor = class HasuraInterceptor {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.config = (0, core_1.inject)(hasura_config_1.HASURA_CONFIG);
|
|
10
|
-
}
|
|
11
|
-
intercept(req, next) {
|
|
12
|
-
if (req.url.startsWith(this.config.url)) {
|
|
13
|
-
return next.handle(req.clone({
|
|
14
|
-
headers: req.headers.set('x-hasura-admin-secret', this.config.adminSecret),
|
|
15
|
-
}));
|
|
16
|
-
}
|
|
17
|
-
return next.handle(req);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
exports.HasuraInterceptor = HasuraInterceptor;
|
|
21
|
-
exports.HasuraInterceptor = HasuraInterceptor = tslib_1.__decorate([
|
|
22
|
-
(0, core_1.Injectable)()
|
|
23
|
-
], HasuraInterceptor);
|
|
24
|
-
//# sourceMappingURL=hasura.interceptor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasura.interceptor.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts"],"names":[],"mappings":";;;;AACA,wCAAmD;AAEnD,mDAAgD;AAGzC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACG,WAAM,GAAG,IAAA,aAAM,EAAC,6BAAa,CAAC,CAAC;IAUzC,CAAC;IARC,SAAS,CAAC,GAAqB,EAAE,IAAiB;QAChD,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;aAC3E,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACF,CAAA;AAXY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,iBAAU,GAAE;GACA,iBAAiB,CAW7B"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { FetchResult, OperationVariables } from "@apollo/client/core";
|
|
2
|
-
import { HasuraConverter } from "./hasura.converter";
|
|
3
|
-
import { HasuraService } from "./hasura.service";
|
|
4
|
-
import { Observable } from "rxjs";
|
|
5
|
-
export declare function makeSubscription(query: any): {
|
|
6
|
-
kind: any;
|
|
7
|
-
definitions: any;
|
|
8
|
-
};
|
|
9
|
-
export declare abstract class HasuraRepository<E extends {
|
|
10
|
-
id: string;
|
|
11
|
-
}> {
|
|
12
|
-
protected hasura: HasuraService;
|
|
13
|
-
protected abstract converter: HasuraConverter<E>;
|
|
14
|
-
readonly abstract updateColumns: string[];
|
|
15
|
-
readonly abstract tableName: string;
|
|
16
|
-
protected subscribe<T = any, TVariables extends OperationVariables = OperationVariables>({ query, variables }: {
|
|
17
|
-
query: any;
|
|
18
|
-
variables: any;
|
|
19
|
-
}): Observable<FetchResult<T>>;
|
|
20
|
-
get pkey(): string;
|
|
21
|
-
get(params: {
|
|
22
|
-
id: string;
|
|
23
|
-
}): Promise<any>;
|
|
24
|
-
get listQuery(): string;
|
|
25
|
-
list(): Promise<E[]>;
|
|
26
|
-
listChanges(): Observable<E[]>;
|
|
27
|
-
create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;
|
|
28
|
-
createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;
|
|
29
|
-
update(data: Partial<E> & {
|
|
30
|
-
id: string;
|
|
31
|
-
}): Promise<FetchResult<any>>;
|
|
32
|
-
updateMany(data: Partial<E>[]): Promise<number>;
|
|
33
|
-
delete(id: string): Promise<FetchResult<any>>;
|
|
34
|
-
save(data: Omit<E, 'createdAt' | 'updatedAt' | 'deletedAt'>): Promise<FetchResult<any>>;
|
|
35
|
-
saveMany(entities: E[]): Promise<FetchResult<any>>;
|
|
36
|
-
deleteMany(params: {
|
|
37
|
-
id: string;
|
|
38
|
-
}[]): Promise<number>;
|
|
39
|
-
deleteAll(): Promise<FetchResult<any>>;
|
|
40
|
-
}
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HasuraRepository = void 0;
|
|
4
|
-
exports.makeSubscription = makeSubscription;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const core_1 = require("@angular/core");
|
|
7
|
-
const core_2 = require("@apollo/client/core");
|
|
8
|
-
const hasura_service_1 = require("./hasura.service");
|
|
9
|
-
const lodash_es_1 = require("lodash-es");
|
|
10
|
-
const rxjs_1 = require("rxjs");
|
|
11
|
-
function makeSubscription(query) {
|
|
12
|
-
const { kind, definitions } = query;
|
|
13
|
-
const subscriptionDefinitions = definitions.map((definition) => {
|
|
14
|
-
if (definition.kind === 'OperationDefinition' && definition.operation === 'query') {
|
|
15
|
-
return Object.assign(Object.assign({}, definition), { operation: 'subscription' });
|
|
16
|
-
}
|
|
17
|
-
return definition;
|
|
18
|
-
});
|
|
19
|
-
return { kind, definitions: subscriptionDefinitions };
|
|
20
|
-
}
|
|
21
|
-
;
|
|
22
|
-
let HasuraRepository = class HasuraRepository {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.hasura = (0, core_1.inject)(hasura_service_1.HasuraService);
|
|
25
|
-
}
|
|
26
|
-
subscribe({ query, variables }) {
|
|
27
|
-
return this.hasura.getApolloClient().pipe((0, rxjs_1.switchMap)((client) => client.subscribe({
|
|
28
|
-
query: makeSubscription(query),
|
|
29
|
-
variables: variables,
|
|
30
|
-
})));
|
|
31
|
-
}
|
|
32
|
-
get pkey() {
|
|
33
|
-
return `${this.tableName}_pkey`;
|
|
34
|
-
}
|
|
35
|
-
get(params) {
|
|
36
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const queryName = `${this.tableName}_by_pk`;
|
|
38
|
-
return (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient()).then((client) => client.query({
|
|
39
|
-
query: (0, core_2.gql) `query get($id: String!) {
|
|
40
|
-
${queryName}(id: $id) {
|
|
41
|
-
${this.updateColumns.join(' ')}
|
|
42
|
-
}
|
|
43
|
-
}`,
|
|
44
|
-
variables: params,
|
|
45
|
-
})).then((res => res.data[queryName])).then(data => data ? this.converter.fromHasura(data) : data);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
get listQuery() {
|
|
49
|
-
return `query list {
|
|
50
|
-
${this.tableName} {
|
|
51
|
-
${this.updateColumns.join(' ')}
|
|
52
|
-
}
|
|
53
|
-
}`;
|
|
54
|
-
}
|
|
55
|
-
list() {
|
|
56
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
58
|
-
return client.query({
|
|
59
|
-
query: (0, core_2.gql) `${this.listQuery}`,
|
|
60
|
-
}).then(res => this.converter.fromHasuraMany(res.data[this.tableName]));
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
listChanges() {
|
|
64
|
-
return this.subscribe({
|
|
65
|
-
query: (0, core_2.gql) `${this.listQuery}`,
|
|
66
|
-
variables: {},
|
|
67
|
-
}).pipe((0, rxjs_1.map)(res => this.converter.fromHasuraMany(res.data[this.tableName])));
|
|
68
|
-
}
|
|
69
|
-
create(data) {
|
|
70
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const mutationName = `insert_${this.tableName}`;
|
|
72
|
-
const mutation = (0, core_2.gql) `mutation create($object: ${this.tableName}_insert_input!) {
|
|
73
|
-
${mutationName}(objects: [$object]) {
|
|
74
|
-
affected_rows
|
|
75
|
-
returning {
|
|
76
|
-
${this.updateColumns.join(' ')}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}`;
|
|
80
|
-
const object = (0, lodash_es_1.omitBy)((0, lodash_es_1.omit)(this.converter.toHasura(data), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');
|
|
81
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
82
|
-
return client.mutate({
|
|
83
|
-
mutation,
|
|
84
|
-
variables: { object },
|
|
85
|
-
}).then(result => {
|
|
86
|
-
return this.converter.fromHasura(result.data[mutationName].returning[0]);
|
|
87
|
-
}).catch(error => {
|
|
88
|
-
console.error(error.graphQLErrors);
|
|
89
|
-
throw error;
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
createMany(data) {
|
|
94
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
const mutationName = `insert_${this.tableName}`;
|
|
96
|
-
const objects = data.map((item) => this.converter.toHasura(item));
|
|
97
|
-
const mutation = (0, core_2.gql) `
|
|
98
|
-
mutation createMany($objects: [${this.tableName}_insert_input!]!) {
|
|
99
|
-
${mutationName}(objects: $objects) {
|
|
100
|
-
returning {
|
|
101
|
-
${this.updateColumns.join(" ")}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
`;
|
|
106
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
107
|
-
return client.mutate({
|
|
108
|
-
mutation,
|
|
109
|
-
variables: { objects },
|
|
110
|
-
}).then((result) => this.converter.fromHasuraMany(result.data[mutationName].returning)).catch((error) => {
|
|
111
|
-
console.error(error.graphQLErrors);
|
|
112
|
-
throw error;
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
update(data) {
|
|
117
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
const mutation = (0, core_2.gql) `mutation update($id: String!, $object: ${this.tableName}_set_input!) {
|
|
119
|
-
update_${this.tableName}(where: {id: {_eq: $id}}, _set: $object) { affected_rows }
|
|
120
|
-
}`;
|
|
121
|
-
const fields = Object.keys(data).map(lodash_es_1.snakeCase);
|
|
122
|
-
const object = (0, lodash_es_1.omitBy)((0, lodash_es_1.omit)((0, lodash_es_1.pick)(this.converter.toHasura(data), fields), ['createdAt', 'updatedAt', 'created_at', 'updated_at']), value => typeof value === 'undefined');
|
|
123
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
124
|
-
console.debug('[Hasura Repository] update:', object);
|
|
125
|
-
return client.mutate({
|
|
126
|
-
mutation,
|
|
127
|
-
variables: {
|
|
128
|
-
id: data.id,
|
|
129
|
-
object,
|
|
130
|
-
},
|
|
131
|
-
}).catch(error => {
|
|
132
|
-
console.error(error.graphQLErrors);
|
|
133
|
-
throw error;
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
updateMany(data) {
|
|
138
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
|
-
const mutationName = `update_${this.tableName}_many`;
|
|
140
|
-
const objects = data.map((item) => {
|
|
141
|
-
const fields = Object.keys(item).map(lodash_es_1.snakeCase);
|
|
142
|
-
const object = (0, lodash_es_1.pick)(this.converter.toHasura(item), fields);
|
|
143
|
-
return { where: { id: { _eq: item.id } }, _set: object };
|
|
144
|
-
});
|
|
145
|
-
const mutation = (0, core_2.gql) `
|
|
146
|
-
mutation ${mutationName}($objects: [${this.tableName}_updates!]!) {
|
|
147
|
-
${mutationName}(updates: $objects) {
|
|
148
|
-
affected_rows
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
`;
|
|
152
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
153
|
-
return client
|
|
154
|
-
.mutate({ mutation, variables: { objects } })
|
|
155
|
-
.then((result) => result.data[mutationName].affected_rows)
|
|
156
|
-
.catch((error) => {
|
|
157
|
-
console.error(error.graphQLErrors);
|
|
158
|
-
throw error;
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
delete(id) {
|
|
163
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
164
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
165
|
-
return client.mutate({
|
|
166
|
-
mutation: (0, core_2.gql) `mutation delete($id: String!) {
|
|
167
|
-
delete_${this.tableName}(where: {id: {_eq: $id}}) { affected_rows }
|
|
168
|
-
}`,
|
|
169
|
-
variables: { id },
|
|
170
|
-
}).catch(error => {
|
|
171
|
-
console.error(error.graphQLErrors);
|
|
172
|
-
throw error;
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
save(data) {
|
|
177
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
178
|
-
const object = (0, lodash_es_1.omit)(this.converter.toHasura(data), ['createdAt', 'updatedAt']);
|
|
179
|
-
const query = (0, core_2.gql) `mutation upsert($object: [${this.tableName}_insert_input!]!) {
|
|
180
|
-
insert_${this.tableName}(
|
|
181
|
-
objects: $object,
|
|
182
|
-
on_conflict: {
|
|
183
|
-
constraint: ${this.pkey},
|
|
184
|
-
update_columns: [${this.updateColumns}]
|
|
185
|
-
}
|
|
186
|
-
) { affected_rows }
|
|
187
|
-
}`;
|
|
188
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
189
|
-
console.debug('[Hasura Repository] save:', client);
|
|
190
|
-
return client.mutate({
|
|
191
|
-
mutation: query,
|
|
192
|
-
variables: {
|
|
193
|
-
object: object,
|
|
194
|
-
},
|
|
195
|
-
}).catch(error => {
|
|
196
|
-
console.error(error.graphQLErrors);
|
|
197
|
-
throw error;
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
saveMany(entities) {
|
|
202
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
203
|
-
const query = (0, core_2.gql) `mutation upsert($objects: [${this.tableName}_insert_input!]!) {
|
|
204
|
-
insert_${this.tableName}(
|
|
205
|
-
objects: $objects,
|
|
206
|
-
on_conflict: {
|
|
207
|
-
constraint: ${this.pkey},
|
|
208
|
-
update_columns: [${this.updateColumns}]
|
|
209
|
-
}
|
|
210
|
-
) { affected_rows }
|
|
211
|
-
}`;
|
|
212
|
-
const objects = entities.map(entity => this.converter.toHasura(entity));
|
|
213
|
-
console.debug('[Hasura Repository] objects:', objects);
|
|
214
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
215
|
-
return client.mutate({
|
|
216
|
-
mutation: query,
|
|
217
|
-
variables: { objects },
|
|
218
|
-
}).catch(error => {
|
|
219
|
-
console.error(error);
|
|
220
|
-
// console.error(error.graphQLErrors?.[0]?.extensions?.internal);
|
|
221
|
-
throw error;
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
deleteMany(params) {
|
|
226
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
227
|
-
const mutationName = `delete_${this.tableName}`;
|
|
228
|
-
const mutation = (0, core_2.gql) `
|
|
229
|
-
mutation deleteMany($ids: [String!]!) {
|
|
230
|
-
${mutationName}(where: {id: {_in: $ids}}) {
|
|
231
|
-
affected_rows
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
`;
|
|
235
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
236
|
-
return client.mutate({
|
|
237
|
-
mutation,
|
|
238
|
-
variables: { ids: params.map(param => param.id) },
|
|
239
|
-
}).then((result) => result.data[mutationName].affected_rows).catch((error) => {
|
|
240
|
-
console.error(error.graphQLErrors);
|
|
241
|
-
throw error;
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
deleteAll() {
|
|
246
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
247
|
-
const client = yield (0, rxjs_1.lastValueFrom)(this.hasura.getApolloClient());
|
|
248
|
-
return client.mutate({
|
|
249
|
-
mutation: (0, core_2.gql) `mutation delete_all {
|
|
250
|
-
delete_${this.tableName} (where: {}) { affected_rows }
|
|
251
|
-
}`,
|
|
252
|
-
variables: {},
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
exports.HasuraRepository = HasuraRepository;
|
|
258
|
-
exports.HasuraRepository = HasuraRepository = tslib_1.__decorate([
|
|
259
|
-
(0, core_1.Injectable)()
|
|
260
|
-
], HasuraRepository);
|
|
261
|
-
//# sourceMappingURL=hasura.repository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasura.repository.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/hasura.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Apollo } from "apollo-angular";
|
|
2
|
-
import { ApolloClient } from "@apollo/client/core";
|
|
3
|
-
import { Observable } from "rxjs";
|
|
4
|
-
import { ApolloMultiService } from "./apollo-multi.service";
|
|
5
|
-
export declare class HasuraService {
|
|
6
|
-
private http;
|
|
7
|
-
readonly apollo: Apollo;
|
|
8
|
-
readonly config: import("./hasura.config").HasuraConfig;
|
|
9
|
-
readonly apolloMulti: ApolloMultiService;
|
|
10
|
-
readonly _getApolloClient: import("./apollo-multi.service").GetApolloClient<any>;
|
|
11
|
-
getApolloClient(): Observable<ApolloClient<any>>;
|
|
12
|
-
graphql<T = any>(args: {
|
|
13
|
-
query: string;
|
|
14
|
-
variables?: object;
|
|
15
|
-
}): Observable<T>;
|
|
16
|
-
post<T>(endpoint: string, body: object): Observable<T>;
|
|
17
|
-
delete<T>(endpoint: string): Observable<T>;
|
|
18
|
-
}
|