@fluidframework/synthesize 0.55.0 → 0.56.1

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 +1 @@
1
- {"version":3,"file":"dependencyContainer.spec.js","sourceRoot":"","sources":["../../src/test/dependencyContainer.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\n\nimport {\n IFluidConfiguration,\n IFluidLoadable,\n IFluidHandleContext,\n IFluidHandle,\n} from \"@fluidframework/core-interfaces\";\nimport { FluidObjectHandle } from \"@fluidframework/datastore\";\n\nimport { DependencyContainer } from \"..\";\nimport { IFluidDependencySynthesizer } from \"../IFluidDependencySynthesizer\";\nimport { FluidObjectProvider } from \"../types\";\n\nconst mockHandleContext: IFluidHandleContext = {\n absolutePath: \"\",\n isAttached: false,\n IFluidHandleContext: undefined as any,\n\n attachGraph: () => {\n throw new Error(\"Method not implemented.\");\n },\n resolveHandle: () => {\n throw new Error(\"Method not implemented.\");\n },\n};\n\nclass MockLoadable implements IFluidLoadable {\n public get IFluidLoadable() { return this; }\n public get handle() { return new FluidObjectHandle(this, \"\", mockHandleContext); }\n}\n\nclass MockFluidConfiguration implements IFluidConfiguration {\n public get IFluidConfiguration() { return this; }\n public get canReconnect() { return false; }\n public get scopes() { return [\"scope\"]; }\n}\n\ndescribe(\"Routerlicious\", () => {\n describe(\"Aqueduct\", () => {\n describe(\"DependencyContainer\", () => {\n it(`One Optional Provider registered via value`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via factory`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via value`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via factory`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Two Optional Modules all registered`, async () => {\n const dc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Optional IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Two Optional Modules one registered`, async () => {\n const dc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(!config, \"Optional IFluidConfiguration was not registered\");\n });\n\n it(`Two Optional Modules none registered`, async () => {\n const dc = new DependencyContainer();\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, {});\n const loadable = await s.IFluidLoadable;\n assert(!loadable, \"Optional IFluidLoadable was not registered\");\n const config = await s.IFluidConfiguration;\n assert(!config, \"Optional IFluidConfiguration was not registered\");\n });\n\n it(`Two Required Modules all registered`, async () => {\n const dc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable & IFluidConfiguration>(\n {}, { IFluidLoadable, IFluidConfiguration });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Required IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Required Provider not registered should throw`, async () => {\n const dc = new DependencyContainer();\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n assert.throws(() => dc.synthesize<{}, IFluidLoadable>(\n {},\n { IFluidLoadable },\n ), Error);\n });\n\n it(`Optional Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Optional Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Optional IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Optional Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Required Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Required Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable & IFluidConfiguration>(\n {}, { IFluidLoadable, IFluidConfiguration });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Required IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Required Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n const s = dc.synthesize<{}, IFluidLoadable>({}, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Registering`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n assert(Array.from(dc.registeredTypes).length === 1, \"DependencyContainer has one module\");\n });\n\n it(`Registering the same type twice throws`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n assert.throws(() => dc.register(IFluidLoadable, new MockLoadable()), Error);\n });\n\n it(`Registering then Unregistering`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n assert(!dc.has(IFluidLoadable), \"DependencyContainer doesn't have IFluidLoadable\");\n assert(Array.from(dc.registeredTypes).length === 0, \"Manager has no modules\");\n });\n\n it(`Registering then Unregistering then Registering`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n });\n\n it(`has() resolves correctly in all variations`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.register(IFluidConfiguration, new MockFluidConfiguration());\n assert(dc.has(IFluidLoadable), \"Manager has IFluidLoadable\");\n assert(dc.has(IFluidConfiguration), \"Manager has IFluidConfiguration\");\n assert(\n dc.has(IFluidLoadable) && dc.has(IFluidConfiguration),\n \"Manager has IFluidLoadable & IFluidConfiguration\");\n assert(Array.from(dc.registeredTypes).length === 2, \"Manager has two modules\");\n });\n\n it(`registeredModules() resolves correctly`, async () => {\n const dc = new DependencyContainer();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.register(IFluidConfiguration, new MockFluidConfiguration());\n const modules = Array.from(dc.registeredTypes);\n assert(modules.length === 2, \"Manager has two modules\");\n assert(modules.includes(IFluidLoadable), \"Manager has IFluidLoadable\");\n assert(modules.includes(IFluidConfiguration), \"Manager has IFluidConfiguration\");\n });\n\n it(`Child has Parent modules`, async () => {\n const parentDc = new DependencyContainer();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n assert(dc.has(IFluidLoadable), \"has includes parent registered\");\n assert(!dc.has(IFluidLoadable, true),\"has does not include excluded parent registered\");\n assert(dc.has(IFluidConfiguration),\"has includes registered\");\n assert(!dc.has(IFluidHandle),\"does not include not registered\");\n });\n\n it(`Parent Resolved from Child`, async () => {\n const parentDc = new DependencyContainer();\n const loadableToHandle: FluidObjectProvider<\"IFluidHandle\"> =\n async (fds: IFluidDependencySynthesizer) => {\n // eslint-disable-next-line @typescript-eslint/ban-types\n const loadable = fds.synthesize<{},IFluidLoadable>({},{IFluidLoadable});\n return (await loadable.IFluidLoadable).handle;\n };\n parentDc.register(IFluidHandle, loadableToHandle);\n\n const dc = new DependencyContainer(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const deps = dc.synthesize<IFluidHandle>({IFluidHandle}, {});\n assert(await deps.IFluidHandle !== undefined, \"handle undefined\");\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"dependencyContainer.spec.js","sourceRoot":"","sources":["../../src/test/dependencyContainer.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\n\nimport {\n IFluidConfiguration,\n IFluidLoadable,\n IFluidHandleContext,\n IFluidHandle,\n IProvideFluidLoadable,\n IProvideFluidConfiguration,\n IProvideFluidHandle,\n FluidObject,\n} from \"@fluidframework/core-interfaces\";\nimport { FluidObjectHandle } from \"@fluidframework/datastore\";\n\nimport { DependencyContainer } from \"..\";\nimport { IFluidDependencySynthesizer } from \"../IFluidDependencySynthesizer\";\nimport { FluidObjectProvider } from \"../types\";\n\nconst mockHandleContext: IFluidHandleContext = {\n absolutePath: \"\",\n isAttached: false,\n IFluidHandleContext: undefined as any,\n\n attachGraph: () => {\n throw new Error(\"Method not implemented.\");\n },\n resolveHandle: () => {\n throw new Error(\"Method not implemented.\");\n },\n};\n\nclass MockLoadable implements IFluidLoadable {\n public get IFluidLoadable() { return this; }\n public get handle() { return new FluidObjectHandle(this, \"\", mockHandleContext); }\n}\n\nclass MockFluidConfiguration implements IFluidConfiguration {\n public get IFluidConfiguration() { return this; }\n public get canReconnect() { return false; }\n public get scopes() { return [\"scope\"]; }\n}\n\ndescribe(\"Routerlicious\", () => {\n describe(\"Aqueduct\", () => {\n describe(\"DependencyContainer\", () => {\n it(`One Optional Provider registered via value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Two Optional Modules all registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidConfiguration>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Optional IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Two Optional Modules one registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidConfiguration>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(!config, \"Optional IFluidConfiguration was not registered\");\n });\n\n it(`Two Optional Modules none registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidConfiguration>>();\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(!loadable, \"Optional IFluidLoadable was not registered\");\n const config = await s.IFluidConfiguration;\n assert(!config, \"Optional IFluidConfiguration was not registered\");\n });\n\n it(`Two Required Modules all registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidConfiguration>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidConfiguration>(\n undefined, { IFluidLoadable, IFluidConfiguration });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Required IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Required Provider not registered should throw`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\n assert.throws(() => dc.synthesize<undefined, IProvideFluidLoadable>(\n undefined,\n { IFluidLoadable },\n ), Error);\n });\n\n it(`Optional Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Optional Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidConfiguration>>(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidConfiguration>(\n { IFluidLoadable, IFluidConfiguration }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Optional IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Optional Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Required Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Required Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidConfiguration>>(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidConfiguration>(\n undefined, { IFluidLoadable, IFluidConfiguration });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const config = await s.IFluidConfiguration;\n assert(config, \"Required IFluidConfiguration was registered\");\n assert(config === configMock, \"IFluidConfiguration is expected\");\n });\n\n it(`Required Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Registering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n });\n\n it(`Registering the same type twice throws`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n assert.throws(() => dc.register(IFluidLoadable, new MockLoadable()), Error);\n });\n\n it(`Registering then Unregistering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n assert(!dc.has(IFluidLoadable), \"DependencyContainer doesn't have IFluidLoadable\");\n });\n\n it(`Registering then Unregistering then Registering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n });\n\n it(`has() resolves correctly in all variations`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidConfiguration>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.register(IFluidConfiguration, new MockFluidConfiguration());\n assert(dc.has(IFluidLoadable), \"Manager has IFluidLoadable\");\n assert(dc.has(IFluidConfiguration), \"Manager has IFluidConfiguration\");\n assert(\n dc.has(IFluidLoadable) && dc.has(IFluidConfiguration),\n \"Manager has IFluidLoadable & IFluidConfiguration\");\n });\n\n\n it(`Child has Parent modules`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidConfiguration>>(parentDc);\n const configMock = new MockFluidConfiguration();\n dc.register(IFluidConfiguration, configMock);\n\n assert(dc.has(IFluidLoadable), \"has includes parent registered\");\n assert(!dc.has(IFluidLoadable, true),\"has does not include excluded parent registered\");\n assert(dc.has(IFluidConfiguration),\"has includes registered\");\n assert(!dc.has(IFluidHandle),\"does not include not registered\");\n });\n\n it(`Parent Resolved from Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidHandle>>();\n const loadableToHandle: FluidObjectProvider<IProvideFluidHandle> =\n async (fds: IFluidDependencySynthesizer) => {\n \n const loadable = fds.synthesize<undefined, IProvideFluidLoadable>(undefined,{IFluidLoadable});\n return (await loadable.IFluidLoadable).handle;\n };\n parentDc.register(IFluidHandle, loadableToHandle);\n\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const deps = dc.synthesize<IFluidHandle>({IFluidHandle}, undefined);\n assert(await deps.IFluidHandle !== undefined, \"handle undefined\");\n });\n\n it(`Undefined Provider is not Undefined`, async () => {\n const dc = new DependencyContainer();\n const deps = dc.synthesize<IFluidLoadable>({IFluidLoadable}, {});\n assert(deps.IFluidLoadable !== undefined, \"handle undefined\");\n assert(await deps.IFluidLoadable === undefined, \"handle undefined\");\n });\n });\n });\n});\n"]}
@@ -162,13 +162,13 @@
162
162
  "affectsGlobalScope": false
