@contember/engine-server 1.1.0-beta.1 → 1.1.0-beta.2
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/src/project/ProjectSchemaResolver.d.ts +5 -2
- package/dist/src/project/ProjectSchemaResolver.d.ts.map +1 -1
- package/dist/src/project/ProjectSchemaResolver.js +14 -1
- package/dist/src/project/ProjectSchemaResolver.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -20
- package/src/project/ProjectSchemaResolver.ts +17 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/engine-server",
|
|
3
|
-
"version": "1.1.0-beta.
|
|
3
|
+
"version": "1.1.0-beta.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"typings": "dist/src/index.d.ts",
|
|
@@ -8,24 +8,24 @@
|
|
|
8
8
|
"test-e2e": "vitest --no-threads tests/e2e"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@contember/authorization": "^1.1.0-beta.
|
|
12
|
-
"@contember/config-loader": "^1.1.0-beta.
|
|
13
|
-
"@contember/database": "^1.1.0-beta.
|
|
14
|
-
"@contember/database-migrations": "^1.1.0-beta.
|
|
15
|
-
"@contember/dic": "^1.1.0-beta.
|
|
16
|
-
"@contember/typesafe": "^1.1.0-beta.
|
|
17
|
-
"@contember/engine-content-api": "^1.1.0-beta.
|
|
18
|
-
"@contember/engine-http": "^1.1.0-beta.
|
|
19
|
-
"@contember/engine-plugins": "^1.1.0-beta.
|
|
20
|
-
"@contember/engine-s3-plugin": "^1.1.0-beta.
|
|
21
|
-
"@contember/engine-system-api": "^1.1.0-beta.
|
|
22
|
-
"@contember/engine-tenant-api": "^1.1.0-beta.
|
|
23
|
-
"@contember/engine-vimeo-plugin": "^1.1.0-beta.
|
|
24
|
-
"@contember/queryable": "^1.1.0-beta.
|
|
25
|
-
"@contember/schema": "^1.1.0-beta.
|
|
26
|
-
"@contember/schema-definition": "^1.1.0-beta.
|
|
27
|
-
"@contember/schema-migrations": "^1.1.0-beta.
|
|
28
|
-
"@contember/schema-utils": "^1.1.0-beta.
|
|
11
|
+
"@contember/authorization": "^1.1.0-beta.2",
|
|
12
|
+
"@contember/config-loader": "^1.1.0-beta.2",
|
|
13
|
+
"@contember/database": "^1.1.0-beta.2",
|
|
14
|
+
"@contember/database-migrations": "^1.1.0-beta.2",
|
|
15
|
+
"@contember/dic": "^1.1.0-beta.2",
|
|
16
|
+
"@contember/typesafe": "^1.1.0-beta.2",
|
|
17
|
+
"@contember/engine-content-api": "^1.1.0-beta.2",
|
|
18
|
+
"@contember/engine-http": "^1.1.0-beta.2",
|
|
19
|
+
"@contember/engine-plugins": "^1.1.0-beta.2",
|
|
20
|
+
"@contember/engine-s3-plugin": "^1.1.0-beta.2",
|
|
21
|
+
"@contember/engine-system-api": "^1.1.0-beta.2",
|
|
22
|
+
"@contember/engine-tenant-api": "^1.1.0-beta.2",
|
|
23
|
+
"@contember/engine-vimeo-plugin": "^1.1.0-beta.2",
|
|
24
|
+
"@contember/queryable": "^1.1.0-beta.2",
|
|
25
|
+
"@contember/schema": "^1.1.0-beta.2",
|
|
26
|
+
"@contember/schema-definition": "^1.1.0-beta.2",
|
|
27
|
+
"@contember/schema-migrations": "^1.1.0-beta.2",
|
|
28
|
+
"@contember/schema-utils": "^1.1.0-beta.2",
|
|
29
29
|
"@koa/cors": "^3.1.0",
|
|
30
30
|
"@sentry/node": "^6.8.0",
|
|
31
31
|
"graphql": "^15.4.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"uuid": "^8.3.1"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@contember/engine-api-tester": "^1.1.0-beta.
|
|
40
|
+
"@contember/engine-api-tester": "^1.1.0-beta.2",
|
|
41
41
|
"@types/koa-compress": "^4.0.1",
|
|
42
42
|
"@types/node": "^17.0.5",
|
|
43
43
|
"@types/supertest": "^2.0.8",
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ProjectSchemaResolver as ProjectSchemaResolverInterface } from '@contember/engine-tenant-api'
|
|
2
|
-
import { SchemaVersionBuilder } from '@contember/engine-system-api'
|
|
2
|
+
import { SchemaVersionBuilder, VersionedSchema } from '@contember/engine-system-api'
|
|
3
3
|
import { ProjectContainerResolver } from '@contember/engine-http'
|
|
4
4
|
import { Schema } from '@contember/schema'
|
|
5
5
|
|
|
6
6
|
export class ProjectSchemaResolver implements ProjectSchemaResolverInterface {
|
|
7
|
+
private schemaCache = new Map<string, VersionedSchema>()
|
|
8
|
+
|
|
7
9
|
constructor(
|
|
8
10
|
private readonly projectContainerResolver: ProjectContainerResolver,
|
|
9
11
|
private readonly schemaVersionBuilder: SchemaVersionBuilder,
|
|
@@ -15,7 +17,16 @@ export class ProjectSchemaResolver implements ProjectSchemaResolverInterface {
|
|
|
15
17
|
return undefined
|
|
16
18
|
}
|
|
17
19
|
const db = container.systemDatabaseContextFactory.create()
|
|
18
|
-
|
|
20
|
+
const cachedSchema = this.schemaCache.get(slug)
|
|
21
|
+
const newSchema = await this.schemaVersionBuilder.buildSchema(db, cachedSchema)
|
|
22
|
+
if (cachedSchema !== newSchema) {
|
|
23
|
+
this.schemaCache.set(slug, newSchema)
|
|
24
|
+
}
|
|
25
|
+
return newSchema
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
clearCache() {
|
|
29
|
+
this.schemaCache.clear()
|
|
19
30
|
}
|
|
20
31
|
}
|
|
21
32
|
|
|
@@ -32,4 +43,8 @@ export class ProjectSchemaResolverProxy implements ProjectSchemaResolverInterfac
|
|
|
32
43
|
}
|
|
33
44
|
return this.resolver.getSchema(projectSlug)
|
|
34
45
|
}
|
|
46
|
+
|
|
47
|
+
clearCache() {
|
|
48
|
+
this.resolver?.clearCache()
|
|
49
|
+
}
|
|
35
50
|
}
|