@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.
@@ -1,16 +1,19 @@
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
  export declare class ProjectSchemaResolver implements ProjectSchemaResolverInterface {
6
6
  private readonly projectContainerResolver;
7
7
  private readonly schemaVersionBuilder;
8
+ private schemaCache;
8
9
  constructor(projectContainerResolver: ProjectContainerResolver, schemaVersionBuilder: SchemaVersionBuilder);
9
- getSchema(slug: string): Promise<import("@contember/engine-system-api").VersionedSchema | undefined>;
10
+ getSchema(slug: string): Promise<VersionedSchema | undefined>;
11
+ clearCache(): void;
10
12
  }
11
13
  export declare class ProjectSchemaResolverProxy implements ProjectSchemaResolverInterface {
12
14
  private resolver;
13
15
  setResolver(resolver: ProjectSchemaResolver): void;
14
16
  getSchema(projectSlug: string): Promise<Schema | undefined>;
17
+ clearCache(): void;
15
18
  }
16
19
  //# sourceMappingURL=ProjectSchemaResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,qBAAsB,YAAW,8BAA8B;IAE1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB;IAGtD,SAAS,CAAC,IAAI,EAAE,MAAM;CAQ5B;AAED,qBAAa,0BAA2B,YAAW,8BAA8B;IAChF,OAAO,CAAC,QAAQ,CAAmC;IAEnD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM3D"}
1
+ {"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,qBAAsB,YAAW,8BAA8B;IAI1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAJtC,OAAO,CAAC,WAAW,CAAqC;gBAGtC,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB;IAGtD,SAAS,CAAC,IAAI,EAAE,MAAM;IAc5B,UAAU;CAGV;AAED,qBAAa,0BAA2B,YAAW,8BAA8B;IAChF,OAAO,CAAC,QAAQ,CAAmC;IAEnD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO3D,UAAU;CAGV"}
@@ -5,6 +5,7 @@ class ProjectSchemaResolver {
5
5
  constructor(projectContainerResolver, schemaVersionBuilder) {
6
6
  this.projectContainerResolver = projectContainerResolver;
7
7
  this.schemaVersionBuilder = schemaVersionBuilder;
8
+ this.schemaCache = new Map();
8
9
  }
9
10
  async getSchema(slug) {
10
11
  const container = await this.projectContainerResolver.getProjectContainer(slug);
@@ -12,7 +13,15 @@ class ProjectSchemaResolver {
12
13
  return undefined;
13
14
  }
14
15
  const db = container.systemDatabaseContextFactory.create();
15
- return await this.schemaVersionBuilder.buildSchema(db);
16
+ const cachedSchema = this.schemaCache.get(slug);
17
+ const newSchema = await this.schemaVersionBuilder.buildSchema(db, cachedSchema);
18
+ if (cachedSchema !== newSchema) {
19
+ this.schemaCache.set(slug, newSchema);
20
+ }
21
+ return newSchema;
22
+ }
23
+ clearCache() {
24
+ this.schemaCache.clear();
16
25
  }
17
26
  }
18
27
  exports.ProjectSchemaResolver = ProjectSchemaResolver;
@@ -26,6 +35,10 @@ class ProjectSchemaResolverProxy {
26
35
  }
27
36
  return this.resolver.getSchema(projectSlug);
28
37
  }
38
+ clearCache() {
39
+ var _a;
40
+ (_a = this.resolver) === null || _a === void 0 ? void 0 : _a.clearCache();
41
+ }
29
42
  }
30
43
  exports.ProjectSchemaResolverProxy = ProjectSchemaResolverProxy;
31
44
  //# sourceMappingURL=ProjectSchemaResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;AAKA,MAAa,qBAAqB;IACjC,YACkB,wBAAkD,EAClD,oBAA0C;QAD1C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAsB;IACzD,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,IAAY;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC/E,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAA;QAC1D,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;CACD;AAdD,sDAcC;AAED,MAAa,0BAA0B;IAGtC,WAAW,CAAC,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,WAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;CACD;AAbD,gEAaC"}
1
+ {"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;AAKA,MAAa,qBAAqB;IAGjC,YACkB,wBAAkD,EAClD,oBAA0C;QAD1C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAsB;QAJpD,gBAAW,GAAG,IAAI,GAAG,EAA2B,CAAA;IAKrD,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,IAAY;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC/E,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC/E,IAAI,YAAY,KAAK,SAAS,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;SACrC;QACD,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,UAAU;QACT,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;CACD;AAzBD,sDAyBC;AAED,MAAa,0BAA0B;IAGtC,WAAW,CAAC,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,WAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU;;QACT,MAAA,IAAI,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAA;IAC5B,CAAC;CACD;AAjBD,gEAiBC"}