@itwin/core-backend 5.5.0-dev.1 → 5.5.0-dev.10
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/CHANGELOG.md +24 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +0 -2
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +11 -2
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +20 -15
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +2 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +0 -2
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +11 -2
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +20 -15
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +2 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +2 -2
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +5 -5
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +39 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +31 -2
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +432 -198
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +272 -190
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts +27 -0
- package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js +136 -0
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js +222 -3
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/StandaloneDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/StandaloneDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/StandaloneDb.test.js +103 -0
- package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.js +43 -0
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/package.json +13 -13
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +0 -11
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +0 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +0 -36
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +0 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +0 -20
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +0 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +0 -126
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +0 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +0 -24
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +0 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +0 -67
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { OpenMode } from "@itwin/core-bentley";
|
|
2
|
-
import { ProfileOptions } from "@itwin/core-common";
|
|
3
|
-
import { SchemaXmlFileLocater } from "@itwin/ecschema-locaters";
|
|
4
|
-
import { SchemaContext, SchemaGraphUtil, SchemaMatchType } from "@itwin/ecschema-metadata";
|
|
5
|
-
import { DOMParser, XMLSerializer } from "@xmldom/xmldom";
|
|
6
|
-
import * as path from "path";
|
|
7
|
-
import { IModelSchemaLocater } from "./IModelSchemaLocater";
|
|
8
|
-
import { BriefcaseDb, IModelDb, StandaloneDb } from "../../../IModelDb";
|
|
9
|
-
import { IModelHost } from "../../../IModelHost";
|
|
10
|
-
import { IModelJsFs } from "../../../IModelJsFs";
|
|
11
|
-
import { KnownTestLocations } from "../../KnownTestLocations";
|
|
12
|
-
export class IncrementalTestHelper {
|
|
13
|
-
static _iModel;
|
|
14
|
-
static context;
|
|
15
|
-
static testBimFile;
|
|
16
|
-
static get iModel() {
|
|
17
|
-
if (this._iModel === undefined)
|
|
18
|
-
throw new Error("iModel not loaded");
|
|
19
|
-
return this._iModel;
|
|
20
|
-
}
|
|
21
|
-
static get isLoaded() {
|
|
22
|
-
return this._iModel !== undefined;
|
|
23
|
-
}
|
|
24
|
-
static async setup(options) {
|
|
25
|
-
if (!IModelHost.isValid)
|
|
26
|
-
await IModelHost.startup({
|
|
27
|
-
incrementalSchemaLoading: "enabled",
|
|
28
|
-
});
|
|
29
|
-
if (this._iModel !== undefined)
|
|
30
|
-
throw new Error("iModel already loaded");
|
|
31
|
-
if (options?.bimName) {
|
|
32
|
-
const pathToBriefCase = path.join(KnownTestLocations.assetsDir, options.bimName);
|
|
33
|
-
this._iModel = await BriefcaseDb.open({
|
|
34
|
-
fileName: pathToBriefCase,
|
|
35
|
-
readonly: true,
|
|
36
|
-
key: "test-iModel",
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.testBimFile = this.initializeTestIModel();
|
|
41
|
-
this._iModel = StandaloneDb.openFile(this.testBimFile, OpenMode.ReadWrite);
|
|
42
|
-
}
|
|
43
|
-
const configuration = IModelHost.configuration;
|
|
44
|
-
if (configuration && options && options.disableSchemaLoading !== undefined) {
|
|
45
|
-
const previousSetting = configuration.incrementalSchemaLoading;
|
|
46
|
-
configuration.incrementalSchemaLoading = options.disableSchemaLoading ? "disabled" : "enabled";
|
|
47
|
-
this._iModel.onBeforeClose.addOnce(() => {
|
|
48
|
-
configuration.incrementalSchemaLoading = previousSetting;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
this.context = new SchemaContext();
|
|
52
|
-
this.context.addLocater(new IModelSchemaLocater(this._iModel));
|
|
53
|
-
const xmlLocater = new SchemaXmlFileLocater();
|
|
54
|
-
xmlLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, "IncrementalSchemaLocater"));
|
|
55
|
-
this.context.addLocater(xmlLocater);
|
|
56
|
-
}
|
|
57
|
-
static async getSchemaNames() {
|
|
58
|
-
const result = new Array();
|
|
59
|
-
const sqlQuery = "SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name";
|
|
60
|
-
const reader = this.iModel.createQueryReader(sqlQuery);
|
|
61
|
-
while (await reader.step()) {
|
|
62
|
-
const name = reader.current[0];
|
|
63
|
-
const versionMajor = reader.current[1];
|
|
64
|
-
const versionWrite = reader.current[2];
|
|
65
|
-
const versionMinor = reader.current[3];
|
|
66
|
-
result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);
|
|
67
|
-
}
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
static initializeTestIModel() {
|
|
71
|
-
const testBim = path.join(KnownTestLocations.assetsDir, "IncrementalSchemaLocater", "test-bim.bim");
|
|
72
|
-
if (IModelJsFs.existsSync(testBim)) {
|
|
73
|
-
~IModelJsFs.removeSync(testBim);
|
|
74
|
-
}
|
|
75
|
-
const localBim = StandaloneDb.createEmpty(testBim, {
|
|
76
|
-
allowEdit: "true",
|
|
77
|
-
rootSubject: {
|
|
78
|
-
name: "IncrementalSchemaTestingDb"
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
localBim.close();
|
|
82
|
-
const nativeDb = IModelDb.openDgnDb({ path: testBim }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });
|
|
83
|
-
nativeDb.saveChanges();
|
|
84
|
-
nativeDb.closeFile();
|
|
85
|
-
return testBim;
|
|
86
|
-
}
|
|
87
|
-
static async importSchema(schemaKey) {
|
|
88
|
-
if (!this.isLoaded) {
|
|
89
|
-
throw new Error("iModel has not been loaded");
|
|
90
|
-
}
|
|
91
|
-
if (!this._iModel)
|
|
92
|
-
throw new Error("iModel is undefined");
|
|
93
|
-
if (undefined !== this._iModel.querySchemaVersion(schemaKey.name))
|
|
94
|
-
return;
|
|
95
|
-
const testSchema = await this.context.getSchema(schemaKey, SchemaMatchType.Exact);
|
|
96
|
-
if (undefined === testSchema)
|
|
97
|
-
throw new Error(`The schema '${schemaKey.name}' could not be found.`);
|
|
98
|
-
const schemaXml = await this.getOrderedSchemaStrings(testSchema);
|
|
99
|
-
await this._iModel.importSchemaStrings(schemaXml);
|
|
100
|
-
this._iModel.saveChanges();
|
|
101
|
-
if (this._iModel.isBriefcaseDb() && !this._iModel.isReadonly) {
|
|
102
|
-
await this.iModel.pushChanges({ description: "import test schema" });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
static async close() {
|
|
106
|
-
if (this._iModel !== undefined) {
|
|
107
|
-
this._iModel.close();
|
|
108
|
-
this._iModel = undefined;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
static async getOrderedSchemaStrings(insertSchema) {
|
|
112
|
-
const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);
|
|
113
|
-
const schemaStrings = await Promise.all(schemas.map(async (schema) => IncrementalTestHelper.getSchemaString(schema)));
|
|
114
|
-
return schemaStrings;
|
|
115
|
-
}
|
|
116
|
-
static async getSchemaString(schema) {
|
|
117
|
-
// Serialize schema to the document object
|
|
118
|
-
let doc = new DOMParser().parseFromString(`<?xml version="1.0" encoding="UTF-8"?>`, "application/xml");
|
|
119
|
-
doc = await schema.toXml(doc);
|
|
120
|
-
const serializer = new XMLSerializer();
|
|
121
|
-
const xml = serializer.serializeToString(doc);
|
|
122
|
-
return xml;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
;
|
|
126
|
-
//# sourceMappingURL=IncrementalTestHelper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalTestHelper.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IncrementalTestHelper.ts"],"names":[],"mappings":"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","sourcesContent":["\r\nimport { OpenMode } from \"@itwin/core-bentley\";\r\nimport { ProfileOptions } from \"@itwin/core-common\";\r\nimport { SchemaXmlFileLocater } from \"@itwin/ecschema-locaters\";\r\nimport { Schema, SchemaContext, SchemaGraphUtil, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { DOMParser, XMLSerializer } from \"@xmldom/xmldom\";\r\nimport * as path from \"path\";\r\nimport { IModelSchemaLocater } from \"./IModelSchemaLocater\";\r\nimport { BriefcaseDb, IModelDb, StandaloneDb } from \"../../../IModelDb\";\r\nimport { IModelHost } from \"../../../IModelHost\";\r\nimport { IModelJsFs } from \"../../../IModelJsFs\";\r\nimport { KnownTestLocations } from \"../../KnownTestLocations\";\r\n\r\nexport class IncrementalTestHelper {\r\n private static _iModel: IModelDb | undefined;\r\n public static context: SchemaContext;\r\n public static testBimFile: string;\r\n public static get iModel(): IModelDb {\r\n if (this._iModel === undefined)\r\n throw new Error(\"iModel not loaded\");\r\n return this._iModel;\r\n }\r\n\r\n public static get isLoaded(): boolean {\r\n return this._iModel !== undefined;\r\n }\r\n\r\n public static async setup(options?: {bimName?: string, disableSchemaLoading?: boolean}): Promise<void> {\r\n if (!IModelHost.isValid)\r\n await IModelHost.startup({\r\n incrementalSchemaLoading: \"enabled\",\r\n });\r\n\r\n if (this._iModel !== undefined)\r\n throw new Error(\"iModel already loaded\");\r\n\r\n if (options?.bimName) {\r\n const pathToBriefCase = path.join(KnownTestLocations.assetsDir, options.bimName);\r\n this._iModel = await BriefcaseDb.open({\r\n fileName: pathToBriefCase,\r\n readonly: true,\r\n key: \"test-iModel\",\r\n });\r\n } else {\r\n this.testBimFile = this.initializeTestIModel();\r\n this._iModel = StandaloneDb.openFile(this.testBimFile, OpenMode.ReadWrite);\r\n }\r\n\r\n const configuration = IModelHost.configuration;\r\n if(configuration && options && options.disableSchemaLoading !== undefined) {\r\n const previousSetting = configuration.incrementalSchemaLoading;\r\n configuration.incrementalSchemaLoading = options.disableSchemaLoading ? \"disabled\" : \"enabled\";\r\n this._iModel.onBeforeClose.addOnce(() => {\r\n configuration.incrementalSchemaLoading = previousSetting;\r\n });\r\n }\r\n\r\n this.context = new SchemaContext();\r\n this.context.addLocater(new IModelSchemaLocater(this._iModel));\r\n const xmlLocater = new SchemaXmlFileLocater();\r\n xmlLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\"));\r\n this.context.addLocater(xmlLocater);\r\n }\r\n\r\n public static async getSchemaNames(): Promise<string[]> {\r\n const result = new Array<string>();\r\n const sqlQuery = \"SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name\";\r\n const reader = this.iModel.createQueryReader(sqlQuery);\r\n while (await reader.step()) {\r\n const name = reader.current[0];\r\n const versionMajor = reader.current[1];\r\n const versionWrite = reader.current[2];\r\n const versionMinor = reader.current[3];\r\n\r\n result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);\r\n }\r\n return result;\r\n }\r\n\r\n private static initializeTestIModel() {\r\n const testBim = path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\", \"test-bim.bim\");\r\n\r\n if (IModelJsFs.existsSync(testBim)) {~\r\n IModelJsFs.removeSync(testBim);\r\n }\r\n\r\n const localBim = StandaloneDb.createEmpty(testBim, {\r\n allowEdit: \"true\",\r\n rootSubject: {\r\n name: \"IncrementalSchemaTestingDb\"\r\n },\r\n });\r\n\r\n localBim.close();\r\n\r\n const nativeDb = IModelDb.openDgnDb({ path: testBim }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });\r\n nativeDb.saveChanges();\r\n nativeDb.closeFile();\r\n\r\n return testBim;\r\n }\r\n\r\n public static async importSchema(schemaKey: SchemaKey): Promise<void> {\r\n if (!this.isLoaded) {\r\n throw new Error(\"iModel has not been loaded\")\r\n }\r\n\r\n if (!this._iModel)\r\n throw new Error(\"iModel is undefined\");\r\n\r\n if (undefined !== this._iModel.querySchemaVersion(schemaKey.name))\r\n return;\r\n\r\n const testSchema = await this.context.getSchema(schemaKey, SchemaMatchType.Exact);\r\n if (undefined === testSchema)\r\n throw new Error(`The schema '${schemaKey.name}' could not be found.`);\r\n const schemaXml = await this.getOrderedSchemaStrings(testSchema);\r\n\r\n await this._iModel.importSchemaStrings(schemaXml);\r\n this._iModel.saveChanges();\r\n\r\n if (this._iModel.isBriefcaseDb() && !this._iModel.isReadonly) {\r\n await (this.iModel as BriefcaseDb).pushChanges({ description: \"import test schema\" });\r\n }\r\n }\r\n\r\n public static async close(): Promise<void> {\r\n if (this._iModel !== undefined) {\r\n this._iModel.close();\r\n this._iModel = undefined;\r\n }\r\n }\r\n\r\n public static async getOrderedSchemaStrings(insertSchema: Schema): Promise<string[]> {\r\n const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);\r\n const schemaStrings = await Promise.all(schemas.map(async (schema) => IncrementalTestHelper.getSchemaString(schema)));\r\n return schemaStrings;\r\n }\r\n\r\n public static async getSchemaString(schema: Schema): Promise<string> {\r\n // Serialize schema to the document object\r\n let doc = new DOMParser().parseFromString(`<?xml version=\"1.0\" encoding=\"UTF-8\"?>`, \"application/xml\");\r\n doc = await schema.toXml(doc);\r\n\r\n const serializer = new XMLSerializer();\r\n const xml = serializer.serializeToString(doc);\r\n\r\n return xml;\r\n }\r\n};"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ECSqlQueryOptions, ECSqlSchemaLocater, ECSqlSchemaLocaterOptions, SchemaContext, SchemaKey, SchemaProps } from "@itwin/ecschema-metadata";
|
|
2
|
-
import { IModelDb } from "../../../IModelDb";
|
|
3
|
-
export declare class TestSqlSchemaLocater extends ECSqlSchemaLocater {
|
|
4
|
-
private _iModel;
|
|
5
|
-
constructor(iModel: IModelDb, queryOptions?: ECSqlSchemaLocaterOptions);
|
|
6
|
-
protected executeQuery<TRow>(query: string, options?: ECSqlQueryOptions): Promise<ReadonlyArray<TRow>>;
|
|
7
|
-
protected getSchemaProps(_schemaKey: SchemaKey): Promise<SchemaProps | undefined>;
|
|
8
|
-
getSchemaJson(schemaKey: SchemaKey, context: SchemaContext): Promise<SchemaProps | undefined>;
|
|
9
|
-
getConstants(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").ConstantProps[]>;
|
|
10
|
-
getCustomAttributeClasses(schema: string, context: SchemaContext, queryOverride?: string): Promise<import("@itwin/ecschema-metadata").CustomAttributeClassProps[]>;
|
|
11
|
-
getEntities(schema: string, context: SchemaContext, queryOverride?: string): Promise<import("@itwin/ecschema-metadata").EntityClassProps[]>;
|
|
12
|
-
getEnumerations(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").EnumerationProps[]>;
|
|
13
|
-
getFormats(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").SchemaItemFormatProps[]>;
|
|
14
|
-
getInvertedUnits(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").InvertedUnitProps[]>;
|
|
15
|
-
getKindOfQuantities(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").KindOfQuantityProps[]>;
|
|
16
|
-
getMixins(schema: string, context: SchemaContext, queryOverride?: string): Promise<import("@itwin/ecschema-metadata").MixinProps[]>;
|
|
17
|
-
getPhenomenon(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").PhenomenonProps[]>;
|
|
18
|
-
getPropertyCategories(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").PropertyCategoryProps[]>;
|
|
19
|
-
getRelationships(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").RelationshipClassProps[]>;
|
|
20
|
-
getStructs(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").ClassProps[]>;
|
|
21
|
-
getUnits(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").SchemaItemUnitProps[]>;
|
|
22
|
-
getUnitSystems(schema: string, context: SchemaContext): Promise<import("@itwin/ecschema-metadata").SchemaItemProps[]>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=TestSqlSchemaLocater.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestSqlSchemaLocater.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEnJ,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,OAAO,CAAW;gBAEP,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,yBAAyB;cAK7D,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;cAQ5F,cAAc,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAMjE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa;IAG1D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGnD,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM;IAGxF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM;IAG1E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGjD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGvD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAG1D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM;IAGxE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGpD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAG5D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGvD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAGjD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAG/C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;CAG5E"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ECSqlSchemaLocater } from "@itwin/ecschema-metadata";
|
|
2
|
-
import { QueryBinder, QueryRowFormat } from "@itwin/core-common";
|
|
3
|
-
export class TestSqlSchemaLocater extends ECSqlSchemaLocater {
|
|
4
|
-
_iModel;
|
|
5
|
-
constructor(iModel, queryOptions) {
|
|
6
|
-
super(queryOptions);
|
|
7
|
-
this._iModel = iModel;
|
|
8
|
-
}
|
|
9
|
-
async executeQuery(query, options) {
|
|
10
|
-
const queryParameters = options && options.parameters ? QueryBinder.from(options.parameters) : undefined;
|
|
11
|
-
return this._iModel.createQueryReader(query, queryParameters, {
|
|
12
|
-
rowFormat: QueryRowFormat.UseECSqlPropertyNames
|
|
13
|
-
})
|
|
14
|
-
.toArray();
|
|
15
|
-
}
|
|
16
|
-
async getSchemaProps(_schemaKey) {
|
|
17
|
-
throw new Error("Method not implemented.");
|
|
18
|
-
}
|
|
19
|
-
// All of the following methods are protected. Through the override in this test locater, the methods can
|
|
20
|
-
// be exposed public and used in tests for granular testing.
|
|
21
|
-
async getSchemaJson(schemaKey, context) {
|
|
22
|
-
return super.getSchemaJson(schemaKey, context);
|
|
23
|
-
}
|
|
24
|
-
async getConstants(schema, context) {
|
|
25
|
-
return super.getConstants(schema, context);
|
|
26
|
-
}
|
|
27
|
-
async getCustomAttributeClasses(schema, context, queryOverride) {
|
|
28
|
-
return super.getCustomAttributeClasses(schema, context, queryOverride);
|
|
29
|
-
}
|
|
30
|
-
async getEntities(schema, context, queryOverride) {
|
|
31
|
-
return super.getEntities(schema, context, queryOverride);
|
|
32
|
-
}
|
|
33
|
-
async getEnumerations(schema, context) {
|
|
34
|
-
return super.getEnumerations(schema, context);
|
|
35
|
-
}
|
|
36
|
-
async getFormats(schema, context) {
|
|
37
|
-
return super.getFormats(schema, context);
|
|
38
|
-
}
|
|
39
|
-
async getInvertedUnits(schema, context) {
|
|
40
|
-
return super.getInvertedUnits(schema, context);
|
|
41
|
-
}
|
|
42
|
-
async getKindOfQuantities(schema, context) {
|
|
43
|
-
return super.getKindOfQuantities(schema, context);
|
|
44
|
-
}
|
|
45
|
-
async getMixins(schema, context, queryOverride) {
|
|
46
|
-
return super.getMixins(schema, context, queryOverride);
|
|
47
|
-
}
|
|
48
|
-
async getPhenomenon(schema, context) {
|
|
49
|
-
return super.getPhenomenon(schema, context);
|
|
50
|
-
}
|
|
51
|
-
async getPropertyCategories(schema, context) {
|
|
52
|
-
return super.getPropertyCategories(schema, context);
|
|
53
|
-
}
|
|
54
|
-
async getRelationships(schema, context) {
|
|
55
|
-
return super.getRelationships(schema, context);
|
|
56
|
-
}
|
|
57
|
-
async getStructs(schema, context) {
|
|
58
|
-
return super.getStructs(schema, context);
|
|
59
|
-
}
|
|
60
|
-
async getUnits(schema, context) {
|
|
61
|
-
return super.getUnits(schema, context);
|
|
62
|
-
}
|
|
63
|
-
async getUnitSystems(schema, context) {
|
|
64
|
-
return super.getUnitSystems(schema, context);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=TestSqlSchemaLocater.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestSqlSchemaLocater.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.ts"],"names":[],"mappings":"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","sourcesContent":["import { ECSqlQueryOptions, ECSqlSchemaLocater, ECSqlSchemaLocaterOptions, SchemaContext, SchemaKey, SchemaProps } from \"@itwin/ecschema-metadata\";\r\nimport { QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { IModelDb } from \"../../../IModelDb\";\r\n\r\nexport class TestSqlSchemaLocater extends ECSqlSchemaLocater {\r\n private _iModel: IModelDb;\r\n\r\n public constructor(iModel: IModelDb, queryOptions?: ECSqlSchemaLocaterOptions) {\r\n super(queryOptions);\r\n this._iModel = iModel;\r\n }\r\n\r\n protected async executeQuery<TRow>(query: string, options?: ECSqlQueryOptions): Promise<ReadonlyArray<TRow>> {\r\n const queryParameters = options && options.parameters ? QueryBinder.from(options.parameters) : undefined;\r\n\r\n return this._iModel.createQueryReader(query, queryParameters, {\r\n rowFormat: QueryRowFormat.UseECSqlPropertyNames\r\n })\r\n .toArray();\r\n }\r\n protected async getSchemaProps(_schemaKey: SchemaKey): Promise<SchemaProps | undefined> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n // All of the following methods are protected. Through the override in this test locater, the methods can\r\n // be exposed public and used in tests for granular testing.\r\n public override async getSchemaJson(schemaKey: SchemaKey, context: SchemaContext) {\r\n return super.getSchemaJson(schemaKey, context);\r\n }\r\n public override async getConstants(schema: string, context: SchemaContext) {\r\n return super.getConstants(schema, context);\r\n }\r\n public override async getCustomAttributeClasses(schema: string, context: SchemaContext, queryOverride?: string) {\r\n return super.getCustomAttributeClasses(schema, context, queryOverride);\r\n }\r\n public override async getEntities(schema: string, context: SchemaContext, queryOverride?: string) {\r\n return super.getEntities(schema, context, queryOverride);\r\n }\r\n public override async getEnumerations(schema: string, context: SchemaContext) {\r\n return super.getEnumerations(schema, context);\r\n }\r\n public override async getFormats(schema: string, context: SchemaContext) {\r\n return super.getFormats(schema, context);\r\n }\r\n public override async getInvertedUnits(schema: string, context: SchemaContext) {\r\n return super.getInvertedUnits(schema, context);\r\n }\r\n public override async getKindOfQuantities(schema: string, context: SchemaContext) {\r\n return super.getKindOfQuantities(schema, context);\r\n }\r\n public override async getMixins(schema: string, context: SchemaContext, queryOverride?: string){\r\n return super.getMixins(schema, context, queryOverride);\r\n }\r\n public override async getPhenomenon(schema: string, context: SchemaContext) {\r\n return super.getPhenomenon(schema, context);\r\n }\r\n public override async getPropertyCategories(schema: string, context: SchemaContext) {\r\n return super.getPropertyCategories(schema, context);\r\n }\r\n public override async getRelationships(schema: string, context: SchemaContext) {\r\n return super.getRelationships(schema, context);\r\n }\r\n public override async getStructs(schema: string, context: SchemaContext) {\r\n return super.getStructs(schema, context);\r\n }\r\n public override async getUnits(schema: string, context: SchemaContext) {\r\n return super.getUnits(schema, context);\r\n }\r\n public override async getUnitSystems(schema: string, context: SchemaContext) {\r\n return super.getUnitSystems(schema, context);\r\n }\r\n}\r\n"]}
|