{"version":3,"file":"ProjectDatabaseMetadataResolver.cjs","sources":["../../../../../packages/engine-http/src/project/ProjectDatabaseMetadataResolver.ts"],"sourcesContent":["import { DatabaseMetadata, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContext } from '@contember/engine-system-api'\nimport { Schema } from '@contember/schema'\n\nexport class ProjectDatabaseMetadataResolver {\n\n\tprivate cache: WeakMap<Schema, Map<string, DatabaseMetadata>> = new WeakMap()\n\n\tconstructor(\n\t\tprivate resolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\n\tasync resolveDatabaseMetadata(db: DatabaseContext, schema: Schema, stageSchema: string): Promise<DatabaseMetadata> {\n\t\tlet schemaCache = this.cache.get(schema)\n\t\tif (!schemaCache) {\n\t\t\tschemaCache = new Map()\n\t\t\tthis.cache.set(schema, schemaCache)\n\t\t}\n\t\tconst cachedMeta = schemaCache.get(stageSchema)\n\t\tif (cachedMeta) {\n\t\t\treturn cachedMeta\n\t\t}\n\t\tconst metadata = await this.resolver.resolveMetadata(db.client, stageSchema)\n\t\tschemaCache.set(stageSchema, metadata)\n\n\t\treturn metadata\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,gCAAgC;AAAA,EAI5C,YACS,UACP;AADO,SAAA,WAAA;AAHD,kBAAA,MAAA,6BAA4D,QAAQ,CAAA;AAAA,EAAA;AAAA,EAO5E,MAAM,wBAAwB,IAAqB,QAAgB,aAAgD;AAClH,QAAI,cAAc,KAAK,MAAM,IAAI,MAAM;AACvC,QAAI,CAAC,aAAa;AACjB,wCAAkB,IAAI;AACjB,WAAA,MAAM,IAAI,QAAQ,WAAW;AAAA,IAAA;AAE7B,UAAA,aAAa,YAAY,IAAI,WAAW;AAC9C,QAAI,YAAY;AACR,aAAA;AAAA,IAAA;AAER,UAAM,WAAW,MAAM,KAAK,SAAS,gBAAgB,GAAG,QAAQ,WAAW;AAC/D,gBAAA,IAAI,aAAa,QAAQ;AAE9B,WAAA;AAAA,EAAA;AAET;;"}