163
163
  },
164
164
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/fluidLoadable.d.ts": {
165
- "version": "9600c430e3f4fe67dbd656f22eef1f2d94fecb1b21ee0c63ebc3cc31a316713c",
166
- "signature": "9600c430e3f4fe67dbd656f22eef1f2d94fecb1b21ee0c63ebc3cc31a316713c",
165
+ "version": "4e9d111924468ed4547451e4962457ec18ad69ef965311681d1272bfd352e9f9",
166
+ "signature": "4e9d111924468ed4547451e4962457ec18ad69ef965311681d1272bfd352e9f9",
167
167
  "affectsGlobalScope": false
168
168
  },
169
169
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/serializer.d.ts": {
170
- "version": "edefb49a9a514311243924409191f01ce6fbce072ba01e387b7eabfbab096ae8",
171
- "signature": "edefb49a9a514311243924409191f01ce6fbce072ba01e387b7eabfbab096ae8",
170
+ "version": "9d1f552cc6eb78389d10237e3c61d114b9681f5098c3fc594436e7d448afe55b",
171
+ "signature": "9d1f552cc6eb78389d10237e3c61d114b9681f5098c3fc594436e7d448afe55b",
172
172
  "affectsGlobalScope": false
173
173
  },
174
174
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/fluidObject.d.ts": {
@@ -177,8 +177,8 @@
177
177
  "affectsGlobalScope": false
