{"version":3,"file":"ContainerBatchedRequester.mjs","names":[],"sources":["../../src/requester/ContainerBatchedRequester.ts"],"sourcesContent":["import type { ConnectedContext } from \"@ldo/connected\";\nimport type { SolidContainer } from \"../resources/SolidContainer\";\nimport { BatchedRequester } from \"./BatchedRequester\";\nimport type { CheckRootResult } from \"./requests/checkRootContainer\";\nimport { checkRootContainer } from \"./requests/checkRootContainer\";\nimport type {\n  ContainerCreateAndOverwriteResult,\n  ContainerCreateIfAbsentResult,\n} from \"./requests/createDataResource\";\nimport type { ReadContainerResult } from \"./requests/readResource\";\nimport { modifyQueueByMergingEventsWithTheSameKeys } from \"./util/modifyQueueFuntions\";\nimport type { SolidConnectedPlugin } from \"../SolidConnectedPlugin\";\n\nexport const IS_ROOT_CONTAINER_KEY = \"isRootContainer\";\n\n/**\n * @internal\n *\n * A singleton to handle batched requests for containers\n */\nexport class ContainerBatchedRequester extends BatchedRequester<SolidContainer> {\n  /**\n   * The URI of the container\n   */\n  readonly resource: SolidContainer;\n\n  /**\n   * @param uri - The URI of the container\n   * @param context - ConnectedContext of the parent dataset\n   */\n  constructor(\n    resource: SolidContainer,\n    context: ConnectedContext<SolidConnectedPlugin[]>,\n  ) {\n    super(context);\n    this.resource = resource;\n  }\n\n  /**\n   * Reads the container\n   * @returns A ReadContainerResult\n   */\n  read(): Promise<ReadContainerResult> {\n    return super.read() as Promise<ReadContainerResult>;\n  }\n\n  /**\n   * Creates the container\n   * @param overwrite - If true, this will orverwrite the resource if it already\n   * exists\n   */\n  createDataResource(\n    overwrite: true,\n  ): Promise<ContainerCreateAndOverwriteResult>;\n  createDataResource(overwrite?: false): Promise<ContainerCreateIfAbsentResult>;\n  createDataResource(\n    overwrite?: boolean,\n  ): Promise<ContainerCreateIfAbsentResult | ContainerCreateAndOverwriteResult>;\n  createDataResource(\n    overwrite?: boolean,\n  ): Promise<\n    ContainerCreateIfAbsentResult | ContainerCreateAndOverwriteResult\n  > {\n    return super.createDataResource(overwrite) as Promise<\n      ContainerCreateIfAbsentResult | ContainerCreateAndOverwriteResult\n    >;\n  }\n\n  /**\n   * Checks to see if this container is a root container\n   * @returns A CheckRootResult\n   */\n  async isRootContainer(): Promise<CheckRootResult> {\n    return this.requestBatcher.queueProcess({\n      name: IS_ROOT_CONTAINER_KEY,\n      args: [this.resource, { fetch: this.context.solid.fetch }],\n      perform: checkRootContainer,\n      modifyQueue: modifyQueueByMergingEventsWithTheSameKeys(\n        IS_ROOT_CONTAINER_KEY,\n      ),\n    });\n  }\n}\n"],"mappings":";;;;AAaA,MAAa,wBAAwB;;;;;;AAOrC,IAAa,4BAAb,cAA+C,iBAAiC;;;;;CAU9E,YACE,UACA,SACA;AACA,QAAM,QAAQ;AACd,OAAK,WAAW;;;;;;CAOlB,OAAqC;AACnC,SAAO,MAAM,MAAM;;CAerB,mBACE,WAGA;AACA,SAAO,MAAM,mBAAmB,UAAU;;;;;;CAS5C,MAAM,kBAA4C;AAChD,SAAO,KAAK,eAAe,aAAa;GACtC,MAAM;GACN,MAAM,CAAC,KAAK,UAAU,EAAE,OAAO,KAAK,QAAQ,MAAM,OAAO,CAAC;GAC1D,SAAS;GACT,aAAa,0CACX,sBACD;GACF,CAAC"}