{"version":3,"file":"ProjectContainerStore.cjs","sources":["../../../../../packages/engine-http/src/project/ProjectContainerStore.ts"],"sourcesContent":["import { PromiseMap } from '@contember/engine-common'\nimport { ProjectContainer } from './ProjectContainer'\n\ntype ContainerWithMeta = { container: ProjectContainer; cleanups: (() => void)[]; timestamp: Date }\n\nexport class ProjectContainerStore {\n\tprivate containers = new PromiseMap<string, ContainerWithMeta>()\n\tprivate aliasMapping = new Map<string, string>()\n\n\tpublic resolveAlias(slug: string): string | undefined {\n\t\treturn this.aliasMapping.get(slug)\n\t}\n\n\tpublic setAlias(slug: string, alias: string): void {\n\t\tthis.aliasMapping.set(alias, slug)\n\t}\n\n\tpublic removeAlias(alias: string): void {\n\t\tthis.aliasMapping.delete(alias)\n\t}\n\n\tpublic getContainer(slug: string): Promise<ContainerWithMeta> | undefined {\n\t\treturn this.containers.get(slug)\n\t}\n\n\tpublic async fetchContainer(slug: string, factory: (slug: string) => Promise<ContainerWithMeta>): Promise<ContainerWithMeta> {\n\t\treturn await this.containers.fetch(slug, factory)\n\t}\n\n\tpublic removeContainer(slug: string): void {\n\t\tthis.containers.delete(slug)\n\t}\n}\n"],"names":["PromiseMap"],"mappings":";;;;;;AAKO,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACE,kBAAA,MAAA,cAAa,IAAIA,aAAsC,WAAA,CAAA;AACvD,kBAAA,MAAA,oCAAmB,IAAoB,CAAA;AAAA,EAAA;AAAA,EAExC,aAAa,MAAkC;AAC9C,WAAA,KAAK,aAAa,IAAI,IAAI;AAAA,EAAA;AAAA,EAG3B,SAAS,MAAc,OAAqB;AAC7C,SAAA,aAAa,IAAI,OAAO,IAAI;AAAA,EAAA;AAAA,EAG3B,YAAY,OAAqB;AAClC,SAAA,aAAa,OAAO,KAAK;AAAA,EAAA;AAAA,EAGxB,aAAa,MAAsD;AAClE,WAAA,KAAK,WAAW,IAAI,IAAI;AAAA,EAAA;AAAA,EAGhC,MAAa,eAAe,MAAc,SAAmF;AAC5H,WAAO,MAAM,KAAK,WAAW,MAAM,MAAM,OAAO;AAAA,EAAA;AAAA,EAG1C,gBAAgB,MAAoB;AACrC,SAAA,WAAW,OAAO,IAAI;AAAA,EAAA;AAE7B;;"}