178
178
  },
179
179
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/fluidPackage.d.ts": {
180
- "version": "29af84fd868f666a8d2b0766b188faed869babeb3da5c556fc1151cc4e1e5153",
181
- "signature": "29af84fd868f666a8d2b0766b188faed869babeb3da5c556fc1151cc4e1e5153",
180
+ "version": "970e1154a10ec841ea6a3f2605044a65e2261bb953f3b72a1ca1faa480c697f8",
181
+ "signature": "970e1154a10ec841ea6a3f2605044a65e2261bb953f3b72a1ca1faa480c697f8",
182
182
  "affectsGlobalScope": false
183
183
  },
184
184
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts": {
@@ -502,13 +502,13 @@
502
502
  "affectsGlobalScope": false
503
503
  },
504
504
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts": {
505
- "version": "952bce19b9b3ab6b639403ca9193e086cbbd8be766b1fc330a04b7d3e13492be",
506
- "signature": "952bce19b9b3ab6b639403ca9193e086cbbd8be766b1fc330a04b7d3e13492be",
505
+ "version": "9b85431cfd5e919ca33b7c04866efc4facbebed66af3efd0a59d7e30f89c5a33",
506
+ "signature": "9b85431cfd5e919ca33b7c04866efc4facbebed66af3efd0a59d7e30f89c5a33",
507
507
  "affectsGlobalScope": false
508
508
  },
509
509
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/storage.d.ts": {
510
- "version": "1aa581496a5ac6df4808d36946ce5c5f63f7a5021d6eb329685e45c240b2f83b",
511
- "signature": "1aa581496a5ac6df4808d36946ce5c5f63f7a5021d6eb329685e45c240b2f83b",
510
+ "version": "dc51da03872a900f82db416a294523a0d37f4be324e1fd9d69c20856f01604e8",
511
+ "signature": "dc51da03872a900f82db416a294523a0d37f4be324e1fd9d69c20856f01604e8",
512
512
  "affectsGlobalScope": false
513
513
  },
514
514
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/index.d.ts": {
@@ -517,13 +517,13 @@
517
517
  "affectsGlobalScope": false
518
518
  },
