@itwin/core-backend 5.1.0-dev.42 → 5.1.0-dev.43
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/cjs/IModelDb.d.ts +6 -2
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +37 -10
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js +167 -3
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +6 -2
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +39 -12
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js +165 -2
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js +224 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementLRUCache.test.js","sourceRoot":"","sources":["../../../src/test/ElementLRUCache.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from \"chai\";\r\nimport { CachedElement, ElementLRUCache } from \"../internal/ElementLRUCache\";\r\n\r\ndescribe('ElementLruCache', () => {\r\n const testElem1: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\"\r\n },\r\n }\r\n\r\n const testElem2: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId2\",\r\n model: \"testModel2\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\",\r\n value: \"testValue2\"\r\n },\r\n classFullName: \"testName2\"\r\n },\r\n }\r\n\r\n const testElem3: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId3\",\r\n model: \"testModel3\",\r\n code: {\r\n spec: \"testSpec3\",\r\n scope: \"testScope3\"\r\n },\r\n classFullName: \"testName3\"\r\n },\r\n }\r\n\r\n const testElemFedGuid: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testIdFed\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\",\r\n federationGuid: \"testFedGuid\"\r\n },\r\n }\r\n\r\n const testElemCode: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId5\",\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2:testValue2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n const testElemNoId: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: undefined,\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n it('should store and retrieve a valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n });\r\n\r\n it('should overwrite existing valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n const testElemModel = testElem1;\r\n cache.set(testElemModel);\r\n const retrievedElem = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemModel);\r\n\r\n testElemModel.elProps.model = \"newModel\";\r\n cache.set(testElemModel);\r\n const retrievedElem2 = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElemModel);\r\n });\r\n\r\n it('should store and retrieve a valid element by fedGuid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElemFedGuid);\r\n const retrievedElem = cache.get({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemFedGuid);\r\n });\r\n\r\n it('should store and retrieve a valid element by code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ code: testElem1.elProps.code });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n\r\n cache.set(testElem2);\r\n const retrievedElem2 = cache.get({ code: testElem2.elProps.code });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem2);\r\n });\r\n\r\n it('should fail to store an element without id', () => {\r\n const cache = new ElementLRUCache(3);\r\n expect(() => cache.set(testElemNoId)).to.throw(Error, \"Element must have an id\");\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n cache.set(testElemFedGuid);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem2);\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.be.undefined;\r\n\r\n const retrievedElem3 = cache.get({ id: testElem3.elProps.id });\r\n expect(retrievedElem3).to.not.be.undefined;\r\n expect(retrievedElem3).to.equal(testElem3);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ id: testElem2.elProps.id });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElemFedGuid.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testElem2.elProps.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with model id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteWithModel(testElem2.elProps.model);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n\r\n it('should not return wrong element when passed a manipulated code value', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem2);\r\n expect(cache.size).to.equal(1);\r\n\r\n const retrievedElem = cache.get({ code: testElemCode.elProps.code });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});"]}
|
|
1
|
+
{"version":3,"file":"ElementLRUCache.test.js","sourceRoot":"","sources":["../../../src/test/ElementLRUCache.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from \"chai\";\r\nimport { CachedElement, ElementLRUCache, InstanceKeyLRUCache } from \"../internal/ElementLRUCache\";\r\nimport { IModelJsNative } from \"../core-backend\";\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\n\r\ndescribe('ElementLruCache', () => {\r\n const testElem1: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\"\r\n },\r\n }\r\n\r\n const testElem2: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId2\",\r\n model: \"testModel2\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\",\r\n value: \"testValue2\"\r\n },\r\n classFullName: \"testName2\"\r\n },\r\n }\r\n\r\n const testElem3: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId3\",\r\n model: \"testModel3\",\r\n code: {\r\n spec: \"testSpec3\",\r\n scope: \"testScope3\"\r\n },\r\n classFullName: \"testName3\"\r\n },\r\n }\r\n\r\n const testElemFedGuid: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testIdFed\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\",\r\n federationGuid: \"testFedGuid\"\r\n },\r\n }\r\n\r\n const testElemCode: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId5\",\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2:testValue2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n const testElemNoId: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: undefined,\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n it('should store and retrieve a valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n });\r\n\r\n it('should overwrite existing valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n const testElemModel = testElem1;\r\n cache.set(testElemModel);\r\n const retrievedElem = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemModel);\r\n\r\n testElemModel.elProps.model = \"newModel\";\r\n cache.set(testElemModel);\r\n const retrievedElem2 = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElemModel);\r\n });\r\n\r\n it('should store and retrieve a valid element by fedGuid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElemFedGuid);\r\n const retrievedElem = cache.get({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemFedGuid);\r\n });\r\n\r\n it('should store and retrieve a valid element by code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ code: testElem1.elProps.code });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n\r\n cache.set(testElem2);\r\n const retrievedElem2 = cache.get({ code: testElem2.elProps.code });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem2);\r\n });\r\n\r\n it('should fail to store an element without id', () => {\r\n const cache = new ElementLRUCache(3);\r\n expect(() => cache.set(testElemNoId)).to.throw(Error, \"Element must have an id\");\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem2);\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.be.undefined;\r\n\r\n const retrievedElem3 = cache.get({ id: testElem3.elProps.id });\r\n expect(retrievedElem3).to.not.be.undefined;\r\n expect(retrievedElem3).to.equal(testElem3);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ id: testElem2.elProps.id });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElemFedGuid.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testElem2.elProps.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with model id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteWithModel(testElem2.elProps.model);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n\r\n it('should not return wrong element when passed a manipulated code value', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem2);\r\n expect(cache.size).to.equal(1);\r\n\r\n const retrievedElem = cache.get({ code: testElemCode.elProps.code });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});\r\n\r\ndescribe('InstanceKeyLRUCache', () => {\r\n const testArgs1: IModelJsNative.ResolveInstanceKeyArgs = {\r\n partialKey: {\r\n id: Id64.fromJSON(\"0x123\"),\r\n baseClassName: \"baseName\",\r\n },\r\n }\r\n\r\n const testArgs2: IModelJsNative.ResolveInstanceKeyArgs = {\r\n federationGuid: \"testFedGuid\",\r\n }\r\n\r\n const testArgs3: IModelJsNative.ResolveInstanceKeyArgs = {\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\",\r\n value: \"testValue\"\r\n }\r\n }\r\n\r\n const testArgs4: IModelJsNative.ResolveInstanceKeyArgs = {\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n }\r\n }\r\n\r\n const testResults: IModelJsNative.ResolveInstanceKeyResult[] = [\r\n {\r\n id: Id64.fromJSON(\"0x123\"),\r\n classFullName: \"testName1\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x122\"),\r\n classFullName: \"testName2\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x133\"),\r\n classFullName: \"testName3\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x144\"),\r\n classFullName: \"testName4\",\r\n }\r\n ];\r\n\r\n it('should store and retrieve a valid InstanceKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n });\r\n\r\n it('should overwrite existing valid InstanceKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n const testResult = testResults[0];\r\n cache.set(testArgs1, testResult);\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResult);\r\n\r\n const newTestResult = { id: testResult.id, classFullName: \"newModel\" };\r\n cache.set(testArgs1, newTestResult);\r\n const retrievedResult2 = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(newTestResult);\r\n });\r\n\r\n it('should store and retrieve a valid InstanceKey by fedGuid', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs2, testResults[0]);\r\n const retrievedResult = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n });\r\n\r\n it('should store and retrieve a valid InstanceKey by code', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs3, testResults[0]);\r\n const retrievedResult = cache.get({ code: testArgs3.code });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n\r\n cache.set(testArgs4, testResults[1]);\r\n const retrievedResult2 = cache.get({ code: testArgs4.code });\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should find the same InstanceKey with either code, fedGuid, or Id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set({ ...testArgs1, ...testArgs2, ...testArgs3}, testResults[0]);\r\n\r\n const retrievedResultById = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResultById).to.not.be.undefined;\r\n expect(retrievedResultById).to.equal(testResults[0]);\r\n\r\n const retrievedResultByFedGuid = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResultByFedGuid).to.not.be.undefined;\r\n expect(retrievedResultByFedGuid).to.equal(testResults[0]);\r\n\r\n const retrievedResultByCode = cache.get({ code: testArgs3.code });\r\n expect(retrievedResultByCode).to.not.be.undefined;\r\n expect(retrievedResultByCode).to.equal(testResults[0]);\r\n });\r\n\r\n it('should update an existing InstanceKey with either code, fedGuid, or Id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[0]);\r\n cache.set(testArgs3, testResults[0]);\r\n\r\n const retrievedResultById = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResultById).to.not.be.undefined;\r\n expect(retrievedResultById).to.equal(testResults[0]);\r\n\r\n const retrievedResultByFedGuid = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResultByFedGuid).to.not.be.undefined;\r\n expect(retrievedResultByFedGuid).to.equal(testResults[0]);\r\n\r\n const retrievedResultByCode = cache.get({ code: testArgs3.code });\r\n expect(retrievedResultByCode).to.not.be.undefined;\r\n expect(retrievedResultByCode).to.equal(testResults[0]);\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n cache.set(testArgs4, testResults[3]);\r\n expect(cache.size).to.equal(3);\r\n\r\n const retrievedResult = cache.get(testArgs2);\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[1]);\r\n\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.be.undefined;\r\n\r\n const retrievedResult3 = cache.get(testArgs3);\r\n expect(retrievedResult3).to.not.be.undefined;\r\n expect(retrievedResult3).to.equal(testResults[2]);\r\n });\r\n\r\n it('should delete with partialKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ partialKey: testArgs1.partialKey });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs2);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteById(testArgs1.partialKey!.id);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs2);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should throw when deleting with a bad id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n expect(() => cache.deleteById(\"badid\")).to.throw(Error, \"Invalid id provided\");\r\n expect(cache.size).to.equal(3);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testArgs2.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs3);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[2]);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testArgs3.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ code: testArgs3.code });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[0]);\r\n });\r\n\r\n it('should delete with any applicable arg', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[0]);\r\n cache.set(testArgs3, testResults[0]);\r\n expect(cache.size).to.equal(1);\r\n cache.delete(testArgs3);\r\n expect(cache.size).to.equal(0);\r\n const retrievedResult = cache.get(testArgs1);\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.set(testArgs4, testResults[0]);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.delete(testArgs4);\r\n expect(cache.size).to.equal(2);\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.be.undefined;\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get(testArgs1);\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-backend",
|
|
3
|
-
"version": "5.1.0-dev.
|
|
3
|
+
"version": "5.1.0-dev.43",
|
|
4
4
|
"description": "iTwin.js backend components",
|
|
5
5
|
"main": "lib/cjs/core-backend.js",
|
|
6
6
|
"module": "lib/esm/core-backend.js",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@opentelemetry/api": "^1.0.4",
|
|
30
|
-
"@itwin/core-bentley": "5.1.0-dev.
|
|
31
|
-
"@itwin/core-common": "5.1.0-dev.
|
|
32
|
-
"@itwin/
|
|
33
|
-
"@itwin/
|
|
30
|
+
"@itwin/core-bentley": "5.1.0-dev.43",
|
|
31
|
+
"@itwin/core-common": "5.1.0-dev.43",
|
|
32
|
+
"@itwin/core-geometry": "5.1.0-dev.43",
|
|
33
|
+
"@itwin/ecschema-metadata": "5.1.0-dev.43"
|
|
34
34
|
},
|
|
35
35
|
"peerDependenciesMeta": {
|
|
36
36
|
"@opentelemetry/api": {
|
|
@@ -72,16 +72,16 @@
|
|
|
72
72
|
"marked": "^14.1.3",
|
|
73
73
|
"sql-formatter": "^15.4.6",
|
|
74
74
|
"webpack": "^5.97.1",
|
|
75
|
-
"@itwin/build-tools": "5.1.0-dev.
|
|
76
|
-
"@itwin/core-
|
|
77
|
-
"@itwin/core-
|
|
78
|
-
"
|
|
79
|
-
"@itwin/core-
|
|
80
|
-
"@itwin/
|
|
81
|
-
"
|
|
75
|
+
"@itwin/build-tools": "5.1.0-dev.43",
|
|
76
|
+
"@itwin/core-geometry": "5.1.0-dev.43",
|
|
77
|
+
"@itwin/core-bentley": "5.1.0-dev.43",
|
|
78
|
+
"internal-tools": "3.0.0-dev.69",
|
|
79
|
+
"@itwin/core-common": "5.1.0-dev.43",
|
|
80
|
+
"@itwin/ecschema-metadata": "5.1.0-dev.43",
|
|
81
|
+
"@itwin/ecsql-common": "5.1.0-dev.43"
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@bentley/imodeljs-native": "5.1.
|
|
84
|
+
"@bentley/imodeljs-native": "5.1.49",
|
|
85
85
|
"@itwin/cloud-agnostic-core": "^2.2.4",
|
|
86
86
|
"@itwin/object-storage-azure": "^2.3.0",
|
|
87
87
|
"@itwin/object-storage-core": "^2.3.0",
|