airbyte-faros-destination 0.4.25 → 0.4.26
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/lib/common/graphql-client.d.ts +71 -3
- package/lib/common/graphql-client.js +311 -11
- package/lib/common/graphql-client.js.map +1 -1
- package/lib/destination.js +3 -3
- package/lib/destination.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/resources/spec.json +13 -1
|
@@ -6,26 +6,87 @@ export interface GraphQLBackend {
|
|
|
6
6
|
healthCheck(): Promise<void>;
|
|
7
7
|
postQuery(query: any): Promise<any>;
|
|
8
8
|
}
|
|
9
|
+
export interface Upsert {
|
|
10
|
+
id?: string;
|
|
11
|
+
readonly model: string;
|
|
12
|
+
readonly object: Dictionary<any>;
|
|
13
|
+
readonly foreignKeys: Dictionary<Upsert>;
|
|
14
|
+
}
|
|
15
|
+
export declare class UpsertBuffer {
|
|
16
|
+
private readonly upsertBuffer;
|
|
17
|
+
add(upsert: Upsert): void;
|
|
18
|
+
size(): number;
|
|
19
|
+
pop(model: string): Upsert[] | undefined;
|
|
20
|
+
get(model: string): Upsert[] | undefined;
|
|
21
|
+
private getInternal;
|
|
22
|
+
clear(): number;
|
|
23
|
+
}
|
|
24
|
+
export declare function serialize(obj: Dictionary<number | string>): string;
|
|
25
|
+
/**
|
|
26
|
+
* Like lodash pick but with null value replacement.
|
|
27
|
+
*/
|
|
28
|
+
export declare function strictPick(obj: any, keys: string[], nullValue?: string): any;
|
|
29
|
+
/**
|
|
30
|
+
* Groups objects by primary key and then merges all related objects into
|
|
31
|
+
* a single object where last-wins for overlapping properties.
|
|
32
|
+
*/
|
|
33
|
+
export declare function mergeByPrimaryKey(objects: any[], primaryKeys: string[]): any[];
|
|
34
|
+
/**
|
|
35
|
+
* Execute async callback for each batch of upserts.
|
|
36
|
+
*/
|
|
37
|
+
export declare function batchIterator<T>(batches: Upsert[][], callback: (batch: Upsert[]) => Promise<T>): AsyncIterable<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Separates upserts into levels. Level 0 has no dependencies on other levels.
|
|
40
|
+
* Level 1 depends on Level 0, 2 on 1 and so on.
|
|
41
|
+
*/
|
|
42
|
+
export declare function toLevels(upserts: Upsert[]): Upsert[][];
|
|
43
|
+
/**
|
|
44
|
+
* Client for writing records as GraphQL mutations. The client supports 3
|
|
45
|
+
* kinds of writes: Upserts, Updates and Deletes.
|
|
46
|
+
*
|
|
47
|
+
* For upserts, the high-level algorithm is:
|
|
48
|
+
*
|
|
49
|
+
* > For each record, build a tree of Upserts. The tree has more than one node if the current record represents a
|
|
50
|
+
* nested entity (e.g. branch record referencing repo which, in-turn, references org).
|
|
51
|
+
* > Buffer Upserts and index each by model (e.g. vcs_Branch)
|
|
52
|
+
* > When batch size limit is reached, execute a single insert mutation per model. Start with leaves of Upsert tree.
|
|
53
|
+
* > After inserting a batch, copy the id of each record back to the Upsert object. When inserting subsequent batches,
|
|
54
|
+
* required foreign keys will be read from the Upsert tree and copied to the appropriate batch mutation.
|
|
55
|
+
*
|
|
56
|
+
* Note: there is a complication in this algorithm for self-referent models (i.e. org_Employee's manager relationship).
|
|
57
|
+
* For these models, we split the batch into "levels". The first level consists of records with no dependencies on
|
|
58
|
+
* records of the same type. The second depends on the first and so on.
|
|
59
|
+
*
|
|
60
|
+
* For Updates and Deletes (which are much less frequent) we have a separate write buffer. This buffer is
|
|
61
|
+
* flushed if it reaches capacity. There is no attempt to combine these into bulk mutations (as done w/ upserts).
|
|
62
|
+
*/
|
|
9
63
|
export declare class GraphQLClient {
|
|
10
64
|
private readonly logger;
|
|
11
65
|
private readonly schemaLoader;
|
|
12
66
|
private readonly backend;
|
|
13
67
|
private schema;
|
|
14
68
|
private tableNames;
|
|
15
|
-
private
|
|
69
|
+
private tableDependencies;
|
|
70
|
+
private readonly mutationBatchSize;
|
|
71
|
+
private readonly upsertBatchSize;
|
|
16
72
|
private readonly writeBuffer;
|
|
17
|
-
|
|
18
|
-
|
|
73
|
+
private readonly upsertBuffer;
|
|
74
|
+
private readonly selfReferentModels;
|
|
75
|
+
constructor(logger: AirbyteLogger, schemaLoader: SchemaLoader, backend: GraphQLBackend, upsertBatchSize?: number, mutationBatchSize?: number);
|
|
19
76
|
healthCheck(): Promise<void>;
|
|
20
77
|
loadSchema(): Promise<void>;
|
|
21
78
|
private checkSchema;
|
|
22
79
|
resetData(origin: string, models: ReadonlyArray<string>): Promise<void>;
|
|
23
80
|
writeRecord(model: string, record: Dictionary<any>, origin: string): Promise<void>;
|
|
81
|
+
private flushUpsertBuffer;
|
|
82
|
+
private execUpsert;
|
|
83
|
+
private doFlushUpsertBuffer;
|
|
24
84
|
writeTimestampedRecord(record: TimestampedRecord): Promise<void>;
|
|
25
85
|
private writeUpdateRecord;
|
|
26
86
|
private writeDeletionRecord;
|
|
27
87
|
private postQuery;
|
|
28
88
|
flush(): Promise<void>;
|
|
89
|
+
private flushWriteBuffer;
|
|
29
90
|
/**
|
|
30
91
|
* Constructs a gql query from an array of json mutations.
|
|
31
92
|
* The outputted qql mutation might look like:
|
|
@@ -51,6 +112,13 @@ export declare class GraphQLClient {
|
|
|
51
112
|
static batchMutation(queries: any[]): string | undefined;
|
|
52
113
|
private createWhereClause;
|
|
53
114
|
private createMutationObject;
|
|
115
|
+
private addUpsert;
|
|
116
|
+
private objectWithForeignKeys;
|
|
117
|
+
/**
|
|
118
|
+
* returns serialized version of keys fields
|
|
119
|
+
*/
|
|
120
|
+
private serializedPrimaryKey;
|
|
121
|
+
private toUpsertOp;
|
|
54
122
|
private formatFieldValue;
|
|
55
123
|
private createConflictClause;
|
|
56
124
|
}
|
|
@@ -3,23 +3,156 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GraphQLClient = void 0;
|
|
6
|
+
exports.GraphQLClient = exports.toLevels = exports.batchIterator = exports.mergeByPrimaryKey = exports.strictPick = exports.serialize = exports.UpsertBuffer = void 0;
|
|
7
7
|
const date_format_1 = __importDefault(require("date-format"));
|
|
8
8
|
const json_to_graphql_query_1 = require("json-to-graphql-query");
|
|
9
9
|
const lodash_1 = require("lodash");
|
|
10
10
|
const traverse_1 = __importDefault(require("traverse"));
|
|
11
|
+
const ts_essentials_1 = require("ts-essentials");
|
|
11
12
|
const verror_1 = require("verror");
|
|
12
13
|
const types_1 = require("./types");
|
|
14
|
+
class UpsertBuffer {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.upsertBuffer = new Map();
|
|
17
|
+
}
|
|
18
|
+
add(upsert) {
|
|
19
|
+
const modelBuffer = this.upsertBuffer.get(upsert.model);
|
|
20
|
+
if (!modelBuffer) {
|
|
21
|
+
this.upsertBuffer.set(upsert.model, [upsert]);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
modelBuffer.push(upsert);
|
|
25
|
+
}
|
|
26
|
+
size() {
|
|
27
|
+
// the limiting factor is size of a single request
|
|
28
|
+
return Array.from(this.upsertBuffer.values()).reduce((acc, arr) => (0, lodash_1.max)([acc, arr.length]), 0);
|
|
29
|
+
}
|
|
30
|
+
pop(model) {
|
|
31
|
+
return this.getInternal(model, true);
|
|
32
|
+
}
|
|
33
|
+
get(model) {
|
|
34
|
+
return this.getInternal(model, false);
|
|
35
|
+
}
|
|
36
|
+
getInternal(model, remove) {
|
|
37
|
+
if (this.upsertBuffer.has(model)) {
|
|
38
|
+
const modelUpserts = this.upsertBuffer.get(model);
|
|
39
|
+
if (remove) {
|
|
40
|
+
this.upsertBuffer.delete(model);
|
|
41
|
+
}
|
|
42
|
+
return modelUpserts;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
clear() {
|
|
47
|
+
const size = this.size();
|
|
48
|
+
this.upsertBuffer.clear();
|
|
49
|
+
return size;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.UpsertBuffer = UpsertBuffer;
|
|
53
|
+
function serialize(obj) {
|
|
54
|
+
return (0, lodash_1.keys)(obj)
|
|
55
|
+
.sort()
|
|
56
|
+
.map((k) => `${k}:${obj[k]}`)
|
|
57
|
+
.join('|');
|
|
58
|
+
}
|
|
59
|
+
exports.serialize = serialize;
|
|
60
|
+
/**
|
|
61
|
+
* Like lodash pick but with null value replacement.
|
|
62
|
+
*/
|
|
63
|
+
function strictPick(obj, keys, nullValue = 'null') {
|
|
64
|
+
return keys.reduce((result, key) => (0, lodash_1.set)(result, key, obj[key] || nullValue), {});
|
|
65
|
+
}
|
|
66
|
+
exports.strictPick = strictPick;
|
|
67
|
+
/**
|
|
68
|
+
* Groups objects by primary key and then merges all related objects into
|
|
69
|
+
* a single object where last-wins for overlapping properties.
|
|
70
|
+
*/
|
|
71
|
+
function mergeByPrimaryKey(objects, primaryKeys) {
|
|
72
|
+
const byPK = (0, lodash_1.groupBy)(objects, (o) => serialize((0, lodash_1.pick)(o, primaryKeys)));
|
|
73
|
+
return Object.values(byPK).map((arr) => arr.reduce((acc, obj) => ({ ...acc, ...obj }), {}));
|
|
74
|
+
}
|
|
75
|
+
exports.mergeByPrimaryKey = mergeByPrimaryKey;
|
|
76
|
+
/**
|
|
77
|
+
* Execute async callback for each batch of upserts.
|
|
78
|
+
*/
|
|
79
|
+
function batchIterator(batches, callback) {
|
|
80
|
+
return {
|
|
81
|
+
async *[Symbol.asyncIterator]() {
|
|
82
|
+
for (const batch of batches) {
|
|
83
|
+
yield await callback(batch);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.batchIterator = batchIterator;
|
|
89
|
+
/**
|
|
90
|
+
* Separates upserts into levels. Level 0 has no dependencies on other levels.
|
|
91
|
+
* Level 1 depends on Level 0, 2 on 1 and so on.
|
|
92
|
+
*/
|
|
93
|
+
function toLevels(upserts) {
|
|
94
|
+
const withLevel = (0, lodash_1.flatMap)(upserts, (u) => addLevel(u));
|
|
95
|
+
const byLevel = (0, lodash_1.groupBy)(withLevel, (tuple) => tuple[1]);
|
|
96
|
+
const result = [];
|
|
97
|
+
Object.keys(byLevel)
|
|
98
|
+
.sort()
|
|
99
|
+
.forEach((level) => {
|
|
100
|
+
result.push((0, lodash_1.unzip)(byLevel[level])[0]);
|
|
101
|
+
});
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
exports.toLevels = toLevels;
|
|
105
|
+
/**
|
|
106
|
+
* Converts an Upsert (which is a tree structure) into an array of tuples.
|
|
107
|
+
* Each tuple contains an Upsert and its level in the tree structure.
|
|
108
|
+
* The level indicates the number of steps from a leaf where leaves are level 0.
|
|
109
|
+
* If an Upsert has multiple paths to a leaf, the level is the maximum number of
|
|
110
|
+
* steps.
|
|
111
|
+
*/
|
|
112
|
+
function addLevel(u) {
|
|
113
|
+
const result = [];
|
|
114
|
+
let maxAncestorLevel = 0;
|
|
115
|
+
for (const ancestor of Object.values(u.foreignKeys)) {
|
|
116
|
+
if (ancestor.model === u.model) {
|
|
117
|
+
const ancestorsWithLevels = addLevel(ancestor);
|
|
118
|
+
maxAncestorLevel = (0, lodash_1.max)([ancestorsWithLevels[0][1], maxAncestorLevel]);
|
|
119
|
+
result.push(...ancestorsWithLevels);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const thisLevel = result.length ? maxAncestorLevel + 1 : 0;
|
|
123
|
+
result.unshift([u, thisLevel]);
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Client for writing records as GraphQL mutations. The client supports 3
|
|
128
|
+
* kinds of writes: Upserts, Updates and Deletes.
|
|
129
|
+
*
|
|
130
|
+
* For upserts, the high-level algorithm is:
|
|
131
|
+
*
|
|
132
|
+
* > For each record, build a tree of Upserts. The tree has more than one node if the current record represents a
|
|
133
|
+
* nested entity (e.g. branch record referencing repo which, in-turn, references org).
|
|
134
|
+
* > Buffer Upserts and index each by model (e.g. vcs_Branch)
|
|
135
|
+
* > When batch size limit is reached, execute a single insert mutation per model. Start with leaves of Upsert tree.
|
|
136
|
+
* > After inserting a batch, copy the id of each record back to the Upsert object. When inserting subsequent batches,
|
|
137
|
+
* required foreign keys will be read from the Upsert tree and copied to the appropriate batch mutation.
|
|
138
|
+
*
|
|
139
|
+
* Note: there is a complication in this algorithm for self-referent models (i.e. org_Employee's manager relationship).
|
|
140
|
+
* For these models, we split the batch into "levels". The first level consists of records with no dependencies on
|
|
141
|
+
* records of the same type. The second depends on the first and so on.
|
|
142
|
+
*
|
|
143
|
+
* For Updates and Deletes (which are much less frequent) we have a separate write buffer. This buffer is
|
|
144
|
+
* flushed if it reaches capacity. There is no attempt to combine these into bulk mutations (as done w/ upserts).
|
|
145
|
+
*/
|
|
13
146
|
class GraphQLClient {
|
|
14
|
-
constructor(logger, schemaLoader, backend,
|
|
147
|
+
constructor(logger, schemaLoader, backend, upsertBatchSize = 1000, mutationBatchSize = 1) {
|
|
15
148
|
this.writeBuffer = [];
|
|
149
|
+
this.upsertBuffer = new UpsertBuffer();
|
|
150
|
+
this.selfReferentModels = new Set();
|
|
16
151
|
this.logger = logger;
|
|
17
152
|
this.schemaLoader = schemaLoader;
|
|
18
153
|
this.backend = backend;
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
getBatchSize() {
|
|
22
|
-
return this.batchSize;
|
|
154
|
+
this.upsertBatchSize = upsertBatchSize;
|
|
155
|
+
this.mutationBatchSize = mutationBatchSize;
|
|
23
156
|
}
|
|
24
157
|
async healthCheck() {
|
|
25
158
|
try {
|
|
@@ -31,7 +164,18 @@ class GraphQLClient {
|
|
|
31
164
|
}
|
|
32
165
|
async loadSchema() {
|
|
33
166
|
this.schema = await this.schemaLoader.loadSchema();
|
|
167
|
+
// various derivative values of schema
|
|
34
168
|
this.tableNames = new Set(this.schema.tableNames);
|
|
169
|
+
this.tableDependencies = [...this.schema.sortedModelDependencies];
|
|
170
|
+
(0, lodash_1.reverse)(this.tableDependencies);
|
|
171
|
+
// self-referent models
|
|
172
|
+
for (const [model, modelRefs] of Object.entries(this.schema.references)) {
|
|
173
|
+
for (const reference of Object.values(modelRefs)) {
|
|
174
|
+
if (reference.model === model) {
|
|
175
|
+
this.selfReferentModels.add(model);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
35
179
|
}
|
|
36
180
|
checkSchema() {
|
|
37
181
|
if (!this.schema) {
|
|
@@ -70,11 +214,69 @@ class GraphQLClient {
|
|
|
70
214
|
if (!this.tableNames.has(model)) {
|
|
71
215
|
throw new verror_1.VError(`Table ${model} does not exist`);
|
|
72
216
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
217
|
+
this.addUpsert(model, origin, record);
|
|
218
|
+
if (this.upsertBuffer.size() >= this.upsertBatchSize) {
|
|
219
|
+
await this.flushUpsertBuffer();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
async flushUpsertBuffer() {
|
|
223
|
+
try {
|
|
224
|
+
await this.doFlushUpsertBuffer();
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
const numRemoved = this.upsertBuffer.clear();
|
|
228
|
+
throw new verror_1.VError(e, 'failed to flush upsert buffer. abandoned %d records', numRemoved);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
async execUpsert(model, op) {
|
|
232
|
+
// write batch
|
|
233
|
+
const opGql = (0, json_to_graphql_query_1.jsonToGraphQLQuery)(op.query);
|
|
234
|
+
const start = Date.now();
|
|
235
|
+
const opRes = await this.backend.postQuery(opGql);
|
|
236
|
+
const end = Date.now();
|
|
237
|
+
// extract ids of newly written records and set on upserts.
|
|
238
|
+
// the ids are used as foreign keys by subsequent batches
|
|
239
|
+
// step 1: access array of results
|
|
240
|
+
// will be at path 'opRes.data.insert_<model>.returning'
|
|
241
|
+
const paths = (0, lodash_1.keys)(opRes.data);
|
|
242
|
+
(0, ts_essentials_1.assert)(paths.length === 1, `expected one element in ${paths}`);
|
|
243
|
+
const objects = (0, lodash_1.get)(opRes.data, `${paths[0]}.returning`);
|
|
244
|
+
(0, ts_essentials_1.assert)(Array.isArray(objects), `expected array`);
|
|
245
|
+
for (const obj of objects) {
|
|
246
|
+
// step 2: assign id to all upserts related to this object
|
|
247
|
+
// construct key from returned result and lookup upsert by key
|
|
248
|
+
const key = this.serializedPrimaryKey(model, obj);
|
|
249
|
+
const upserts = op.upsertsByKey.get(key);
|
|
250
|
+
(0, ts_essentials_1.assert)(upserts, `failed to resolve upserts for ${model} and ${key}`);
|
|
251
|
+
(0, ts_essentials_1.assert)(obj.id, `failed to resolve id for ${model} and ${JSON.stringify(obj)}`);
|
|
252
|
+
upserts.forEach((u) => (u.id = obj.id));
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
model,
|
|
256
|
+
numObjects: objects.length,
|
|
257
|
+
durationMs: end - start,
|
|
76
258
|
};
|
|
77
|
-
|
|
259
|
+
}
|
|
260
|
+
async doFlushUpsertBuffer() {
|
|
261
|
+
for (const model of this.tableDependencies) {
|
|
262
|
+
const modelUpserts = this.upsertBuffer.pop(model);
|
|
263
|
+
if (modelUpserts) {
|
|
264
|
+
const withLevels = this.selfReferentModels.has(model)
|
|
265
|
+
? toLevels(modelUpserts)
|
|
266
|
+
: [modelUpserts];
|
|
267
|
+
const iterator = batchIterator(withLevels, (batch) => {
|
|
268
|
+
return this.execUpsert(model, this.toUpsertOp(model, batch));
|
|
269
|
+
});
|
|
270
|
+
try {
|
|
271
|
+
for await (const result of iterator) {
|
|
272
|
+
this.logger.debug(`executed ${model} upsert with ${result.numObjects} object(s) in ${result.durationMs}ms`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (e) {
|
|
276
|
+
throw new verror_1.VError(e, `failed to write upserts for ${model}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
78
280
|
}
|
|
79
281
|
async writeTimestampedRecord(record) {
|
|
80
282
|
switch (record.operation) {
|
|
@@ -121,11 +323,19 @@ class GraphQLClient {
|
|
|
121
323
|
query,
|
|
122
324
|
errorMsg,
|
|
123
325
|
});
|
|
124
|
-
if (this.writeBuffer.length >= this.
|
|
326
|
+
if (this.writeBuffer.length >= this.mutationBatchSize) {
|
|
125
327
|
await this.flush();
|
|
126
328
|
}
|
|
127
329
|
}
|
|
128
330
|
async flush() {
|
|
331
|
+
// sequentially flush upsert then write buffer
|
|
332
|
+
// we do this sequentially because we may have updates
|
|
333
|
+
// that operate on records in the upsert buffers and
|
|
334
|
+
// therefore need the upserts written first
|
|
335
|
+
await this.flushUpsertBuffer();
|
|
336
|
+
await this.flushWriteBuffer();
|
|
337
|
+
}
|
|
338
|
+
async flushWriteBuffer() {
|
|
129
339
|
const queries = this.writeBuffer.map((op) => op.query);
|
|
130
340
|
const gql = GraphQLClient.batchMutation(queries);
|
|
131
341
|
if (gql) {
|
|
@@ -224,6 +434,96 @@ class GraphQLClient {
|
|
|
224
434
|
on_conflict: this.createConflictClause(model, nested),
|
|
225
435
|
};
|
|
226
436
|
}
|
|
437
|
+
addUpsert(model, origin, record) {
|
|
438
|
+
const object = {};
|
|
439
|
+
const foreignKeys = {};
|
|
440
|
+
for (const [field, value] of Object.entries(record)) {
|
|
441
|
+
const nestedModel = this.schema.references[model][field];
|
|
442
|
+
if (nestedModel && value) {
|
|
443
|
+
foreignKeys[field] = this.addUpsert(nestedModel.model, origin, value);
|
|
444
|
+
}
|
|
445
|
+
else {
|
|
446
|
+
const val = this.formatFieldValue(model, field, value);
|
|
447
|
+
if (!(0, lodash_1.isNil)(val))
|
|
448
|
+
object[field] = val;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
object['origin'] = origin;
|
|
452
|
+
const upsert = {
|
|
453
|
+
model,
|
|
454
|
+
object,
|
|
455
|
+
foreignKeys: foreignKeys,
|
|
456
|
+
};
|
|
457
|
+
// index by model
|
|
458
|
+
this.upsertBuffer.add(upsert);
|
|
459
|
+
return upsert;
|
|
460
|
+
}
|
|
461
|
+
objectWithForeignKeys(upsert) {
|
|
462
|
+
if ((0, lodash_1.isEmpty)(upsert.foreignKeys)) {
|
|
463
|
+
return upsert.object;
|
|
464
|
+
}
|
|
465
|
+
// for each FK, copy id of related upsert to FK field
|
|
466
|
+
// the upsert's id was populated after the associated batch
|
|
467
|
+
// was written in doFlushUpsertBuffer
|
|
468
|
+
const result = (0, lodash_1.clone)(upsert.object);
|
|
469
|
+
for (const [relName, fkUpsert] of Object.entries(upsert.foreignKeys)) {
|
|
470
|
+
// foreign key was constructed from schema so the following is safe to access
|
|
471
|
+
const fkField = this.schema.references[upsert.model][relName].foreignKey;
|
|
472
|
+
const fkValue = fkUpsert.id;
|
|
473
|
+
(0, ts_essentials_1.assert)(!(0, lodash_1.isNil)(fkValue), `failed to resolve fk value for ${relName} from ${JSON.stringify(fkUpsert)}`);
|
|
474
|
+
result[fkField] = fkValue;
|
|
475
|
+
}
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* returns serialized version of keys fields
|
|
480
|
+
*/
|
|
481
|
+
serializedPrimaryKey(model, obj) {
|
|
482
|
+
return serialize(strictPick(obj, this.schema.primaryKeys[model]));
|
|
483
|
+
}
|
|
484
|
+
toUpsertOp(model, modelUpserts) {
|
|
485
|
+
const upsertsByKey = new Map();
|
|
486
|
+
// add FKs and index upsert by primary key
|
|
487
|
+
// the index is needed after write to find source
|
|
488
|
+
// upsert and set id
|
|
489
|
+
const all = modelUpserts.map((u) => {
|
|
490
|
+
const fullObj = this.objectWithForeignKeys(u);
|
|
491
|
+
const key = this.serializedPrimaryKey(model, fullObj);
|
|
492
|
+
const upsertsForKey = upsertsByKey.get(key);
|
|
493
|
+
if (!upsertsForKey) {
|
|
494
|
+
upsertsByKey.set(key, [u]);
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
upsertsForKey.push(u);
|
|
498
|
+
}
|
|
499
|
+
return fullObj;
|
|
500
|
+
});
|
|
501
|
+
const primaryKeys = this.schema.primaryKeys[model];
|
|
502
|
+
// there can be multiple records that represent the
|
|
503
|
+
// same object. merge all records into one
|
|
504
|
+
const objects = mergeByPrimaryKey(all, primaryKeys);
|
|
505
|
+
const keysObj = primaryKeys
|
|
506
|
+
.sort()
|
|
507
|
+
.reduce((a, v) => ({ ...a, [v]: true }), {});
|
|
508
|
+
const mutation = {
|
|
509
|
+
mutation: {
|
|
510
|
+
[`insert_${model}`]: {
|
|
511
|
+
__args: {
|
|
512
|
+
objects,
|
|
513
|
+
on_conflict: this.createConflictClause(model, false),
|
|
514
|
+
},
|
|
515
|
+
returning: {
|
|
516
|
+
id: true,
|
|
517
|
+
...keysObj,
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
};
|
|
522
|
+
return {
|
|
523
|
+
query: mutation,
|
|
524
|
+
upsertsByKey,
|
|
525
|
+
};
|
|
526
|
+
}
|
|
227
527
|
formatFieldValue(model, field, value) {
|
|
228
528
|
if ((0, lodash_1.isNil)(value))
|
|
229
529
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/common/graphql-client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqC;AAGrC,iEAAmE;AACnE,mCAAuD;AACvD,wDAAgC;AAEhC,mCAA8B;AAE9B,mCAMiB;AAiBjB,MAAa,aAAa;IASxB,YACE,MAAqB,EACrB,YAA0B,EAC1B,OAAuB,EACvB,SAAS,GAAG,CAAC;QANE,gBAAW,GAAc,EAAE,CAAC;QAQ3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,eAAM,CAAC,CAAC,EAAE,wCAAwC,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,eAAM,CACd,0DAA0D,CAC3D,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,MAA6B;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAA,qBAAY,EAC9B,IAAI,CAAC,MAAM,CAAC,uBAAuB,EACnC,MAAM,CACP,EAAE;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,oBAAoB,MAAM,EAAE,CAAC,CAAC;YACjE,MAAM,gBAAgB,GAAG;gBACvB,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;gBACrB,IAAI,EAAE;oBACJ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;wBAChD,OAAO;4BACL,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;yBACf,CAAC;oBACJ,CAAC,CAAC;iBACH;aACF,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE;oBACnB,MAAM,EAAE;wBACN,KAAK,EAAE;4BACL,IAAI,EAAE,EAAC,GAAG,gBAAgB,EAAC;yBAC5B;qBACF;oBACD,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAClB,EAAC,QAAQ,EAAC,EACV,mBAAmB,KAAK,oBAAoB,MAAM,EAAE,CACrD,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAAa,EACb,MAAuB,EACvB,MAAc;QAEd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,IAAI,eAAM,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC;SACnD;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG;YACf,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAC;SACjD,CAAC;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,EAAE,mBAAmB,KAAK,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAyB;QACpD,QAAQ,MAAM,CAAC,SAAS,EAAE;YACxB,KAAK,iBAAS,CAAC,MAAM;gBACnB,MAAM,IAAI,CAAC,WAAW,CACpB,MAAM,CAAC,KAAK,EACX,MAAuB,CAAC,IAAI,EAC7B,MAAM,CAAC,MAAM,CACd,CAAC;gBACF,MAAM;YACR,KAAK,iBAAS,CAAC,MAAM;gBACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAsB,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,iBAAS,CAAC,QAAQ;gBACrB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAwB,CAAC,CAAC;gBACzD,MAAM;YACR;gBACE,MAAM,IAAI,eAAM,CACd,yBAAyB,MAAM,CAAC,SAAS,QAAQ,MAAM,EAAE,CAC1D,CAAC;SACL;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAoB;QAClD,MAAM,QAAQ,GAAG;YACf,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC1B,MAAM,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACzD,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAC7B,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,CACb,CAAC,MAAM;iBACT;gBACD,SAAS,EAAE;oBACT,EAAE,EAAE,IAAI;iBACT;aACF;SACF,CAAC;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,EAAE,oBAAoB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAsB;QACtD,MAAM,QAAQ,GAAG;YACf,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC1B,MAAM,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;iBAC1D;gBACD,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,EAAE,oBAAoB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAAgB;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,GAAG,CAAC,MAAM,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6BAA6B,IAAI,CAAC,SAAS,CACzC,GAAG,CAAC,MAAM,CACX,YAAY,GAAG,EAAE,CACnB,CAAC;gBACF,+DAA+D;gBAC/D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;oBACjC,MAAM,KAAK,GAAG,IAAA,0CAAkB,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,KAAK,CAAC,MAAM,EAAE;wBAChB,MAAM,IAAI,eAAM,CACd,GAAG,EAAE,CAAC,QAAQ,gBAAgB,KAAK,MAAM,IAAI,CAAC,SAAS,CACrD,KAAK,CAAC,MAAM,CACb,EAAE,CACJ,CAAC;qBACH;iBACF;aACF;iBAAM;gBACL,sBAAsB;gBACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,aAAa,CAAC,OAAc;QACjC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC5C,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG;wBACpB,UAAU,EAAE,SAAS;wBACrB,GAAG,SAAS;qBACb,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,OAAO,IAAA,0CAAkB,EAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;aACjD;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,iBAAiB,CACvB,KAAa,EACb,MAAuB;QAEvB,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,KAAK,EAAE;gBACxB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAC7C,WAAW,CAAC,KAAK,EACjB,KAAK,CACN,CAAC;aACH;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,GAAG;oBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC;aAClC;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,oBAAoB,CAC1B,KAAa,EACb,MAAc,EACd,MAAuB,EACvB,MAAgB;QAMhB,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,KAAK,EAAE;gBACxB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAChD,WAAW,CAAC,KAAK,EACjB,MAAM,EACN,KAAK,EACL,IAAI,CACL,CAAC;aACH;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAA,cAAK,EAAC,GAAG,CAAC;oBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;aACnC;SACF;QACD,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACvB,OAAO;YACL,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG;YACjC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;SACtD,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,KAAa,EAAE,KAAa,EAAE,KAAU;QAC/D,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,IAAI,KAAK,aAAa,EAAE;YAC1B,wFAAwF;YACxF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/D;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5D,OAAO,IAAA,kBAAQ,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAgB,GAAG;gBAC5C,IAAI,GAAG,YAAY,IAAI,EAAE;oBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC5B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,oBAAoB,CAC1B,KAAa,EACb,MAAgB;QAEhB,MAAM,aAAa,GAAG,MAAM;YAC1B,CAAC,CAAC,CAAC,aAAa,CAAC;YACjB,CAAC,CAAC,IAAA,mBAAU,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAC/B,CAAC;QACN,OAAO;YACL,UAAU,EAAE,IAAI,gCAAQ,CAAC,GAAG,KAAK,OAAO,CAAC;YACzC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,gCAAQ,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AApUD,sCAoUC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,OAAO,qBAAU,CAAC,QAAQ,CAAC,qBAAU,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/common/graphql-client.ts"],"names":[],"mappings":"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"}
|
package/lib/destination.js
CHANGED
|
@@ -90,7 +90,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
90
90
|
try {
|
|
91
91
|
const backend = new hasura_backend_1.HasuraBackend(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret, this.makeHttpAgents(config.keep_alive));
|
|
92
92
|
const schemaLoader = new faros_feeds_sdk_1.HasuraSchemaLoader(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret);
|
|
93
|
-
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.community_graphql_batch_size);
|
|
93
|
+
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.community_graphql_batch_size, config.edition_configs.community_graphql_mutation_batch_size);
|
|
94
94
|
}
|
|
95
95
|
catch (e) {
|
|
96
96
|
throw new verror_1.VError(`Failed to initialize Hasura Client. Error: ${e}`);
|
|
@@ -184,7 +184,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
184
184
|
return await client.gqlSchema();
|
|
185
185
|
},
|
|
186
186
|
};
|
|
187
|
-
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.cloud_graphql_batch_size);
|
|
187
|
+
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.cloud_graphql_batch_size, config.edition_configs.cloud_graphql_mutation_batch_size);
|
|
188
188
|
}
|
|
189
189
|
catch (e) {
|
|
190
190
|
throw new verror_1.VError(`Failed to initialize GraphQLClient. Error: ${e}`);
|
|
@@ -301,7 +301,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
301
301
|
latestStateMessage = await this.writeEntries(streamContext, stdin, streams, converterDependencies, stats);
|
|
302
302
|
}
|
|
303
303
|
else if (this.graphQLClient) {
|
|
304
|
-
this.logger.info(`Using GraphQLClient for
|
|
304
|
+
this.logger.info(`Using GraphQLClient for writer`);
|
|
305
305
|
const graphQLClient = this.getGraphQLClient();
|
|
306
306
|
await graphQLClient.loadSchema();
|
|
307
307
|
await graphQLClient.resetData(origin, deleteModelEntries);
|
package/lib/destination.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../src/destination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../src/destination.ts"],"names":[],"mappings":"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"}
|