519
519
  "../../../../../node_modules/@fluidframework/container-definitions/dist/deltas.d.ts": {
520
- "version": "effeaf4985959d97471a1f95db55640c93ee4600ad0b3df694b66f3e89ec646d",
521
- "signature": "effeaf4985959d97471a1f95db55640c93ee4600ad0b3df694b66f3e89ec646d",
520
+ "version": "fe0f2fb74cf4c19d3f2f3754eaad33e7037225a67191e645f2c6e9944c8a465a",
521
+ "signature": "fe0f2fb74cf4c19d3f2f3754eaad33e7037225a67191e645f2c6e9944c8a465a",
522
522
  "affectsGlobalScope": false
523
523
  },
524
524
  "../../../../../node_modules/@fluidframework/container-definitions/dist/error.d.ts": {
525
- "version": "e0cdfdeee27dbe35ece5e29a75ec4c96b2c4a748853e1acf6ae478683f48d515",
526
- "signature": "e0cdfdeee27dbe35ece5e29a75ec4c96b2c4a748853e1acf6ae478683f48d515",
525
+ "version": "fcb80d1e20711e08d39b2f1e63a1322ff26db44bf7fc8410415df957440b387b",
526
+ "signature": "fcb80d1e20711e08d39b2f1e63a1322ff26db44bf7fc8410415df957440b387b",
527
527
  "affectsGlobalScope": false
528
528
  },
529
529
  "../../../../../node_modules/@fluidframework/container-definitions/dist/fluidModule.d.ts": {
@@ -532,13 +532,13 @@
532
532
  "affectsGlobalScope": false
533
533
  },
534
534
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts": {
535
- "version": "14e52ba703d9cfbce7aa1d8104a314eeaea2f4a418f21fb0bdbac41dacffc223",
536
- "signature": "14e52ba703d9cfbce7aa1d8104a314eeaea2f4a418f21fb0bdbac41dacffc223",
535
+ "version": "2cb7e613b8c2fd69b0f04b87b1092eaf84094382f9150d11cc6782d2e5e45b7b",
536
+ "signature": "2cb7e613b8c2fd69b0f04b87b1092eaf84094382f9150d11cc6782d2e5e45b7b",
537
537
  "affectsGlobalScope": false
538
538
  },
539
539
  "../../../../../node_modules/@fluidframework/container-definitions/dist/runtime.d.ts": {
540
- "version": "91a91bba1dfc2a00e507faddeeeb6d0779cfecd3ab5a3efd8e05abdf2d4a9c4c",
541
- "signature": "91a91bba1dfc2a00e507faddeeeb6d0779cfecd3ab5a3efd8e05abdf2d4a9c4c",
540
+ "version": "473255881f89181920c6f65bdc33cb57639240a7934ea3304f2d20c8f3b24ca8",
541
+ "signature": "473255881f89181920c6f65bdc33cb57639240a7934ea3304f2d20c8f3b24ca8",
542
542
  "affectsGlobalScope": false
543
543
  },
544
544
  "../../../../../node_modules/@fluidframework/container-definitions/dist/legacy/chaincode.d.ts": {
@@ -707,8 +707,8 @@
707
707
  "affectsGlobalScope": false
708
708
  },
709
709
  "../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts": {
710
- "version": "9e9249178b023440d34edcee927f07be916f1a29c4c3c02ace4f8a060d10f3e8",
711
- "signature": "9e9249178b023440d34edcee927f07be916f1a29c4c3c02ace4f8a060d10f3e8",
710
+ "version": "8024f017b2b6f63d677f8745385686c279fc7a7ba16e134044cc80cab754c340",
711
+ "signature": "8024f017b2b6f63d677f8745385686c279fc7a7ba16e134044cc80cab754c340",
712
712
  "affectsGlobalScope": false
713
713
  },
714
714
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts": {
@@ -727,8 +727,8 @@
727
727
  "affectsGlobalScope": false
728
728
  },
729
729
  "../../../../runtime/datastore-definitions/dist/dataStoreRuntime.d.ts": {
730
- "version": "e870cc895f5a97810e1d7bf84d96533faf4fb67f00c5732d9026c3b959631479",
731
- "signature": "e870cc895f5a97810e1d7bf84d96533faf4fb67f00c5732d9026c3b959631479",
730
+ "version": "e90ee5b5e82a17db7d3d39a6ea4c8bfaf519477808367920f0514a9323177787",
731
+ "signature": "e90ee5b5e82a17db7d3d39a6ea4c8bfaf519477808367920f0514a9323177787",
732
732
  "affectsGlobalScope": false
733
733
  },
734
734
  "../../../../runtime/datastore-definitions/dist/channel.d.ts": {
@@ -752,8 +752,8 @@
752
752
  "affectsGlobalScope": false
753
753
  },
