@party-stack/foundry-ontology 0.14.0 → 0.14.1
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/meta/actionTypeCollectionOptions.d.ts.map +1 -1
- package/lib/meta/actionTypeCollectionOptions.js +21 -4
- package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
- package/lib/meta/actionTypeIdQuery.test.js +63 -11
- package/lib/meta/actionTypeIdQuery.test.js.map +1 -1
- package/lib/meta/loadActionTypeOmsMetadata.d.ts.map +1 -1
- package/lib/meta/loadActionTypeOmsMetadata.js +27 -14
- package/lib/meta/loadActionTypeOmsMetadata.js.map +1 -1
- package/lib/utils/AsyncIterable.d.ts +1 -0
- package/lib/utils/AsyncIterable.d.ts.map +1 -1
- package/lib/utils/AsyncIterable.js +11 -0
- package/lib/utils/AsyncIterable.js.map +1 -1
- package/lib/utils/AsyncIterable.test.d.ts +2 -0
- package/lib/utils/AsyncIterable.test.d.ts.map +1 -0
- package/lib/utils/AsyncIterable.test.js +17 -0
- package/lib/utils/AsyncIterable.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionTypeCollectionOptions.d.ts","sourceRoot":"","sources":["../../src/meta/actionTypeCollectionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"actionTypeCollectionOptions.d.ts","sourceRoot":"","sources":["../../src/meta/actionTypeCollectionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,YAAY,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAkB,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAUvF,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAGD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO,CAE5E;AAyFD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,CAgCrG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionTypesFullMetadata, } from "@osdk/foundry.ontologies";
|
|
1
|
+
import { ActionTypesFullMetadata, ActionTypesV2, } from "@osdk/foundry.ontologies";
|
|
2
2
|
import { QueryClient } from "@tanstack/query-core";
|
|
3
3
|
import { queryCollectionOptions } from "@tanstack/query-db-collection";
|
|
4
4
|
import * as AsyncIterable from "../utils/AsyncIterable.js";
|
|
@@ -9,13 +9,13 @@ import { loadActionTypeOmsMetadata } from "./loadActionTypeOmsMetadata.js";
|
|
|
9
9
|
export function isNotDeclarativeActionType(actionType) {
|
|
10
10
|
return actionType.operations.length === 0;
|
|
11
11
|
}
|
|
12
|
-
async function
|
|
12
|
+
async function searchActionTypes(client, options) {
|
|
13
13
|
const where = convertActionTypeLoadSubsetFilter(options?.where);
|
|
14
14
|
const orderBy = convertActionTypeLoadSubsetOrderBy(options?.orderBy);
|
|
15
15
|
const canPushDownPagination = !options?.orderBy || orderBy !== undefined;
|
|
16
16
|
const offset = canPushDownPagination ? (options?.offset ?? 0) : 0;
|
|
17
17
|
const limit = canPushDownPagination ? options?.limit : undefined;
|
|
18
|
-
const results = await AsyncIterable.toArray(AsyncIterable.fromPagination((pageSize, pageToken) =>
|
|
18
|
+
const results = await AsyncIterable.toArray(AsyncIterable.fromPagination((pageSize, pageToken) => ActionTypesV2.search(client, client.ontologyRid, {
|
|
19
19
|
where,
|
|
20
20
|
orderBy,
|
|
21
21
|
pageSize,
|
|
@@ -24,6 +24,22 @@ async function searchActionTypesFullMetadata(client, options) {
|
|
|
24
24
|
}, { preview: true }), (page) => page.nextPageToken, (page) => page.data, 100, limit === undefined ? undefined : offset + limit));
|
|
25
25
|
return results.slice(offset, limit === undefined ? undefined : offset + limit);
|
|
26
26
|
}
|
|
27
|
+
async function loadActionTypesFullMetadata(client, actionTypes) {
|
|
28
|
+
const declarativeActionTypes = actionTypes.filter((actionType) => !isNotDeclarativeActionType(actionType));
|
|
29
|
+
const fullMetadataByApiName = new Map();
|
|
30
|
+
const fullMetadata = await AsyncIterable.toArray(AsyncIterable.fromBatches(declarativeActionTypes, async (batch) => (await ActionTypesFullMetadata.getFullMetadataBatch(client, client.ontologyRid, {
|
|
31
|
+
requests: batch.map((actionType) => ({
|
|
32
|
+
actionType: actionType.apiName,
|
|
33
|
+
})),
|
|
34
|
+
}, { preview: true })).data, 100));
|
|
35
|
+
for (const metadata of fullMetadata) {
|
|
36
|
+
fullMetadataByApiName.set(metadata.actionType.apiName, metadata);
|
|
37
|
+
}
|
|
38
|
+
return actionTypes.map((actionType) => fullMetadataByApiName.get(actionType.apiName) ?? {
|
|
39
|
+
actionType,
|
|
40
|
+
fullLogicRules: [],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
27
43
|
export function actionTypeCollectionOptions(opts) {
|
|
28
44
|
return queryCollectionOptions({
|
|
29
45
|
queryClient: opts.queryClient ?? new QueryClient(),
|
|
@@ -31,7 +47,8 @@ export function actionTypeCollectionOptions(opts) {
|
|
|
31
47
|
queryKey: ["foundry", "ontology", "actionTypes"],
|
|
32
48
|
syncMode: "on-demand",
|
|
33
49
|
queryFn: async (ctx) => {
|
|
34
|
-
const
|
|
50
|
+
const actionTypes = await searchActionTypes(opts.client, ctx.meta?.loadSubsetOptions);
|
|
51
|
+
const actionTypeMetadata = await loadActionTypesFullMetadata(opts.client, actionTypes);
|
|
35
52
|
const omsMetadata = await loadActionTypeOmsMetadata(opts.client, actionTypeMetadata.map((metadata) => metadata.actionType.rid));
|
|
36
53
|
return actionTypeMetadata.map((metadata) => convertFoundryMetaActionType(metadata, omsMetadata.get(metadata.actionType.rid)));
|
|
37
54
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionTypeCollectionOptions.js","sourceRoot":"","sources":["../../src/meta/actionTypeCollectionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,
|
|
1
|
+
{"version":3,"file":"actionTypeCollectionOptions.js","sourceRoot":"","sources":["../../src/meta/actionTypeCollectionOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
4
4
|
import { createFoundryMetaOntologyBackendAdapter } from "./createFoundryMetaOntologyBackendAdapter.js";
|
|
5
5
|
const mocks = vi.hoisted(() => ({
|
|
6
6
|
bulkLoadOntologyEntities: vi.fn(),
|
|
7
|
+
getFullMetadataBatch: vi.fn(),
|
|
7
8
|
searchActionTypes: vi.fn(),
|
|
8
9
|
}));
|
|
9
10
|
vi.mock("@osdk/client.unstable", () => ({
|
|
@@ -13,9 +14,13 @@ vi.mock("@osdk/foundry.ontologies", async (importOriginal) => {
|
|
|
13
14
|
const original = await importOriginal();
|
|
14
15
|
return {
|
|
15
16
|
...original,
|
|
17
|
+
ActionTypesV2: {
|
|
18
|
+
...original.ActionTypesV2,
|
|
19
|
+
search: mocks.searchActionTypes,
|
|
20
|
+
},
|
|
16
21
|
ActionTypesFullMetadata: {
|
|
17
22
|
...original.ActionTypesFullMetadata,
|
|
18
|
-
|
|
23
|
+
getFullMetadataBatch: mocks.getFullMetadataBatch,
|
|
19
24
|
},
|
|
20
25
|
};
|
|
21
26
|
});
|
|
@@ -27,25 +32,23 @@ const client = {
|
|
|
27
32
|
};
|
|
28
33
|
beforeEach(() => {
|
|
29
34
|
mocks.bulkLoadOntologyEntities.mockReset();
|
|
35
|
+
mocks.getFullMetadataBatch.mockReset();
|
|
30
36
|
mocks.searchActionTypes.mockReset();
|
|
31
37
|
mocks.bulkLoadOntologyEntities.mockResolvedValue({
|
|
32
38
|
actionTypes: [],
|
|
33
39
|
});
|
|
34
40
|
});
|
|
35
41
|
describe("Foundry ActionType metadata ID queries", () => {
|
|
36
|
-
it("
|
|
42
|
+
it("includes a function-backed action returned by ActionTypesV2.search", async () => {
|
|
37
43
|
mocks.searchActionTypes.mockResolvedValue({
|
|
38
44
|
data: [
|
|
39
45
|
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
operations: [],
|
|
47
|
-
},
|
|
48
|
-
fullLogicRules: [],
|
|
46
|
+
apiName: "create-task",
|
|
47
|
+
displayName: "Create task",
|
|
48
|
+
status: "ACTIVE",
|
|
49
|
+
parameters: {},
|
|
50
|
+
rid: "ri.actions.main.action-type.create-task",
|
|
51
|
+
operations: [],
|
|
49
52
|
},
|
|
50
53
|
],
|
|
51
54
|
nextPageToken: undefined,
|
|
@@ -64,6 +67,7 @@ describe("Foundry ActionType metadata ID queries", () => {
|
|
|
64
67
|
value: "ri.actions.main.action-type.create-task",
|
|
65
68
|
},
|
|
66
69
|
}), { preview: true });
|
|
70
|
+
expect(mocks.getFullMetadataBatch).not.toHaveBeenCalled();
|
|
67
71
|
expect(rows).toEqual([
|
|
68
72
|
expect.objectContaining({
|
|
69
73
|
id: "ri.actions.main.action-type.create-task",
|
|
@@ -75,5 +79,53 @@ describe("Foundry ActionType metadata ID queries", () => {
|
|
|
75
79
|
await meta.cleanup();
|
|
76
80
|
}
|
|
77
81
|
});
|
|
82
|
+
it("loads declarative action metadata in batches", async () => {
|
|
83
|
+
const actionType = {
|
|
84
|
+
apiName: "create-task",
|
|
85
|
+
displayName: "Create task",
|
|
86
|
+
status: "ACTIVE",
|
|
87
|
+
parameters: {},
|
|
88
|
+
rid: "ri.actions.main.action-type.create-task",
|
|
89
|
+
operations: [
|
|
90
|
+
{
|
|
91
|
+
type: "createObject",
|
|
92
|
+
objectTypeApiName: "Task",
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
mocks.searchActionTypes.mockResolvedValue({
|
|
97
|
+
data: [actionType],
|
|
98
|
+
nextPageToken: undefined,
|
|
99
|
+
});
|
|
100
|
+
mocks.getFullMetadataBatch.mockResolvedValue({
|
|
101
|
+
data: [
|
|
102
|
+
{
|
|
103
|
+
actionType,
|
|
104
|
+
fullLogicRules: [],
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
const meta = await createMetaLiveOntology({
|
|
109
|
+
backend: () => createFoundryMetaOntologyBackendAdapter({
|
|
110
|
+
client,
|
|
111
|
+
}),
|
|
112
|
+
persistObjects: false,
|
|
113
|
+
});
|
|
114
|
+
try {
|
|
115
|
+
await queryOnce((q) => q.from({
|
|
116
|
+
ActionType: meta.objects.ActionType,
|
|
117
|
+
}));
|
|
118
|
+
expect(mocks.getFullMetadataBatch).toHaveBeenCalledWith(expect.anything(), "ri.ontology.main.ontology.example", {
|
|
119
|
+
requests: [
|
|
120
|
+
{
|
|
121
|
+
actionType: "create-task",
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
}, { preview: true });
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
await meta.cleanup();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
78
130
|
});
|
|
79
131
|
//# sourceMappingURL=actionTypeIdQuery.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionTypeIdQuery.test.js","sourceRoot":"","sources":["../../src/meta/actionTypeIdQuery.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,uCAAuC,EAAE,MAAM,8CAA8C,CAAC;AAEvG,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5B,wBAAwB,EAAE,EAAE,CAAC,EAAE,EAAE;IACjC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC7B,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;CAC3D,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACzD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAA6C,CAAC;IACnF,OAAO;QACH,GAAG,QAAQ;QACX,
|
|
1
|
+
{"version":3,"file":"actionTypeIdQuery.test.js","sourceRoot":"","sources":["../../src/meta/actionTypeIdQuery.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadActionTypeOmsMetadata.d.ts","sourceRoot":"","sources":["../../src/meta/loadActionTypeOmsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"loadActionTypeOmsMetadata.d.ts","sourceRoot":"","sources":["../../src/meta/loadActionTypeOmsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAMlE,KAAK,gBAAgB,GAAG,OAAO,CAC3B,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAC9C,CAAC;AACF,KAAK,sBAAsB,GAAG,WAAW,CACrC,gBAAgB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAC1C,CAAC;AACF,KAAK,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;AAK1D,MAAM,WAAW,qBAAqB;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,2BAA2B,EAAE,WAAW,CACpC,MAAM,EACN,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9B,CAAC;CACL;AAwBD,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAqO7C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { bulkLoadOntologyEntities } from "@osdk/client.unstable";
|
|
2
|
+
import * as AsyncIterable from "../utils/AsyncIterable.js";
|
|
2
3
|
const ONTOLOGY_METADATA_API_PATH = "/ontology-metadata/api";
|
|
3
4
|
const OMS_BULK_LOAD_LIMIT = 100;
|
|
4
5
|
function objectTypeDependencyKey(dependency) {
|
|
@@ -18,11 +19,12 @@ export async function loadActionTypeOmsMetadata(client, actionTypeRids) {
|
|
|
18
19
|
tokenProvider: client.tokenProvider,
|
|
19
20
|
fetchFn: client.fetch,
|
|
20
21
|
};
|
|
21
|
-
for (
|
|
22
|
-
const rids = actionTypeRids.slice(index, index + OMS_BULK_LOAD_LIMIT);
|
|
22
|
+
for await (const [rid, result] of AsyncIterable.fromBatches(actionTypeRids, async (rids) => {
|
|
23
23
|
try {
|
|
24
24
|
const response = await bulkLoadOntologyEntities(context, undefined, {
|
|
25
|
-
actionTypes: rids.map((rid) => ({
|
|
25
|
+
actionTypes: rids.map((rid) => ({
|
|
26
|
+
rid,
|
|
27
|
+
})),
|
|
26
28
|
datasourceTypes: [],
|
|
27
29
|
linkTypes: [],
|
|
28
30
|
objectTypes: [],
|
|
@@ -30,18 +32,21 @@ export async function loadActionTypeOmsMetadata(client, actionTypeRids) {
|
|
|
30
32
|
interfaceTypes: [],
|
|
31
33
|
typeGroups: [],
|
|
32
34
|
});
|
|
33
|
-
response.actionTypes.
|
|
35
|
+
return response.actionTypes.flatMap((result, resultIndex) => {
|
|
34
36
|
const rid = rids[resultIndex];
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
return rid && result?.actionType
|
|
38
|
+
? [[rid, result]]
|
|
39
|
+
: [];
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
catch (error) {
|
|
41
43
|
// OMS is an unstable/private compatibility API. Public action
|
|
42
44
|
// metadata must remain usable when this endpoint is unavailable.
|
|
43
45
|
console.warn("Failed to load Foundry OMS action metadata; continuing with public metadata.", error);
|
|
46
|
+
return [];
|
|
44
47
|
}
|
|
48
|
+
}, OMS_BULK_LOAD_LIMIT)) {
|
|
49
|
+
actionTypes.set(rid, result);
|
|
45
50
|
}
|
|
46
51
|
const dependencies = new Map();
|
|
47
52
|
for (const { actionType, ontologyVersion, } of actionTypes.values()) {
|
|
@@ -65,14 +70,13 @@ export async function loadActionTypeOmsMetadata(client, actionTypeRids) {
|
|
|
65
70
|
}
|
|
66
71
|
const objectTypes = new Map();
|
|
67
72
|
const allDependencies = [...dependencies.values()];
|
|
68
|
-
for (
|
|
69
|
-
const batch = allDependencies.slice(index, index + OMS_BULK_LOAD_LIMIT);
|
|
73
|
+
for await (const [dependency, objectType,] of AsyncIterable.fromBatches(allDependencies, async (batch) => {
|
|
70
74
|
try {
|
|
71
75
|
const response = await bulkLoadOntologyEntities(context, undefined, {
|
|
72
76
|
actionTypes: [],
|
|
73
77
|
datasourceTypes: [],
|
|
74
78
|
linkTypes: [],
|
|
75
|
-
objectTypes: batch.map(({ objectTypeId, ontologyVersion }) => ({
|
|
79
|
+
objectTypes: batch.map(({ objectTypeId, ontologyVersion, }) => ({
|
|
76
80
|
identifier: {
|
|
77
81
|
type: "objectTypeId",
|
|
78
82
|
objectTypeId,
|
|
@@ -88,16 +92,25 @@ export async function loadActionTypeOmsMetadata(client, actionTypeRids) {
|
|
|
88
92
|
interfaceTypes: [],
|
|
89
93
|
typeGroups: [],
|
|
90
94
|
});
|
|
91
|
-
response.objectTypes.
|
|
95
|
+
return response.objectTypes.flatMap((result, resultIndex) => {
|
|
92
96
|
const dependency = batch[resultIndex];
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
return dependency &&
|
|
98
|
+
result?.objectType
|
|
99
|
+
? [
|
|
100
|
+
[
|
|
101
|
+
dependency,
|
|
102
|
+
result.objectType,
|
|
103
|
+
],
|
|
104
|
+
]
|
|
105
|
+
: [];
|
|
96
106
|
});
|
|
97
107
|
}
|
|
98
108
|
catch (error) {
|
|
99
109
|
console.warn("Failed to load Foundry OMS object metadata; object-property action defaults will be omitted.", error);
|
|
110
|
+
return [];
|
|
100
111
|
}
|
|
112
|
+
}, OMS_BULK_LOAD_LIMIT)) {
|
|
113
|
+
objectTypes.set(objectTypeDependencyKey(dependency), objectType);
|
|
101
114
|
}
|
|
102
115
|
return new Map([...actionTypes].map(([rid, response]) => {
|
|
103
116
|
const propertyApiNamesByParameter = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadActionTypeOmsMetadata.js","sourceRoot":"","sources":["../../src/meta/loadActionTypeOmsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadActionTypeOmsMetadata.js","sourceRoot":"","sources":["../../src/meta/loadActionTypeOmsMetadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function toArray<T>(asyncIterable: AsyncIterable<T>): Promise<T[]>;
|
|
2
|
+
export declare function fromBatches<T, R>(values: readonly T[], getBatch: (batch: T[]) => Promise<readonly R[]>, batchSize: number): AsyncIterable<R>;
|
|
2
3
|
export declare function fromPagination<C extends string | number, P, T>(getPage: (pageSize: number, pageToken?: C) => Promise<P>, getPageToken: (page: P) => C | undefined, getElements: (page: P) => T[] | Promise<T[]>, defaultPageSize: number, limit?: number): AsyncIterable<T>;
|
|
3
4
|
//# sourceMappingURL=AsyncIterable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncIterable.d.ts","sourceRoot":"","sources":["../../src/utils/AsyncIterable.ts"],"names":[],"mappings":"AAGA,wBAAsB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAM9E;AAED,wBAAuB,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EACjE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxD,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,EACxC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAC5C,eAAe,EAAE,MAAM,EACvB,KAAK,GAAE,MAAiB,GACzB,aAAa,CAAC,CAAC,CAAC,CAgBlB"}
|
|
1
|
+
{"version":3,"file":"AsyncIterable.d.ts","sourceRoot":"","sources":["../../src/utils/AsyncIterable.ts"],"names":[],"mappings":"AAGA,wBAAsB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAM9E;AAED,wBAAuB,WAAW,CAAC,CAAC,EAAE,CAAC,EACnC,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAC/C,SAAS,EAAE,MAAM,GAClB,aAAa,CAAC,CAAC,CAAC,CAkBlB;AAED,wBAAuB,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EACjE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxD,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,EACxC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAC5C,eAAe,EAAE,MAAM,EACvB,KAAK,GAAE,MAAiB,GACzB,aAAa,CAAC,CAAC,CAAC,CAgBlB"}
|
|
@@ -7,6 +7,17 @@ export async function toArray(asyncIterable) {
|
|
|
7
7
|
}
|
|
8
8
|
return result;
|
|
9
9
|
}
|
|
10
|
+
export async function* fromBatches(values, getBatch, batchSize) {
|
|
11
|
+
if (!Number.isInteger(batchSize) || batchSize <= 0) {
|
|
12
|
+
throw new RangeError("Batch size must be a positive integer.");
|
|
13
|
+
}
|
|
14
|
+
for (let index = 0; index < values.length; index += batchSize) {
|
|
15
|
+
const results = await getBatch(values.slice(index, index + batchSize));
|
|
16
|
+
for (const result of results) {
|
|
17
|
+
yield result;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
10
21
|
export async function* fromPagination(getPage, getPageToken, getElements, defaultPageSize, limit = Infinity) {
|
|
11
22
|
let pageToken = undefined;
|
|
12
23
|
let hasMore = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncIterable.js","sourceRoot":"","sources":["../../src/utils/AsyncIterable.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,sHAAsH;AACtH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,aAA+B;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACjC,OAAwD,EACxD,YAAwC,EACxC,WAA4C,EAC5C,eAAuB,EACvB,QAAgB,QAAQ;IAExB,IAAI,SAAS,GAAkB,SAAS,CAAC;IACzC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,OAAO,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC;QAClB,CAAC;QACD,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;QACzB,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"AsyncIterable.js","sourceRoot":"","sources":["../../src/utils/AsyncIterable.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,sHAAsH;AACtH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,aAA+B;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAoB,EACpB,QAA+C,EAC/C,SAAiB;IAEjB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAChB,wCAAwC,CAC3C,CAAC;IACN,CAAC;IACD,KACI,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,MAAM,CAAC,MAAM,EACrB,KAAK,IAAI,SAAS,EACpB,CAAC;QACC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CACzC,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,CAAC;QACjB,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACjC,OAAwD,EACxD,YAAwC,EACxC,WAA4C,EAC5C,eAAuB,EACvB,QAAgB,QAAQ;IAExB,IAAI,SAAS,GAAkB,SAAS,CAAC;IACzC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,OAAO,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC;QAClB,CAAC;QACD,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;QACzB,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncIterable.test.d.ts","sourceRoot":"","sources":["../../src/utils/AsyncIterable.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { fromBatches, toArray } from "./AsyncIterable.js";
|
|
3
|
+
describe("fromBatches", () => {
|
|
4
|
+
it("loads inputs in bounded batches and yields returned results", async () => {
|
|
5
|
+
const getBatch = vi.fn((batch) => Promise.resolve(batch.filter((value) => value % 2 === 1)));
|
|
6
|
+
await expect(toArray(fromBatches([1, 2, 3, 4, 5], getBatch, 2))).resolves.toEqual([1, 3, 5]);
|
|
7
|
+
expect(getBatch.mock.calls).toEqual([
|
|
8
|
+
[[1, 2]],
|
|
9
|
+
[[3, 4]],
|
|
10
|
+
[[5]],
|
|
11
|
+
]);
|
|
12
|
+
});
|
|
13
|
+
it("rejects invalid batch sizes", async () => {
|
|
14
|
+
await expect(toArray(fromBatches([1], (batch) => Promise.resolve(batch), 0))).rejects.toThrow("Batch size must be a positive integer.");
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=AsyncIterable.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncIterable.test.js","sourceRoot":"","sources":["../../src/utils/AsyncIterable.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAClB,CAAC,KAAe,EAAE,EAAE,CAChB,OAAO,CAAC,OAAO,CACX,KAAK,CAAC,MAAM,CACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAC7B,CACJ,CACR,CAAC;QAEF,MAAM,MAAM,CACR,OAAO,CACH,WAAW,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,QAAQ,EACR,CAAC,CACJ,CACJ,CACJ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC,CAAC,CAAC;SACR,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,CACR,OAAO,CACH,WAAW,CACP,CAAC,CAAC,CAAC,EACH,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EACjC,CAAC,CACJ,CACJ,CACJ,CAAC,OAAO,CAAC,OAAO,CACb,wCAAwC,CAC3C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@party-stack/foundry-ontology",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"@party-stack/connections": "0.2.2",
|
|
41
41
|
"@party-stack/errors": "0.2.0",
|
|
42
42
|
"@party-stack/foundry-client": "0.3.0",
|
|
43
|
-
"@party-stack/foundry-object-set-watcher": "0.5.0",
|
|
44
43
|
"@party-stack/oauth": "0.2.2",
|
|
44
|
+
"@party-stack/foundry-object-set-watcher": "0.5.0",
|
|
45
45
|
"@party-stack/ontology": "0.15.0",
|
|
46
46
|
"@party-stack/runtime": "0.3.2"
|
|
47
47
|
},
|