@hestia-earth/pipeline-utils 0.15.2 → 0.15.4

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.
@@ -19,7 +19,7 @@ interface IQueries {
19
19
  }
20
20
  export declare const clearCache: () => any;
21
21
  export declare const cacheSearch: (query: any, ...args: any[]) => any;
22
- export declare const execFindNode: (query?: any, keys?: string[]) => Promise<IResult>;
22
+ export declare const execFindNode: (query?: any, keys?: string[]) => Promise<any>;
23
23
  export declare const findNodeByQueries: (type: SchemaType, { must, should }: IQueries, keys?: string[]) => any;
24
24
  export declare const findNodeById: (type: NodeType | SchemaType, id: string, keys?: string[]) => Promise<any>;
25
25
  export declare const findNodeData: (schemas: definitions, { "@context": context, ...node }: any) => {
@@ -2,15 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findNodes = exports.findNodeData = exports.findNodeById = exports.findNodeByQueries = exports.execFindNode = exports.cacheSearch = exports.clearCache = exports.search = exports.cacheEnabled = void 0;
4
4
  const get = require('lodash.get');
5
+ const omit = require('lodash.omit');
5
6
  const pick = require('lodash.pick');
6
7
  const cache = require('memory-cache');
7
8
  const schema_1 = require("@hestia-earth/schema");
8
9
  const json_schema_1 = require("@hestia-earth/json-schema");
9
10
  const utils_1 = require("@hestia-earth/utils");
11
+ const rxjs_1 = require("rxjs");
12
+ const operators_1 = require("rxjs/operators");
10
13
  const log_1 = require("./log");
11
14
  const es_1 = require("./es");
12
15
  const api_1 = require("./api");
13
16
  const utils_2 = require("./utils");
17
+ const maxParallelSearch = +(process.env.SEARCH_PARALLEL_COUNT || '100');
14
18
  const searchNormalizedEnabled = process.env.SEARCH_NORMALIZED === 'true';
15
19
  const cacheMaxSize = +(process.env.CACHE_MAX_SIZE || '0');
16
20
  const cacheEnabled = () => !!process.env.CACHE_MAX_SIZE;
@@ -53,11 +57,12 @@ const cacheSearch = (query, ...args) => {
53
57
  })());
54
58
  };
55
59
  exports.cacheSearch = cacheSearch;
60
+ const mapResult = (result) => (result ? omit(result, ['aggregated', 'aggregatedDataValidated']) : result);
56
61
  const handleResults = (results) => results.every(res => `${res.aggregated}` === 'true')
57
62
  ?
58
- results.find(res => `${res.aggregatedDataValidated}` === 'true') || results[0]
63
+ mapResult(results.find(res => `${res.aggregatedDataValidated}` === 'true') || results[0])
59
64
  : results.length === 1
60
- ? results[0]
65
+ ? mapResult(results[0])
61
66
  : null;