754
754
  "../../../../runtime/datastore/dist/dataStoreRuntime.d.ts": {
755
- "version": "0681e1d400359b7344d1f8390a92e66f11eaa63f1b036b2c99df853d3cbb0e77",
756
- "signature": "0681e1d400359b7344d1f8390a92e66f11eaa63f1b036b2c99df853d3cbb0e77",
755
+ "version": "08109e06a36fb9219bb0de1d0879eef2f7d42a92aa5fb585b80775259fa09316",
756
+ "signature": "08109e06a36fb9219bb0de1d0879eef2f7d42a92aa5fb585b80775259fa09316",
757
757
  "affectsGlobalScope": false
758
758
  },
759
759
  "../../../../runtime/datastore/dist/fluidHandle.d.ts": {
@@ -767,18 +767,18 @@
767
767
  "affectsGlobalScope": false
768
768
  },
769
769
  "../types.d.ts": {
770
- "version": "6b322f69f32f18a9d3528354387990b49b75fa3736891a2789cfeb99de926cee",
771
- "signature": "6b322f69f32f18a9d3528354387990b49b75fa3736891a2789cfeb99de926cee",
770
+ "version": "461180d6ff91eb3902b1a5fa34185327d785e059fdc52ad2fe2b0a16c0960489",
771
+ "signature": "461180d6ff91eb3902b1a5fa34185327d785e059fdc52ad2fe2b0a16c0960489",
772
772
  "affectsGlobalScope": false
773
773
  },
774
774
  "../IFluidDependencySynthesizer.d.ts": {
775
- "version": "93b84a17e082bd3d24ff7c121eeb509d1ccc21b59fc26fe592b67ff4cc3ad30a",
776
- "signature": "93b84a17e082bd3d24ff7c121eeb509d1ccc21b59fc26fe592b67ff4cc3ad30a",
775
+ "version": "a15809b8be1e3dd5a4f89df2886c9609eff56afa7b5e262adae346dc81d80a19",
776
+ "signature": "a15809b8be1e3dd5a4f89df2886c9609eff56afa7b5e262adae346dc81d80a19",
777
777
  "affectsGlobalScope": false
778
778
  },
779
779
  "../dependencyContainer.d.ts": {
780
- "version": "ae72dc4141881e5bdc6a1174f6f3a1328b7b7d485d24b1c9713e2fd72fcc0e4e",
781
- "signature": "ae72dc4141881e5bdc6a1174f6f3a1328b7b7d485d24b1c9713e2fd72fcc0e4e",
780
+ "version": "879d0844667a173f852a7aad941631229d8a20c3f57f46eece86de5c3db54497",
781
+ "signature": "879d0844667a173f852a7aad941631229d8a20c3f57f46eece86de5c3db54497",
782
782
  "affectsGlobalScope": false
783
783
  },
784
784
  "../index.d.ts": {
@@ -787,7 +787,7 @@
787
787
  "affectsGlobalScope": false
788
788
  },
789
789
  "../../src/test/dependencyContainer.spec.ts": {
790
- "version": "2e7709f8721ad8cf73c2d90e61dc6867d798f8de2f566f1b99a0b95269e63612",
790
+ "version": "fd0c542a8983c2fa65f29fcf889f988fdc8cc7e320f8aae9d25d6b938ee5dddc",
791
791
  "signature": "abc949a48872f03572ff3108a999c28e5e394296186194fa9e4ad357fa3cfcd7",
792
792
  "affectsGlobalScope": false
793
793
  },
@@ -897,8 +897,7 @@
897
897
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
898
898
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/index.d.ts",
899
899
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
900
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
901
- "../IFluidDependencySynthesizer.d.ts"
900
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
902
901
  ],
903
902
  "../../../../../node_modules/@fluidframework/container-definitions/dist/error.d.ts": [
904
903
  "../../../../../node_modules/@fluidframework/common-definitions/dist/index.d.ts"
@@ -926,8 +925,7 @@
926
925
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
927
926
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
928
927
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
929
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
930
- "../IFluidDependencySynthesizer.d.ts"
928
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
931
929
  ],
932
930
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts": [
933
931
  "../../../../../node_modules/@fluidframework/common-definitions/dist/index.d.ts",
@@ -942,8 +940,7 @@
942
940
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
943
941
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/index.d.ts",
944
942
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
945
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
946
- "../IFluidDependencySynthesizer.d.ts"
943
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
947
944
  ],
948
945
  "../../../../../node_modules/@fluidframework/container-definitions/dist/proxyLoader.d.ts": [
949
946
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
@@ -1002,8 +999,7 @@
1002
999
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1003
1000
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1004
1001
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1005
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1006
- "../IFluidDependencySynthesizer.d.ts"
1002
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1007
1003
  ],
1008
1004
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts": [
1009
1005
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/users.d.ts"
@@ -1259,17 +1255,9 @@
1259
1255
  "../../../../../node_modules/@types/node/zlib.d.ts"
1260
1256
  ],
1261
1257
  "../IFluidDependencySynthesizer.d.ts": [
1262
- "../../../../../node_modules/@fluidframework/container-definitions/dist/deltas.d.ts",
1263
- "../../../../../node_modules/@fluidframework/container-definitions/dist/legacy/chaincode.d.ts",
1264
- "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1265
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1266
- "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1267
- "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1268
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1269
1258
  "../types.d.ts"
1270
1259
  ],
