@esri/hub-common 12.17.0 → 12.19.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/dist/esm/objects/get-prop.js +81 -5
- package/dist/esm/objects/get-prop.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +46 -4
- package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/node/objects/get-prop.js +81 -6
- package/dist/node/objects/get-prop.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +49 -6
- package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/types/objects/get-prop.d.ts +17 -4
- package/dist/types/search/_internal/portalSearchItems.d.ts +9 -1
- package/package.json +1 -1
|
@@ -1,11 +1,87 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Get a property out of a deeply nested object
|
|
3
|
-
*
|
|
2
|
+
* Get a property out of a deeply nested object. Supports array indexing
|
|
3
|
+
* and property matching.
|
|
4
|
+
*
|
|
5
|
+
* Examples:
|
|
6
|
+
* ```js
|
|
7
|
+
* getProp({a: {b: {c: 1}}}, "a.b.c") => 1
|
|
8
|
+
* getProp({a: {b: {c: 1}}}, "a.b.d") => undefined
|
|
9
|
+
* getProp({a: {b: {c: 1}}}, "a.b") => {c: 1}
|
|
10
|
+
* getProp({a: {b: [1,2]}}, "a.b[0]") => 1
|
|
11
|
+
* getProp({a: {b: {c: 1}, b2: { $use: "a.b"}}, "a.b2") => {c: 1}
|
|
12
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1]") => {key: "y", val:3}
|
|
13
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1].val") => 3
|
|
14
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(key,y)].val") => 3
|
|
15
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(val,1)].key") => "x"
|
|
16
|
+
* ```
|
|
4
17
|
*/
|
|
5
|
-
export
|
|
18
|
+
export const getProp = (obj, path) => {
|
|
6
19
|
return path.split(".").reduce(function (prev, curr) {
|
|
7
|
-
|
|
8
|
-
|
|
20
|
+
const match = curr.match(/\[(.*?)\]$/);
|
|
21
|
+
if (match) {
|
|
22
|
+
const indexOrFnName = match[1];
|
|
23
|
+
const propName = curr.replace(match[0], "");
|
|
24
|
+
if (parseInt(indexOrFnName, 10) > -1) {
|
|
25
|
+
const idx = parseInt(indexOrFnName, 10);
|
|
26
|
+
// check that the array exists and that the index is valid
|
|
27
|
+
if (Array.isArray(prev[propName]) && prev[propName][idx]) {
|
|
28
|
+
return prev[propName][idx];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// we have an operation that we want to apply to the array
|
|
36
|
+
return applyOperation(prev[propName], indexOrFnName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
if (prev && prev[curr] !== undefined) {
|
|
41
|
+
if (prev[curr] !== null && prev[curr].$use) {
|
|
42
|
+
return getProp(obj, prev[curr].$use);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return prev[curr];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
9
52
|
}, obj);
|
|
53
|
+
};
|
|
54
|
+
function applyOperation(arr, operation) {
|
|
55
|
+
// split up the operation into the operationName and the arguments
|
|
56
|
+
// e.g. "findBy(key,'projects')" => ["findBy", "key, 'projects'"]
|
|
57
|
+
const parts = operation.split("(");
|
|
58
|
+
// lots of guards...
|
|
59
|
+
if (!parts || parts.length !== 2)
|
|
60
|
+
return undefined;
|
|
61
|
+
let result;
|
|
62
|
+
const fnName = parts[0];
|
|
63
|
+
const args = parts[1]
|
|
64
|
+
.replace(")", "")
|
|
65
|
+
.split(",")
|
|
66
|
+
.map((p) => p.trim());
|
|
67
|
+
switch (fnName) {
|
|
68
|
+
case "findBy":
|
|
69
|
+
const prop = args[0];
|
|
70
|
+
let val;
|
|
71
|
+
if (isNumeric(args[1])) {
|
|
72
|
+
val = parseFloat(args[1]);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
val = args[1].replace(/'/g, "");
|
|
76
|
+
}
|
|
77
|
+
result = arr.find((p) => p[prop] === val);
|
|
78
|
+
break;
|
|
79
|
+
default:
|
|
80
|
+
result = undefined;
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
function isNumeric(n) {
|
|
85
|
+
return !isNaN(parseFloat(n));
|
|
10
86
|
}
|
|
11
87
|
//# sourceMappingURL=get-prop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-prop.js","sourceRoot":"","sources":["../../../src/objects/get-prop.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"get-prop.js","sourceRoot":"","sources":["../../../src/objects/get-prop.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,34 @@ import HubError from "../../HubError";
|
|
|
10
10
|
import { enrichContentSearchResult } from "../../content";
|
|
11
11
|
import { cloneObject } from "../../util";
|
|
12
12
|
/**
|
|
13
|
-
* @
|
|
13
|
+
* @internal
|
|
14
14
|
* Portal Search Implementation for Items
|
|
15
15
|
* @param query
|
|
16
16
|
* @param options
|
|
17
17
|
* @returns
|
|
18
18
|
*/
|
|
19
19
|
export async function portalSearchItems(query, options) {
|
|
20
|
+
const so = processSearchParams(options, query);
|
|
21
|
+
return searchPortalAsHubSearchResult(so);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
* Portal Search for Items using IQuery and IHubSearchOptions
|
|
26
|
+
* @param query
|
|
27
|
+
* @param options
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export function portalSearchItemsAsItems(query, options) {
|
|
31
|
+
const so = processSearchParams(options, query);
|
|
32
|
+
return searchPortalAsItem(so);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Common preprocessing for search options and the query
|
|
36
|
+
* @param options
|
|
37
|
+
* @param query
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
function processSearchParams(options, query) {
|
|
20
41
|
var _a;
|
|
21
42
|
if (!options.requestOptions) {
|
|
22
43
|
throw new HubError("portalSearchItems", "options.requestOptions is required.");
|
|
@@ -56,7 +77,28 @@ export async function portalSearchItems(query, options) {
|
|
|
56
77
|
so.countFields = options.aggFields.join(",");
|
|
57
78
|
so.countSize = options.aggLimit || 10;
|
|
58
79
|
}
|
|
59
|
-
return
|
|
80
|
+
return so;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Internal portal search, which just returns IItems witn no conversion
|
|
84
|
+
* Due to typescript complexity when adding multiple returns types to a function
|
|
85
|
+
* it is simpler to have two functions that do the almost the same thing.
|
|
86
|
+
* @param searchOptions
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
async function searchPortalAsItem(searchOptions) {
|
|
90
|
+
// Execute portal search
|
|
91
|
+
const resp = await searchItems(searchOptions);
|
|
92
|
+
// convert portal aggregations into hub aggregations
|
|
93
|
+
const aggregations = convertPortalAggregations(resp);
|
|
94
|
+
// Construct the return
|
|
95
|
+
return {
|
|
96
|
+
total: resp.total,
|
|
97
|
+
results: resp.results,
|
|
98
|
+
aggregations,
|
|
99
|
+
hasNext: resp.nextStart > -1,
|
|
100
|
+
next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsItem),
|
|
101
|
+
};
|
|
60
102
|
}
|
|
61
103
|
/**
|
|
62
104
|
* Internal portal search, which then converts `IItem`s to `IHubSearchResult`s
|
|
@@ -65,7 +107,7 @@ export async function portalSearchItems(query, options) {
|
|
|
65
107
|
* @param searchOptions
|
|
66
108
|
* @returns
|
|
67
109
|
*/
|
|
68
|
-
async function
|
|
110
|
+
async function searchPortalAsHubSearchResult(searchOptions) {
|
|
69
111
|
// Execute portal search
|
|
70
112
|
const resp = await searchItems(searchOptions);
|
|
71
113
|
// create mappable fn that will handle the includes
|
|
@@ -82,7 +124,7 @@ async function searchPortal(searchOptions) {
|
|
|
82
124
|
results,
|
|
83
125
|
aggregations,
|
|
84
126
|
hasNext: resp.nextStart > -1,
|
|
85
|
-
next: getNextFunction(searchOptions, resp.nextStart, resp.total,
|
|
127
|
+
next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsHubSearchResult),
|
|
86
128
|
};
|
|
87
129
|
}
|
|
88
130
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAWrD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B
|
|
1
|
+
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,89 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getProp = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Get a property out of a deeply nested object
|
|
6
|
-
*
|
|
5
|
+
* Get a property out of a deeply nested object. Supports array indexing
|
|
6
|
+
* and property matching.
|
|
7
|
+
*
|
|
8
|
+
* Examples:
|
|
9
|
+
* ```js
|
|
10
|
+
* getProp({a: {b: {c: 1}}}, "a.b.c") => 1
|
|
11
|
+
* getProp({a: {b: {c: 1}}}, "a.b.d") => undefined
|
|
12
|
+
* getProp({a: {b: {c: 1}}}, "a.b") => {c: 1}
|
|
13
|
+
* getProp({a: {b: [1,2]}}, "a.b[0]") => 1
|
|
14
|
+
* getProp({a: {b: {c: 1}, b2: { $use: "a.b"}}, "a.b2") => {c: 1}
|
|
15
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1]") => {key: "y", val:3}
|
|
16
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1].val") => 3
|
|
17
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(key,y)].val") => 3
|
|
18
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(val,1)].key") => "x"
|
|
19
|
+
* ```
|
|
7
20
|
*/
|
|
8
|
-
|
|
21
|
+
exports.getProp = (obj, path) => {
|
|
9
22
|
return path.split(".").reduce(function (prev, curr) {
|
|
10
|
-
|
|
11
|
-
|
|
23
|
+
const match = curr.match(/\[(.*?)\]$/);
|
|
24
|
+
if (match) {
|
|
25
|
+
const indexOrFnName = match[1];
|
|
26
|
+
const propName = curr.replace(match[0], "");
|
|
27
|
+
if (parseInt(indexOrFnName, 10) > -1) {
|
|
28
|
+
const idx = parseInt(indexOrFnName, 10);
|
|
29
|
+
// check that the array exists and that the index is valid
|
|
30
|
+
if (Array.isArray(prev[propName]) && prev[propName][idx]) {
|
|
31
|
+
return prev[propName][idx];
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// we have an operation that we want to apply to the array
|
|
39
|
+
return applyOperation(prev[propName], indexOrFnName);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
if (prev && prev[curr] !== undefined) {
|
|
44
|
+
if (prev[curr] !== null && prev[curr].$use) {
|
|
45
|
+
return exports.getProp(obj, prev[curr].$use);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return prev[curr];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
12
55
|
}, obj);
|
|
56
|
+
};
|
|
57
|
+
function applyOperation(arr, operation) {
|
|
58
|
+
// split up the operation into the operationName and the arguments
|
|
59
|
+
// e.g. "findBy(key,'projects')" => ["findBy", "key, 'projects'"]
|
|
60
|
+
const parts = operation.split("(");
|
|
61
|
+
// lots of guards...
|
|
62
|
+
if (!parts || parts.length !== 2)
|
|
63
|
+
return undefined;
|
|
64
|
+
let result;
|
|
65
|
+
const fnName = parts[0];
|
|
66
|
+
const args = parts[1]
|
|
67
|
+
.replace(")", "")
|
|
68
|
+
.split(",")
|
|
69
|
+
.map((p) => p.trim());
|
|
70
|
+
switch (fnName) {
|
|
71
|
+
case "findBy":
|
|
72
|
+
const prop = args[0];
|
|
73
|
+
let val;
|
|
74
|
+
if (isNumeric(args[1])) {
|
|
75
|
+
val = parseFloat(args[1]);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
val = args[1].replace(/'/g, "");
|
|
79
|
+
}
|
|
80
|
+
result = arr.find((p) => p[prop] === val);
|
|
81
|
+
break;
|
|
82
|
+
default:
|
|
83
|
+
result = undefined;
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
function isNumeric(n) {
|
|
88
|
+
return !isNaN(parseFloat(n));
|
|
13
89
|
}
|
|
14
|
-
exports.getProp = getProp;
|
|
15
90
|
//# sourceMappingURL=get-prop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-prop.js","sourceRoot":"","sources":["../../../src/objects/get-prop.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"get-prop.js","sourceRoot":"","sources":["../../../src/objects/get-prop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.portalSearchItems = void 0;
|
|
3
|
+
exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.portalSearchItemsAsItems = exports.portalSearchItems = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
5
|
const serializeQueryForPortal_1 = require("../serializeQueryForPortal");
|
|
6
6
|
const HubPages_1 = require("../../pages/HubPages");
|
|
@@ -13,13 +13,36 @@ const HubError_1 = require("../../HubError");
|
|
|
13
13
|
const content_1 = require("../../content");
|
|
14
14
|
const util_1 = require("../../util");
|
|
15
15
|
/**
|
|
16
|
-
* @
|
|
16
|
+
* @internal
|
|
17
17
|
* Portal Search Implementation for Items
|
|
18
18
|
* @param query
|
|
19
19
|
* @param options
|
|
20
20
|
* @returns
|
|
21
21
|
*/
|
|
22
22
|
async function portalSearchItems(query, options) {
|
|
23
|
+
const so = processSearchParams(options, query);
|
|
24
|
+
return searchPortalAsHubSearchResult(so);
|
|
25
|
+
}
|
|
26
|
+
exports.portalSearchItems = portalSearchItems;
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
* Portal Search for Items using IQuery and IHubSearchOptions
|
|
30
|
+
* @param query
|
|
31
|
+
* @param options
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
function portalSearchItemsAsItems(query, options) {
|
|
35
|
+
const so = processSearchParams(options, query);
|
|
36
|
+
return searchPortalAsItem(so);
|
|
37
|
+
}
|
|
38
|
+
exports.portalSearchItemsAsItems = portalSearchItemsAsItems;
|
|
39
|
+
/**
|
|
40
|
+
* Common preprocessing for search options and the query
|
|
41
|
+
* @param options
|
|
42
|
+
* @param query
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
function processSearchParams(options, query) {
|
|
23
46
|
var _a;
|
|
24
47
|
if (!options.requestOptions) {
|
|
25
48
|
throw new HubError_1.default("portalSearchItems", "options.requestOptions is required.");
|
|
@@ -59,9 +82,29 @@ async function portalSearchItems(query, options) {
|
|
|
59
82
|
so.countFields = options.aggFields.join(",");
|
|
60
83
|
so.countSize = options.aggLimit || 10;
|
|
61
84
|
}
|
|
62
|
-
return
|
|
85
|
+
return so;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Internal portal search, which just returns IItems witn no conversion
|
|
89
|
+
* Due to typescript complexity when adding multiple returns types to a function
|
|
90
|
+
* it is simpler to have two functions that do the almost the same thing.
|
|
91
|
+
* @param searchOptions
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
async function searchPortalAsItem(searchOptions) {
|
|
95
|
+
// Execute portal search
|
|
96
|
+
const resp = await arcgis_rest_portal_1.searchItems(searchOptions);
|
|
97
|
+
// convert portal aggregations into hub aggregations
|
|
98
|
+
const aggregations = portalSearchUtils_1.convertPortalAggregations(resp);
|
|
99
|
+
// Construct the return
|
|
100
|
+
return {
|
|
101
|
+
total: resp.total,
|
|
102
|
+
results: resp.results,
|
|
103
|
+
aggregations,
|
|
104
|
+
hasNext: resp.nextStart > -1,
|
|
105
|
+
next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsItem),
|
|
106
|
+
};
|
|
63
107
|
}
|
|
64
|
-
exports.portalSearchItems = portalSearchItems;
|
|
65
108
|
/**
|
|
66
109
|
* Internal portal search, which then converts `IItem`s to `IHubSearchResult`s
|
|
67
110
|
* handling enrichments & includes along the way
|
|
@@ -69,7 +112,7 @@ exports.portalSearchItems = portalSearchItems;
|
|
|
69
112
|
* @param searchOptions
|
|
70
113
|
* @returns
|
|
71
114
|
*/
|
|
72
|
-
async function
|
|
115
|
+
async function searchPortalAsHubSearchResult(searchOptions) {
|
|
73
116
|
// Execute portal search
|
|
74
117
|
const resp = await arcgis_rest_portal_1.searchItems(searchOptions);
|
|
75
118
|
// create mappable fn that will handle the includes
|
|
@@ -86,7 +129,7 @@ async function searchPortal(searchOptions) {
|
|
|
86
129
|
results,
|
|
87
130
|
aggregations,
|
|
88
131
|
hasNext: resp.nextStart > -1,
|
|
89
|
-
next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total,
|
|
132
|
+
next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsHubSearchResult),
|
|
90
133
|
};
|
|
91
134
|
}
|
|
92
135
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":";;;AAAA,iEAA8E;AAE9E,wEAAqE;AAErE,mDAA8D;AAC9D,6CAA2D;AAC3D,uCAAqD;AAWrD,oCAA2C;AAC3C,2DAAgE;AAChE,uDAAoD;AACpD,6CAAsC;AACtC,2CAA0D;AAC1D,qCAAyC;AAEzC;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B
|
|
1
|
+
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Get a property out of a deeply nested object
|
|
3
|
-
*
|
|
2
|
+
* Get a property out of a deeply nested object. Supports array indexing
|
|
3
|
+
* and property matching.
|
|
4
|
+
*
|
|
5
|
+
* Examples:
|
|
6
|
+
* ```js
|
|
7
|
+
* getProp({a: {b: {c: 1}}}, "a.b.c") => 1
|
|
8
|
+
* getProp({a: {b: {c: 1}}}, "a.b.d") => undefined
|
|
9
|
+
* getProp({a: {b: {c: 1}}}, "a.b") => {c: 1}
|
|
10
|
+
* getProp({a: {b: [1,2]}}, "a.b[0]") => 1
|
|
11
|
+
* getProp({a: {b: {c: 1}, b2: { $use: "a.b"}}, "a.b2") => {c: 1}
|
|
12
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1]") => {key: "y", val:3}
|
|
13
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1].val") => 3
|
|
14
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(key,y)].val") => 3
|
|
15
|
+
* getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(val,1)].key") => "x"
|
|
16
|
+
* ```
|
|
4
17
|
*/
|
|
5
|
-
export declare
|
|
18
|
+
export declare const getProp: (obj: {
|
|
6
19
|
[index: string]: any;
|
|
7
|
-
}, path: string)
|
|
20
|
+
}, path: string) => any;
|
|
@@ -2,13 +2,21 @@ import { IItem } from "@esri/arcgis-rest-portal";
|
|
|
2
2
|
import { IHubRequestOptions } from "../../types";
|
|
3
3
|
import { IHubSearchOptions, IHubSearchResponse, IHubSearchResult, IMatchOptions, IPredicate, IQuery } from "../types";
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
5
|
+
* @internal
|
|
6
6
|
* Portal Search Implementation for Items
|
|
7
7
|
* @param query
|
|
8
8
|
* @param options
|
|
9
9
|
* @returns
|
|
10
10
|
*/
|
|
11
11
|
export declare function portalSearchItems(query: IQuery, options: IHubSearchOptions): Promise<IHubSearchResponse<IHubSearchResult>>;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
* Portal Search for Items using IQuery and IHubSearchOptions
|
|
15
|
+
* @param query
|
|
16
|
+
* @param options
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare function portalSearchItemsAsItems(query: IQuery, options: IHubSearchOptions): Promise<IHubSearchResponse<IItem>>;
|
|
12
20
|
/**
|
|
13
21
|
* Convert an `IItem` to a `IHubSearchResult`
|
|
14
22
|
* Fetches the enrichments, and attaches them as directed in the `include` list
|