62
67
  const execFindNode = async (query, keys = []) => {
63
68
  const searchMethod = (0, exports.cacheEnabled)() ? exports.cacheSearch : exports.search;
@@ -105,15 +110,13 @@ const findNodeById = async (type, id, keys) => {
105
110
  return node ? pick(node, filteredKeys(keys)) : null;
106
111
  };
107
112
  exports.findNodeById = findNodeById;
108
- const findChildNodes = (schemas, data) => Promise.all(Object.entries(data)
109
- .filter(([key, value]) => !ignoreChildKeys.includes(key) && (0, schema_1.isExpandable)(value))
110
- .map(([key, value]) => ({ key, value: value, isArray: Array.isArray(value) }))
111
- .map(async ({ isArray, key, value }) => {
112
- const res = isArray
113
- ? await Promise.all(value.map(val => ((0, schema_1.isExpandable)(val) ? (0, exports.findNodes)(schemas, val) : val)))
114
- : await (0, exports.findNodes)(schemas, value);
115
- return { [key]: res };
116
- }));
113
+ const findChildNodes = (schemas, data) => (0, rxjs_1.from)(Object.entries(data))
114
+ .pipe((0, operators_1.filter)(([key, value]) => !ignoreChildKeys.includes(key) && (0, schema_1.isExpandable)(value)), (0, operators_1.map)(([key, value]) => ({ key, value: value, isArray: Array.isArray(value) })), (0, operators_1.mergeMap)(({ isArray, key, value }) => isArray
115
+ ? (0, rxjs_1.from)(value).pipe((0, operators_1.map)((val, index) => ({ val, index })), (0, operators_1.mergeMap)(({ val, index }) => (0, schema_1.isExpandable)(val)
116
+ ? (0, rxjs_1.from)((0, exports.findNodes)(schemas, val)).pipe((0, operators_1.map)(res => ({ val: res, index })))
117
+ : (0, rxjs_1.of)({ val, index }), maxParallelSearch), (0, operators_1.toArray)(), (0, operators_1.map)(res => ({ [key]: res.sort((a, b) => a.index - b.index).map(r => r.val) })))
118
+ : (0, rxjs_1.from)((0, exports.findNodes)(schemas, value)).pipe((0, operators_1.map)(res => ({ [key]: res }))), maxParallelSearch), (0, operators_1.reduce)((prev, value) => ({ ...prev, ...value }), {}))
119
+ .toPromise();
117
120
  const findNodeField = (type, field) => searchNormalizedEnabled && [schema_1.SchemaType.Term].includes(type) && ['name'].includes(field)
118
121
  ? `${field}Normalized`
119
122
  : `${field}.keyword`;
@@ -178,7 +181,7 @@ const findNodes = async (schemas, node, top = false, findChildren = true) => {
178
181
  const values = findChildren ? await findChildNodes(schemas, data) : [];
179
182
  const fullData = {
180
183
  ...data,
181
- ...values.reduce((prev, value) => ({ ...prev, ...value }), {}),
184
+ ...values,
182
185
  ...(type !== schema_1.SchemaType.Term && existingId
183
186
  ? {
184
187
  '@type': type,
@@ -1 +1 @@
1
- {"version":3,"file":"find-nodes.js","sourceRoot":"","sources":["../src/find-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-nodes.js","sourceRoot":"","sources":["../src/find-nodes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/pipeline-utils",
3
- "version": "0.15.2",
3
+ "version": "0.15.4",
4
4
  "description": "Utilities for running pipelines",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -33,7 +33,8 @@
33
33
  "aws-sdk": "^2.1692.0",
34
34
  "axios": "^1.4.0",
35
35
  "bson": "^4.7.2",
36
- "lodash.get": "^4.4.0",
36
+ "lodash.get": "^4.4.2",
37
+ "lodash.omit": "^4.5.0",
37
38
  "lodash.pick": "^4.4.0",
38
39
  "memory-cache": "^0.2.0",
39
40
  "mongodb": "^3.7.4",
@@ -56,6 +57,7 @@
56
57
  "@types/aws-lambda": "^8.10.130",
57
58
  "@types/chai": "^4.3.11",
58
59
  "@types/lodash.get": "^4.4.9",
60
+ "@types/lodash.omit": "^4.5.9",
59
61
  "@types/lodash.pick": "^4.4.9",
60
62
  "@types/mocha": "^10.0.6",
61
63
  "@types/mongodb": "^3.6.20",
package/src/find-nodes.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  const get = require('lodash.get');
2
+ const omit = require('lodash.omit');
2
3
  const pick = require('lodash.pick');
3
4
  const cache = require('memory-cache');
4
5
  import { SchemaType, JSON as HestiaJson, isExpandable, NodeType, isTypeValid, isTypeNode } from '@hestia-earth/schema';
5
6
  import { definitions, uniqueProperties, extendableProperties } from '@hestia-earth/json-schema';
6
7
  import { reduceUndefinedValues } from '@hestia-earth/utils';
8
+ import { from, of } from 'rxjs';
9
+ import { filter, map, mergeMap, reduce, toArray } from 'rxjs/operators';
7
10
 
8
11
  import { debug, error } from './log';
9
12
  import { client, indexName } from './es';
10
13
  import { getNode, isEnabled as isApiEnabled } from './api';
11
14
  import { byteSize, isEmpty } from './utils';
12
15
 
16
+ const maxParallelSearch = +(process.env.SEARCH_PARALLEL_COUNT || '100');
13
17
  const searchNormalizedEnabled = process.env.SEARCH_NORMALIZED === 'true';
14
18
  const cacheMaxSize = +(process.env.CACHE_MAX_SIZE || '0');
15
19
  export const cacheEnabled = () => !!process.env.CACHE_MAX_SIZE;
@@ -82,12 +86,20 @@ export const cacheSearch = (query: any, ...args) => {
82
86
  );
83
87
  };
84
88
 
89
+ /**
90
+ * Do not keep additional values used for sorting.
91
+ *
92
+ * @param result {IResult}
93
+ * @returns
94
+ */
95
+ const mapResult = (result?: IResult) => (result ? omit(result, ['aggregated', 'aggregatedDataValidated']) : result);
96
+
85
97
  const handleResults = (results: IResult[]) =>
86
98
  results.every(res => `${res.aggregated}` === 'true')
87
99
  ? // for aggregated data, there can be 2 results: a validated and non validated result.
88
- results.find(res => `${res.aggregatedDataValidated}` === 'true') || results[0]
100
+ mapResult(results.find(res => `${res.aggregatedDataValidated}` === 'true') || results[0])
89
101
  : results.length === 1
90
- ? results[0]
102
+ ? mapResult(results[0])
91
103
  : null;
92
104
 
93
105
  export const execFindNode = async (query?: any, keys: string[] = []) => {
@@ -156,17 +168,32 @@ export const findNodeById = async (type: NodeType | SchemaType, id: string, keys
156
168
  };
157
169
 
158
170
  const findChildNodes = (schemas: definitions, data: any) =>
159
- Promise.all(
160
- Object.entries(data)
161
- .filter(([key, value]) => !ignoreChildKeys.includes(key) && isExpandable(value))
162
- .map(([key, value]) => ({ key, value: value as any, isArray: Array.isArray(value) }))
163
- .map(async ({ isArray, key, value }) => {
164
- const res = isArray
165
- ? await Promise.all(value.map(val => (isExpandable(val) ? findNodes(schemas, val) : val)))
166
- : await findNodes(schemas, value);
167
- return { [key]: res };
168
- })
169
- );
171
+ from(Object.entries(data))
172
+ .pipe(
173
+ filter(([key, value]) => !ignoreChildKeys.includes(key) && isExpandable(value)),
174
+ map(([key, value]) => ({ key, value: value as any, isArray: Array.isArray(value) })),
175
+ mergeMap(
176
+ ({ isArray, key, value }) =>
177
+ isArray
178
+ ? from(value as any[]).pipe(
179
+ // use index to preserve order
180
+ map((val, index) => ({ val, index })),
181
+ mergeMap(
182
+ ({ val, index }) =>
183
+ isExpandable(val)
184
+ ? from(findNodes(schemas, val)).pipe(map(res => ({ val: res, index })))
185
+ : of({ val, index }),
186
+ maxParallelSearch
187
+ ),
188
+ toArray(),
189
+ map(res => ({ [key]: res.sort((a, b) => a.index - b.index).map(r => r.val) }))
190
+ )
191
+ : from(findNodes(schemas, value)).pipe(map(res => ({ [key]: res }))),
192
+ maxParallelSearch
193
+ ),
194
+ reduce((prev, value) => ({ ...prev, ...value }), {})
195
+ )
196
+ .toPromise();
170
197
 
171
198
  const findNodeField = (type: SchemaType, field: string) =>
172
199
  searchNormalizedEnabled && [SchemaType.Term].includes(type) && ['name'].includes(field)
@@ -264,7 +291,7 @@ export const findNodes = async (
264
291
  const values = findChildren ? await findChildNodes(schemas, data) : [];
265
292
  const fullData = {
266
293
  ...data,
267
- ...values.reduce((prev, value) => ({ ...prev, ...value }), {}),
294
+ ...values,
268
295
  ...// for anything but Term, keep original @type/@id or type/id
269
296
  (type !== SchemaType.Term && existingId
270
297
  ? {