1271
1260
  "../dependencyContainer.d.ts": [
1272
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1273
1261
  "../IFluidDependencySynthesizer.d.ts",
1274
1262
  "../types.d.ts"
1275
1263
  ],
@@ -1279,7 +1267,6 @@
1279
1267
  "../types.d.ts"
1280
1268
  ],
1281
1269
  "../types.d.ts": [
1282
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1283
1270
  "../index.d.ts"
1284
1271
  ],
1285
1272
  "../../src/test/dependencyContainer.spec.ts": [
@@ -1351,8 +1338,7 @@
1351
1338
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1352
1339
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1353
1340
  "../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts",
1354
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1355
- "../IFluidDependencySynthesizer.d.ts"
1341
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1356
1342
  ],
1357
1343
  "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts": [
1358
1344
  "../../../../../node_modules/@fluidframework/container-definitions/dist/deltas.d.ts",
@@ -1360,8 +1346,7 @@
1360
1346
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1361
1347
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1362
1348
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1363
- "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1364
- "../IFluidDependencySynthesizer.d.ts"
1349
+ "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts"
1365
1350
  ],
1366
1351
  "../../../../runtime/runtime-definitions/dist/index.d.ts": [
1367
1352
  "../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts",
@@ -1450,8 +1435,7 @@
1450
1435
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1451
1436
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/index.d.ts",
1452
1437
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1453
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1454
- "../IFluidDependencySynthesizer.d.ts"
1438
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1455
1439
  ],
1456
1440
  "../../../../../node_modules/@fluidframework/container-definitions/dist/error.d.ts": [
1457
1441
  "../../../../../node_modules/@fluidframework/common-definitions/dist/index.d.ts"
@@ -1479,8 +1463,7 @@
1479
1463
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1480
1464
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1481
1465
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1482
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1483
- "../IFluidDependencySynthesizer.d.ts"
1466
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1484
1467
  ],
1485
1468
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts": [
1486
1469
  "../../../../../node_modules/@fluidframework/common-definitions/dist/index.d.ts",
@@ -1495,8 +1478,7 @@
1495
1478
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1496
1479
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/index.d.ts",
1497
1480
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1498
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1499
- "../IFluidDependencySynthesizer.d.ts"
1481
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1500
1482
  ],
1501
1483
  "../../../../../node_modules/@fluidframework/container-definitions/dist/proxyLoader.d.ts": [
1502
1484
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
@@ -1555,8 +1537,7 @@
1555
1537
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1556
1538
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1557
1539
  "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1558
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1559
- "../IFluidDependencySynthesizer.d.ts"
1540
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1560
1541
  ],
1561
1542
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts": [
1562
1543
  "../../../../../node_modules/@fluidframework/protocol-definitions/dist/users.d.ts"
@@ -1812,17 +1793,9 @@
1812
1793
  "../../../../../node_modules/@types/node/zlib.d.ts"
1813
1794
  ],
1814
1795
  "../IFluidDependencySynthesizer.d.ts": [
1815
- "../../../../../node_modules/@fluidframework/container-definitions/dist/deltas.d.ts",
1816
- "../../../../../node_modules/@fluidframework/container-definitions/dist/legacy/chaincode.d.ts",
1817
- "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1818
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1819
- "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1820
- "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1821
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1822
1796
  "../types.d.ts"
1823
1797
  ],
1824
1798
  "../dependencyContainer.d.ts": [
1825
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1826
1799
  "../IFluidDependencySynthesizer.d.ts",
1827
1800
  "../types.d.ts"
1828
1801
  ],
@@ -1832,7 +1805,6 @@
1832
1805
  "../types.d.ts"
1833
1806
  ],
1834
1807
  "../types.d.ts": [
1835
- "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1836
1808
  "../index.d.ts"
1837
1809
  ],
1838
1810
  "../../../../runtime/datastore-definitions/dist/channel.d.ts": [
@@ -1896,8 +1868,7 @@
1896
1868
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1897
1869
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1898
1870
  "../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts",
1899
- "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts",
1900
- "../IFluidDependencySynthesizer.d.ts"
1871
+ "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts"
1901
1872
  ],
1902
1873
  "../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts": [
1903
1874
  "../../../../../node_modules/@fluidframework/container-definitions/dist/deltas.d.ts",
@@ -1905,8 +1876,7 @@
1905
1876
  "../../../../../node_modules/@fluidframework/container-definitions/dist/loader.d.ts",
1906
1877
  "../../../../../node_modules/@fluidframework/core-interfaces/dist/index.d.ts",
1907
1878
  "../../../../../node_modules/@fluidframework/driver-definitions/dist/urlResolver.d.ts",
1908
- "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts",
1909
- "../IFluidDependencySynthesizer.d.ts"
1879
+ "../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts"
1910
1880
  ],
1911
1881
  "../../../../runtime/runtime-definitions/dist/index.d.ts": [
1912
1882
  "../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts",
package/dist/types.d.ts CHANGED
@@ -2,9 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IFluidObject } from "@fluidframework/core-interfaces";
6
5
  import { IFluidDependencySynthesizer } from ".";
7
- export declare type FluidObjectKey<T extends IFluidObject> = keyof T & keyof IFluidObject;
8
6
  /**
9
7
  * This is a condensed version of Record that requires the object has all
10
8
  * the IFluidObject properties as its type mapped to a string representation
@@ -12,48 +10,31 @@ export declare type FluidObjectKey<T extends IFluidObject> = keyof T & keyof IFl
12
10
  *
13
11
  * @example - \{ IFoo: "IFoo" \}
14
12
  */
15
- export declare type FluidObjectSymbolProvider<T extends IFluidObject> = {
16
- [P in FluidObjectKey<T>]: FluidObjectKey<T> & P;
13
+ export declare type FluidObjectSymbolProvider<T> = {
14
+ [P in keyof T]?: P;
17
15
  };
18
16
  /**
19
17
  * This is a condensed version of Record that requires the object has all
20
18
  * the IFluidObject properties as its type mapped to an object that implements
21
19
  * the property.
22
20
  */
23
- export declare type AsyncRequiredFluidObjectProvider<T extends keyof IFluidObject> = {
24
- [P in T]: Promise<NonNullable<IFluidObject[P]>>;
21
+ export declare type AsyncRequiredFluidObjectProvider<T> = T extends undefined ? Record<string, never> : {
22
+ [P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>;
25
23
  };
26
24
  /**
27
25
  * This is a condensed version of Record that requires the object has all
28
26
  * the IFluidObject properties as its type, mapped to an object that implements
29
27
  * the property or undefined.
30
28
  */
31
- export declare type AsyncOptionalFluidObjectProvider<T extends keyof IFluidObject> = {
32
- [P in T]: Promise<IFluidObject[P] | undefined>;
29
+ export declare type AsyncOptionalFluidObjectProvider<T> = T extends undefined ? Record<string, never> : {
30
+ [P in keyof T]?: Promise<T[P] | undefined>;
33
31
  };
34
32
  /**
35
33
  * Combined type for Optional and Required Async Fluid object Providers
36
34
  */
37
- export declare type AsyncFluidObjectProvider<O extends keyof IFluidObject, R extends keyof IFluidObject> = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;
38
- /**
39
- * Provided a keyof IFluidObject will ensure the type is an instance of that type
40
- */
41
- export declare type NonNullableFluidObject<T extends keyof IFluidObject> = NonNullable<IFluidObject[T]>;
35
+ export declare type AsyncFluidObjectProvider<O, R = undefined> = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;
42
36
  /**
43
37
  * Multiple ways to provide a Fluid object.
44
38
  */
45
- export declare type FluidObjectProvider<T extends keyof IFluidObject> = NonNullableFluidObject<T> | Promise<NonNullableFluidObject<T>> | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullableFluidObject<T>) | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullableFluidObject<T>>);
46
- /**
47
- * @deprecated - create a new DependencyContainer instead
48
- * ProviderEntry is a mapping of the type to the Provider
49
- */
50
- export interface ProviderEntry<T extends keyof IFluidObject> {
51
- type: T;
52
- provider: FluidObjectProvider<T>;
53
- }
54
- /**
55
- * @deprecated - create a new DependencyContainer instead
56
- * A mapping of ProviderEntries
57
- */
58
- export declare type DependencyContainerRegistry = Iterable<ProviderEntry<any>>;
39
+ export declare type FluidObjectProvider<T> = NonNullable<T> | Promise<NonNullable<T>> | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>) | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);
59
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,CAAC;AAEhD,oBAAY,cAAc,CAAC,CAAC,SAAS,YAAY,IAAI,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC;AAElF;;;;;;GAMG;AACH,oBAAY,yBAAyB,CAAC,CAAC,SAAS,YAAY,IAAI;KAC3D,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;CAClD,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,SAAS,MAAM,YAAY,IAAI;KACxE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,SAAS,MAAM,YAAY,IAAI;KACxE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,oBAAY,wBAAwB,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,CAAC,SAAS,MAAM,YAAY,IACzF,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,oBAAY,sBAAsB,CAAC,CAAC,SAAS,MAAM,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhG;;GAEG;AACH,oBAAY,mBAAmB,CAAC,CAAC,SAAS,MAAM,YAAY,IACxD,sBAAsB,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACjF,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,YAAY;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,oBAAY,2BAA2B,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,CAAC;AAChD;;;;;;GAMG;AACH,oBAAY,yBAAyB,CAAC,CAAC,IAAI;KACtC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAK,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG;KAC5F,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAC/D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEN;;GAEG;AACH,oBAAY,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAC/C,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,oBAAY,mBAAmB,CAAC,CAAC,IAC7B,WAAW,CAAC,CAAC,CAAC,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidObject } from \"@fluidframework/core-interfaces\";\nimport { IFluidDependencySynthesizer } from \".\";\n\nexport type FluidObjectKey<T extends IFluidObject> = keyof T & keyof IFluidObject;\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T extends IFluidObject> = {\n [P in FluidObjectKey<T>]: FluidObjectKey<T> & P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T extends keyof IFluidObject> = {\n [P in T]: Promise<NonNullable<IFluidObject[P]>>\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T extends keyof IFluidObject> = {\n [P in T]: Promise<IFluidObject[P] | undefined>;\n};\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O extends keyof IFluidObject, R extends keyof IFluidObject>\n = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Provided a keyof IFluidObject will ensure the type is an instance of that type\n */\nexport type NonNullableFluidObject<T extends keyof IFluidObject> = NonNullable<IFluidObject[T]>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T extends keyof IFluidObject> =\n NonNullableFluidObject<T>\n | Promise<NonNullableFluidObject<T>>\n | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullableFluidObject<T>)\n | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullableFluidObject<T>>);\n\n/**\n * @deprecated - create a new DependencyContainer instead\n * ProviderEntry is a mapping of the type to the Provider\n */\nexport interface ProviderEntry<T extends keyof IFluidObject> {\n type: T;\n provider: FluidObjectProvider<T>\n}\n\n/**\n * @deprecated - create a new DependencyContainer instead\n * A mapping of ProviderEntries\n */\nexport type DependencyContainerRegistry = Iterable<ProviderEntry<any>>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidDependencySynthesizer } from \".\";\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T> = {\n [P in keyof T]?: P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T> = T extends undefined ? Record<string, never> : {\n [P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the IFluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T> = T extends undefined\n ? Record<string, never>\n : {\n [P in keyof T]?: Promise<T[P] | undefined>;\n };\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O, R = undefined>\n = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T> =\n NonNullable<T>\n | Promise<NonNullable<T>>\n | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)\n | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,CAAC,MAAM,2BAA2B,GAClC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidObject } from \"@fluidframework/core-interfaces\";\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n FluidObjectProvider,\n FluidObjectKey,\n} from \"./types\";\n\ndeclare module \"@fluidframework/core-interfaces\" {\n export interface IFluidObject {\n /** @deprecated - use `FluidObject<IFluidDependencySynthesizer>` instead */\n readonly IFluidDependencySynthesizer?: IFluidDependencySynthesizer;\n }\n}\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer\n = \"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n IFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate IFluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n /**\n * @deprecated - This will only be available on DependencyContainer\n * All the registered types available\n */\n readonly registeredTypes: Iterable<(keyof IFluidObject)>;\n\n /**\n * @deprecated - This will only be available on DependencyContainer\n * Add a new provider\n * @param type - Name of the Type T being provided\n * @param provider - A provider that will resolve the T correctly when asked\n * @throws - If passing a type that's already registered\n */\n register<T extends keyof IFluidObject>(type: T, provider: FluidObjectProvider<T>): void;\n\n /**\n * @deprecated - This will only be available on DependencyContainer\n * Remove a provider\n * @param type - Name of the provider to remove\n */\n unregister<T extends keyof IFluidObject>(type: T): void;\n\n /**\n * synthesize takes optional and required types and returns an object that will fulfill the\n * defined types based off objects that has been previously registered.\n *\n * @param optionalTypes - optional types to be in the Scope object\n * @param requiredTypes - required types that need to be in the Scope object\n */\n synthesize<\n O extends IFluidObject,\n R extends IFluidObject>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: FluidObjectSymbolProvider<R>,\n ): AsyncFluidObjectProvider<FluidObjectKey<O>, FluidObjectKey<R>>;\n\n /**\n * Check if a given type is registered\n * @param type - Type to check\n */\n has(type: (keyof IFluidObject)): boolean;\n\n /**\n * @deprecated - This will be removed. Use synthesize or has instead\n * Get a provider. undefined if not available.\n * @param type - Type to get\n */\n getProvider<T extends keyof IFluidObject>(type: T): FluidObjectProvider<T> | undefined;\n}\n"]}
1
+ {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,CAAC,MAAM,2BAA2B,GAClC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n} from \"./types\";\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer\n = \"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n IFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate IFluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n \n /**\n * synthesize takes optional and required types and returns an object that will fulfill the\n * defined types based off objects that has been previously registered.\n *\n * @param optionalTypes - optional types to be in the Scope object\n * @param requiredTypes - required types that need to be in the Scope object\n */\n synthesize<O, R = undefined | Record<string, never>>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R>;\n\n /**\n * Check if a given type is registered\n * @param type - Type to check\n */\n has(type: string): boolean;\n}\n"]}