@aws-amplify/data-schema 0.15.0 → 0.16.0
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.
- package/{lib-esm/src → dist/cjs}/Authorization.js +149 -31
- package/dist/cjs/Authorization.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ClientSchema.js +3 -1
- package/dist/cjs/ClientSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CombineSchema.js +3 -2
- package/dist/cjs/CombineSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CustomOperation.js +7 -3
- package/dist/cjs/CustomOperation.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CustomType.js +3 -1
- package/dist/cjs/CustomType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/EnumType.js +3 -1
- package/dist/cjs/EnumType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/Handler.js +3 -1
- package/dist/cjs/Handler.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/CustomOperations.js +3 -1
- package/dist/cjs/MappedTypes/CustomOperations.js.map +1 -0
- package/dist/cjs/MappedTypes/ExtractNonModelTypes.js +4 -0
- package/dist/cjs/MappedTypes/ExtractNonModelTypes.js.map +1 -0
- package/dist/cjs/MappedTypes/ImplicitFieldInjector.js +4 -0
- package/dist/cjs/MappedTypes/ImplicitFieldInjector.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/MapSecondaryIndexes.js +3 -1
- package/dist/cjs/MappedTypes/MapSecondaryIndexes.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/ModelMetadata.js +3 -1
- package/dist/cjs/MappedTypes/ModelMetadata.js.map +1 -0
- package/dist/cjs/MappedTypes/ResolveFieldProperties.js +4 -0
- package/dist/cjs/MappedTypes/ResolveFieldProperties.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/ResolveSchema.js +3 -1
- package/dist/cjs/MappedTypes/ResolveSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelField.js +8 -3
- package/dist/cjs/ModelField.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelIndex.js +3 -1
- package/dist/cjs/ModelIndex.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelRelationalField.js +7 -10
- package/dist/cjs/ModelRelationalField.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelSchema.js +10 -5
- package/dist/cjs/ModelSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelType.js +8 -3
- package/dist/cjs/ModelType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/RefType.js +8 -5
- package/dist/cjs/RefType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/SchemaProcessor.js +15 -61
- package/dist/cjs/SchemaProcessor.js.map +1 -0
- package/{lib-esm/src/index.js → dist/cjs/a.js} +4 -4
- package/dist/cjs/a.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/internals/index.js +3 -1
- package/dist/cjs/internals/index.js.map +1 -0
- package/dist/cjs/runtime/addSchemaToClient.js +17 -0
- package/dist/cjs/runtime/addSchemaToClient.js.map +1 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js +22 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -0
- package/dist/cjs/runtime/bridge-types.js +15 -0
- package/dist/cjs/runtime/bridge-types.js.map +1 -0
- package/dist/cjs/runtime/client/index.js +17 -0
- package/dist/cjs/runtime/client/index.js.map +1 -0
- package/dist/cjs/runtime/client/index.v3.js +7 -0
- package/dist/cjs/runtime/client/index.v3.js.map +1 -0
- package/dist/cjs/runtime/index.js +13 -0
- package/dist/cjs/runtime/index.js.map +1 -0
- package/dist/cjs/runtime/index.v3.js +13 -0
- package/dist/cjs/runtime/index.v3.js.map +1 -0
- package/dist/cjs/runtime/internals/APIClient.js +740 -0
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -0
- package/dist/cjs/runtime/internals/clientUtils.js +29 -0
- package/dist/cjs/runtime/internals/clientUtils.js.map +1 -0
- package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js +49 -0
- package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/index.js +21 -0
- package/dist/cjs/runtime/internals/index.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/custom.js +356 -0
- package/dist/cjs/runtime/internals/operations/custom.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/get.js +62 -0
- package/dist/cjs/runtime/internals/operations/get.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/indexQuery.js +75 -0
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/list.js +74 -0
- package/dist/cjs/runtime/internals/operations/list.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/observeQuery.js +121 -0
- package/dist/cjs/runtime/internals/operations/observeQuery.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/subscription.js +31 -0
- package/dist/cjs/runtime/internals/operations/subscription.js.map +1 -0
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js +53 -0
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/server/index.js +8 -0
- package/dist/cjs/runtime/internals/server/index.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js +21 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js +45 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js +11 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js +11 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js +15 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js.map +1 -0
- package/dist/cjs/runtime/utils/findIndexByFields.js +25 -0
- package/dist/cjs/runtime/utils/findIndexByFields.js.map +1 -0
- package/dist/cjs/runtime/utils/index.js +11 -0
- package/dist/cjs/runtime/utils/index.js.map +1 -0
- package/dist/cjs/runtime/utils/resolveOwnerFields.js +48 -0
- package/dist/cjs/runtime/utils/resolveOwnerFields.js.map +1 -0
- package/dist/cjs/runtime/utils/resolvePKFields.js +17 -0
- package/dist/cjs/runtime/utils/resolvePKFields.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/Brand.js +3 -1
- package/dist/cjs/util/Brand.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/IndexLimit.js +3 -1
- package/dist/cjs/util/IndexLimit.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/SpreadTuple.js +3 -1
- package/dist/cjs/util/SpreadTuple.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/index.js +3 -1
- package/dist/cjs/util/index.js.map +1 -0
- package/{lib-esm/src → dist/esm}/Authorization.d.ts +105 -31
- package/dist/esm/Authorization.mjs +446 -0
- package/dist/esm/Authorization.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ClientSchema.d.ts +1 -2
- package/dist/esm/ClientSchema.mjs +2 -0
- package/dist/esm/ClientSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CombineSchema.d.ts +0 -1
- package/dist/esm/CombineSchema.mjs +39 -0
- package/dist/esm/CombineSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CustomOperation.d.ts +2 -3
- package/dist/esm/CustomOperation.mjs +67 -0
- package/dist/esm/CustomOperation.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CustomType.d.ts +0 -1
- package/dist/esm/CustomType.mjs +13 -0
- package/dist/esm/CustomType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/EnumType.d.ts +0 -1
- package/dist/esm/EnumType.mjs +16 -0
- package/dist/esm/EnumType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/Handler.d.ts +0 -1
- package/dist/esm/Handler.mjs +48 -0
- package/dist/esm/Handler.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/CustomOperations.d.ts +0 -1
- package/dist/esm/MappedTypes/CustomOperations.mjs +2 -0
- package/dist/esm/MappedTypes/CustomOperations.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ExtractNonModelTypes.d.ts +0 -1
- package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs +2 -0
- package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ImplicitFieldInjector.d.ts +0 -1
- package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs +2 -0
- package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/MapSecondaryIndexes.d.ts +0 -1
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs +2 -0
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ModelMetadata.d.ts +0 -1
- package/dist/esm/MappedTypes/ModelMetadata.mjs +2 -0
- package/dist/esm/MappedTypes/ModelMetadata.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ResolveFieldProperties.d.ts +0 -1
- package/dist/esm/MappedTypes/ResolveFieldProperties.mjs +2 -0
- package/dist/esm/MappedTypes/ResolveFieldProperties.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ResolveSchema.d.ts +0 -1
- package/dist/esm/MappedTypes/ResolveSchema.mjs +2 -0
- package/dist/esm/MappedTypes/ResolveSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelField.d.ts +2 -3
- package/dist/esm/ModelField.mjs +199 -0
- package/dist/esm/ModelField.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelIndex.d.ts +0 -1
- package/dist/esm/ModelIndex.mjs +33 -0
- package/dist/esm/ModelIndex.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelRelationalField.d.ts +3 -4
- package/dist/esm/ModelRelationalField.mjs +88 -0
- package/dist/esm/ModelRelationalField.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelSchema.d.ts +3 -4
- package/dist/esm/ModelSchema.mjs +163 -0
- package/dist/esm/ModelSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelType.d.ts +2 -3
- package/dist/esm/ModelType.mjs +66 -0
- package/dist/esm/ModelType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/RefType.d.ts +2 -3
- package/dist/esm/RefType.mjs +48 -0
- package/dist/esm/RefType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/SchemaProcessor.d.ts +0 -1
- package/dist/esm/SchemaProcessor.mjs +926 -0
- package/dist/esm/SchemaProcessor.mjs.map +1 -0
- package/{lib-esm/src/index.d.ts → dist/esm/a.d.ts} +1 -3
- package/dist/esm/a.mjs +11 -0
- package/dist/esm/a.mjs.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/internals/index.d.ts +2 -0
- package/dist/esm/internals/index.mjs +2 -0
- package/dist/esm/internals/index.mjs.map +1 -0
- package/dist/esm/runtime/addSchemaToClient.d.ts +3 -0
- package/dist/esm/runtime/addSchemaToClient.mjs +17 -0
- package/dist/esm/runtime/addSchemaToClient.mjs.map +1 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.d.ts +3 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs +22 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -0
- package/dist/esm/runtime/bridge-types.d.ts +281 -0
- package/dist/esm/runtime/bridge-types.mjs +13 -0
- package/dist/esm/runtime/bridge-types.mjs.map +1 -0
- package/dist/esm/runtime/client/index.d.ts +571 -0
- package/dist/esm/runtime/client/index.mjs +2 -0
- package/dist/esm/runtime/client/index.mjs.map +1 -0
- package/dist/esm/runtime/client/index.v3.d.ts +15 -0
- package/dist/esm/runtime/client/index.v3.mjs +2 -0
- package/dist/esm/runtime/client/index.v3.mjs.map +1 -0
- package/dist/esm/runtime/index.d.ts +4 -0
- package/dist/esm/runtime/index.mjs +4 -0
- package/dist/esm/runtime/index.mjs.map +1 -0
- package/dist/esm/runtime/index.v3.d.ts +4 -0
- package/dist/esm/runtime/index.v3.mjs +4 -0
- package/dist/esm/runtime/index.v3.mjs.map +1 -0
- package/dist/esm/runtime/internals/APIClient.d.ts +125 -0
- package/dist/esm/runtime/internals/APIClient.mjs +728 -0
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -0
- package/dist/esm/runtime/internals/clientUtils.d.ts +6 -0
- package/dist/esm/runtime/internals/clientUtils.mjs +26 -0
- package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.d.ts +8 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs +44 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/index.d.ts +6 -0
- package/dist/esm/runtime/internals/index.mjs +7 -0
- package/dist/esm/runtime/internals/index.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/custom.d.ts +61 -0
- package/dist/esm/runtime/internals/operations/custom.mjs +354 -0
- package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/get.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/get.mjs +60 -0
- package/dist/esm/runtime/internals/operations/get.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/indexQuery.d.ts +7 -0
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +73 -0
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/list.d.ts +2 -0
- package/dist/esm/runtime/internals/operations/list.mjs +72 -0
- package/dist/esm/runtime/internals/operations/list.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/observeQuery.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/observeQuery.mjs +120 -0
- package/dist/esm/runtime/internals/operations/observeQuery.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/subscription.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/subscription.mjs +29 -0
- package/dist/esm/runtime/internals/operations/subscription.mjs.map +1 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs +51 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/server/index.d.ts +1 -0
- package/dist/esm/runtime/internals/server/index.mjs +2 -0
- package/dist/esm/runtime/internals/server/index.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs +18 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs +43 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.d.ts +2 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.d.ts +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.d.ts +2 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs +12 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs.map +1 -0
- package/dist/esm/runtime/utils/findIndexByFields.d.ts +9 -0
- package/dist/esm/runtime/utils/findIndexByFields.mjs +22 -0
- package/dist/esm/runtime/utils/findIndexByFields.mjs.map +1 -0
- package/dist/esm/runtime/utils/index.d.ts +2 -0
- package/dist/esm/runtime/utils/index.mjs +3 -0
- package/dist/esm/runtime/utils/index.mjs.map +1 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.d.ts +12 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.mjs +45 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.mjs.map +1 -0
- package/dist/esm/runtime/utils/resolvePKFields.d.ts +13 -0
- package/dist/esm/runtime/utils/resolvePKFields.mjs +14 -0
- package/dist/esm/runtime/utils/resolvePKFields.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/Brand.d.ts +0 -1
- package/dist/esm/util/Brand.mjs +30 -0
- package/dist/esm/util/Brand.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/IndexLimit.d.ts +0 -1
- package/dist/esm/util/IndexLimit.mjs +2 -0
- package/dist/esm/util/IndexLimit.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/SpreadTuple.d.ts +0 -1
- package/dist/esm/util/SpreadTuple.mjs +2 -0
- package/dist/esm/util/SpreadTuple.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/index.d.ts +0 -1
- package/dist/esm/util/index.mjs +2 -0
- package/dist/esm/util/index.mjs.map +1 -0
- package/dist/meta/cjs.tsbuildinfo +1 -0
- package/internals/package.json +7 -5
- package/package.json +31 -14
- package/runtime/package.json +8 -0
- package/src/Authorization.ts +684 -0
- package/src/ClientSchema.ts +118 -0
- package/src/CombineSchema.ts +58 -0
- package/src/CustomOperation.ts +286 -0
- package/src/CustomType.ts +67 -0
- package/src/EnumType.ts +36 -0
- package/src/Handler.ts +127 -0
- package/src/MappedTypes/CustomOperations.ts +256 -0
- package/src/MappedTypes/ExtractNonModelTypes.ts +154 -0
- package/src/MappedTypes/ImplicitFieldInjector.ts +69 -0
- package/src/MappedTypes/MapSecondaryIndexes.ts +100 -0
- package/src/MappedTypes/ModelMetadata.ts +87 -0
- package/src/MappedTypes/ResolveFieldProperties.ts +254 -0
- package/src/MappedTypes/ResolveSchema.ts +148 -0
- package/src/ModelField.ts +304 -0
- package/src/ModelIndex.ts +91 -0
- package/src/ModelRelationalField.ts +263 -0
- package/src/ModelSchema.ts +437 -0
- package/src/ModelType.ts +345 -0
- package/src/RefType.ts +139 -0
- package/src/SchemaProcessor.ts +1516 -0
- package/src/a.ts +58 -0
- package/src/index.ts +6 -0
- package/src/internals/index.ts +2 -0
- package/src/runtime/addSchemaToClient.ts +45 -0
- package/src/runtime/addSchemaToClientWithInstance.ts +46 -0
- package/src/runtime/bridge-types.ts +382 -0
- package/src/runtime/client/index.ts +923 -0
- package/src/runtime/client/index.v3.ts +52 -0
- package/src/runtime/index.ts +7 -0
- package/src/runtime/index.v3.ts +7 -0
- package/src/runtime/internals/APIClient.ts +1082 -0
- package/src/runtime/internals/clientUtils.ts +37 -0
- package/src/runtime/internals/generateCustomOperationsProperty.ts +116 -0
- package/src/runtime/internals/index.ts +12 -0
- package/src/runtime/internals/operations/custom.ts +497 -0
- package/src/runtime/internals/operations/get.ts +150 -0
- package/src/runtime/internals/operations/indexQuery.ts +178 -0
- package/src/runtime/internals/operations/list.ts +143 -0
- package/src/runtime/internals/operations/observeQuery.ts +146 -0
- package/src/runtime/internals/operations/subscription.ts +78 -0
- package/src/runtime/internals/server/generateModelsProperty.ts +94 -0
- package/src/runtime/internals/server/index.ts +4 -0
- package/src/runtime/internals/utils/clientProperties/generateEnumsProperty.ts +34 -0
- package/src/runtime/internals/utils/clientProperties/generateModelsProperty.ts +88 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.ts +10 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.ts +13 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.ts +15 -0
- package/src/runtime/utils/findIndexByFields.ts +31 -0
- package/src/runtime/utils/index.ts +5 -0
- package/src/runtime/utils/resolveOwnerFields.ts +77 -0
- package/src/runtime/utils/resolvePKFields.ts +23 -0
- package/src/util/Brand.ts +45 -0
- package/src/util/IndexLimit.ts +12 -0
- package/src/util/SpreadTuple.ts +10 -0
- package/src/util/index.ts +3 -0
- package/lib-esm/index.d.ts +0 -5
- package/lib-esm/index.d.ts.map +0 -1
- package/lib-esm/index.js +0 -28
- package/lib-esm/src/Authorization.d.ts.map +0 -1
- package/lib-esm/src/ClientSchema.d.ts.map +0 -1
- package/lib-esm/src/CombineSchema.d.ts.map +0 -1
- package/lib-esm/src/CustomOperation.d.ts.map +0 -1
- package/lib-esm/src/CustomType.d.ts.map +0 -1
- package/lib-esm/src/EnumType.d.ts.map +0 -1
- package/lib-esm/src/Handler.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/CustomOperations.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.js +0 -2
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.js +0 -2
- package/lib-esm/src/MappedTypes/MapSecondaryIndexes.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ModelMetadata.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.js +0 -2
- package/lib-esm/src/MappedTypes/ResolveSchema.d.ts.map +0 -1
- package/lib-esm/src/ModelField.d.ts.map +0 -1
- package/lib-esm/src/ModelIndex.d.ts.map +0 -1
- package/lib-esm/src/ModelRelationalField.d.ts.map +0 -1
- package/lib-esm/src/ModelSchema.d.ts.map +0 -1
- package/lib-esm/src/ModelType.d.ts.map +0 -1
- package/lib-esm/src/RefType.d.ts.map +0 -1
- package/lib-esm/src/SchemaProcessor.d.ts.map +0 -1
- package/lib-esm/src/index.d.ts.map +0 -1
- package/lib-esm/src/internals/index.d.ts +0 -2
- package/lib-esm/src/internals/index.d.ts.map +0 -1
- package/lib-esm/src/util/Brand.d.ts.map +0 -1
- package/lib-esm/src/util/IndexLimit.d.ts.map +0 -1
- package/lib-esm/src/util/SpreadTuple.d.ts.map +0 -1
- package/lib-esm/src/util/index.d.ts.map +0 -1
- package/lib-esm/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
DerivedApiDefinition,
|
|
3
|
+
SetTypeSubArg,
|
|
4
|
+
SchemaConfiguration,
|
|
5
|
+
DataSourceConfiguration,
|
|
6
|
+
DatasourceEngine,
|
|
7
|
+
UnionToIntersection,
|
|
8
|
+
} from '@aws-amplify/data-schema-types';
|
|
9
|
+
import {
|
|
10
|
+
type ModelType,
|
|
11
|
+
type ModelTypeParamShape,
|
|
12
|
+
type InternalModel,
|
|
13
|
+
isSchemaModelType,
|
|
14
|
+
SchemaModelType,
|
|
15
|
+
AddRelationshipFieldsToModelTypeFields,
|
|
16
|
+
} from './ModelType';
|
|
17
|
+
import type { EnumType, EnumTypeParamShape } from './EnumType';
|
|
18
|
+
import type { CustomType, CustomTypeParamShape } from './CustomType';
|
|
19
|
+
import type {
|
|
20
|
+
CustomOperation,
|
|
21
|
+
CustomOperationParamShape,
|
|
22
|
+
InternalCustom,
|
|
23
|
+
MutationCustomOperation,
|
|
24
|
+
QueryCustomOperation,
|
|
25
|
+
SubscriptionCustomOperation,
|
|
26
|
+
} from './CustomOperation';
|
|
27
|
+
import { processSchema } from './SchemaProcessor';
|
|
28
|
+
import { AllowModifier, SchemaAuthorization, allow } from './Authorization';
|
|
29
|
+
import { Brand, brand } from './util';
|
|
30
|
+
import {
|
|
31
|
+
ModelRelationalField,
|
|
32
|
+
ModelRelationalFieldParamShape,
|
|
33
|
+
} from './ModelRelationalField';
|
|
34
|
+
|
|
35
|
+
export const rdsSchemaBrandName = 'RDSSchema';
|
|
36
|
+
export const rdsSchemaBrand = brand(rdsSchemaBrandName);
|
|
37
|
+
export type RDSSchemaBrand = Brand<typeof rdsSchemaBrandName>;
|
|
38
|
+
|
|
39
|
+
export const ddbSchemaBrandName = 'DDBSchema';
|
|
40
|
+
const ddbSchemaBrand = brand(ddbSchemaBrandName);
|
|
41
|
+
export type DDBSchemaBrand = Brand<typeof ddbSchemaBrandName>;
|
|
42
|
+
|
|
43
|
+
type SchemaContent =
|
|
44
|
+
| ModelType<ModelTypeParamShape, any>
|
|
45
|
+
| CustomType<CustomTypeParamShape>
|
|
46
|
+
| EnumType<EnumTypeParamShape>
|
|
47
|
+
| CustomOperation<CustomOperationParamShape, any>;
|
|
48
|
+
|
|
49
|
+
type ModelSchemaContents = Record<string, SchemaContent>;
|
|
50
|
+
type InternalSchemaModels = Record<
|
|
51
|
+
string,
|
|
52
|
+
InternalModel | EnumType<any> | CustomType<any> | InternalCustom
|
|
53
|
+
>;
|
|
54
|
+
|
|
55
|
+
export type ModelSchemaParamShape = {
|
|
56
|
+
types: ModelSchemaContents;
|
|
57
|
+
authorization: SchemaAuthorization<any, any, any>[];
|
|
58
|
+
configuration: SchemaConfiguration<any, any>;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type RDSModelSchemaParamShape = ModelSchemaParamShape;
|
|
62
|
+
|
|
63
|
+
export type InternalSchema = {
|
|
64
|
+
data: {
|
|
65
|
+
types: InternalSchemaModels;
|
|
66
|
+
authorization: SchemaAuthorization<any, any, any>[];
|
|
67
|
+
configuration: SchemaConfiguration<any, any>;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export type BaseSchema<
|
|
72
|
+
T extends ModelSchemaParamShape,
|
|
73
|
+
IsRDS extends boolean = false,
|
|
74
|
+
> = {
|
|
75
|
+
data: T;
|
|
76
|
+
models: {
|
|
77
|
+
[TypeKey in keyof T['types']]: T['types'][TypeKey] extends ModelType<
|
|
78
|
+
ModelTypeParamShape,
|
|
79
|
+
never | 'identifier'
|
|
80
|
+
>
|
|
81
|
+
? SchemaModelType<T['types'][TypeKey], TypeKey & string, IsRDS>
|
|
82
|
+
: never;
|
|
83
|
+
};
|
|
84
|
+
transform: () => DerivedApiDefinition;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export type GenericModelSchema<T extends ModelSchemaParamShape> =
|
|
88
|
+
BaseSchema<T> & Brand<typeof rdsSchemaBrandName | typeof ddbSchemaBrandName>;
|
|
89
|
+
|
|
90
|
+
export type ModelSchema<
|
|
91
|
+
T extends ModelSchemaParamShape,
|
|
92
|
+
UsedMethods extends 'authorization' | 'addRelationships' = never,
|
|
93
|
+
> = Omit<
|
|
94
|
+
{
|
|
95
|
+
authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(
|
|
96
|
+
callback: (allow: AllowModifier) => AuthRules | AuthRules[],
|
|
97
|
+
) => ModelSchema<
|
|
98
|
+
SetTypeSubArg<T, 'authorization', AuthRules[]>,
|
|
99
|
+
UsedMethods | 'authorization'
|
|
100
|
+
>;
|
|
101
|
+
},
|
|
102
|
+
UsedMethods
|
|
103
|
+
> &
|
|
104
|
+
BaseSchema<T> &
|
|
105
|
+
DDBSchemaBrand;
|
|
106
|
+
|
|
107
|
+
type RDSModelSchemaFunctions =
|
|
108
|
+
| 'addQueries'
|
|
109
|
+
| 'addMutations'
|
|
110
|
+
| 'addSubscriptions'
|
|
111
|
+
| 'authorization'
|
|
112
|
+
| 'relationships'
|
|
113
|
+
| 'setAuthorization'
|
|
114
|
+
| 'renameModelFields'
|
|
115
|
+
| 'renameModels';
|
|
116
|
+
|
|
117
|
+
export type RDSModelSchema<
|
|
118
|
+
T extends RDSModelSchemaParamShape,
|
|
119
|
+
UsedMethods extends RDSModelSchemaFunctions = never,
|
|
120
|
+
RelationshipTemplate extends Record<
|
|
121
|
+
string,
|
|
122
|
+
ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>
|
|
123
|
+
> = Record<
|
|
124
|
+
string,
|
|
125
|
+
ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>
|
|
126
|
+
>,
|
|
127
|
+
> = Omit<
|
|
128
|
+
{
|
|
129
|
+
addQueries: <Queries extends Record<string, QueryCustomOperation>>(
|
|
130
|
+
types: Queries,
|
|
131
|
+
) => RDSModelSchema<
|
|
132
|
+
SetTypeSubArg<T, 'types', T['types'] & Queries>,
|
|
133
|
+
UsedMethods | 'addQueries'
|
|
134
|
+
>;
|
|
135
|
+
addMutations: <Mutations extends Record<string, MutationCustomOperation>>(
|
|
136
|
+
types: Mutations,
|
|
137
|
+
) => RDSModelSchema<
|
|
138
|
+
SetTypeSubArg<T, 'types', T['types'] & Mutations>,
|
|
139
|
+
UsedMethods | 'addMutations'
|
|
140
|
+
>;
|
|
141
|
+
addSubscriptions: <
|
|
142
|
+
Subscriptions extends Record<string, SubscriptionCustomOperation>,
|
|
143
|
+
>(
|
|
144
|
+
types: Subscriptions,
|
|
145
|
+
) => RDSModelSchema<
|
|
146
|
+
SetTypeSubArg<T, 'types', T['types'] & Subscriptions>,
|
|
147
|
+
UsedMethods | 'addSubscriptions'
|
|
148
|
+
>;
|
|
149
|
+
// TODO: hide this, since SQL schema auth is configured via .setAuthorization?
|
|
150
|
+
authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(
|
|
151
|
+
callback: (allow: AllowModifier) => AuthRules | AuthRules[],
|
|
152
|
+
) => RDSModelSchema<
|
|
153
|
+
SetTypeSubArg<T, 'authorization', AuthRules[]>,
|
|
154
|
+
UsedMethods | 'authorization'
|
|
155
|
+
>;
|
|
156
|
+
setAuthorization: (
|
|
157
|
+
callback: (
|
|
158
|
+
models: BaseSchema<T, true>['models'],
|
|
159
|
+
schema: RDSModelSchema<T, UsedMethods | 'setAuthorization'>,
|
|
160
|
+
) => void,
|
|
161
|
+
) => RDSModelSchema<T>;
|
|
162
|
+
relationships: <
|
|
163
|
+
Relationships extends ReadonlyArray<
|
|
164
|
+
Partial<Record<keyof T['types'], RelationshipTemplate>>
|
|
165
|
+
>,
|
|
166
|
+
>(
|
|
167
|
+
callback: (models: BaseSchema<T, true>['models']) => Relationships,
|
|
168
|
+
) => RDSModelSchema<
|
|
169
|
+
UnionToIntersection<Relationships[number]> extends infer RelationshipsDefs
|
|
170
|
+
? RelationshipsDefs extends Record<string, RelationshipTemplate>
|
|
171
|
+
? SetTypeSubArg<
|
|
172
|
+
T,
|
|
173
|
+
'types',
|
|
174
|
+
{
|
|
175
|
+
[ModelName in keyof T['types']]: ModelName extends keyof RelationshipsDefs
|
|
176
|
+
? AddRelationshipFieldsToModelTypeFields<
|
|
177
|
+
T['types'][ModelName],
|
|
178
|
+
RelationshipsDefs[ModelName]
|
|
179
|
+
>
|
|
180
|
+
: T['types'][ModelName];
|
|
181
|
+
}
|
|
182
|
+
>
|
|
183
|
+
: T
|
|
184
|
+
: T,
|
|
185
|
+
UsedMethods | 'relationships'
|
|
186
|
+
>;
|
|
187
|
+
renameModels: <
|
|
188
|
+
NewName extends string,
|
|
189
|
+
CurName extends string = keyof BaseSchema<T>['models'] & string,
|
|
190
|
+
const ChangeLog extends readonly [CurName, NewName][] = [],
|
|
191
|
+
>(
|
|
192
|
+
callback: () => ChangeLog,
|
|
193
|
+
) => RDSModelSchema<
|
|
194
|
+
SetTypeSubArg<T, 'types', RenameModelArr<ChangeLog, T['types']>>,
|
|
195
|
+
UsedMethods | 'renameModels'
|
|
196
|
+
>;
|
|
197
|
+
},
|
|
198
|
+
UsedMethods
|
|
199
|
+
> &
|
|
200
|
+
BaseSchema<T, true> &
|
|
201
|
+
RDSSchemaBrand;
|
|
202
|
+
|
|
203
|
+
type RenameModel<
|
|
204
|
+
CurName extends string,
|
|
205
|
+
NewName extends string,
|
|
206
|
+
Types extends ModelSchemaContents,
|
|
207
|
+
> = {
|
|
208
|
+
[Type in keyof Types as Type extends CurName ? NewName : Type]: Types[Type];
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
type RenameModelArr<
|
|
212
|
+
ChangeLog extends readonly [string, string][],
|
|
213
|
+
Types extends ModelSchemaContents,
|
|
214
|
+
> = ChangeLog extends readonly [
|
|
215
|
+
infer CurPair extends [string, string],
|
|
216
|
+
...infer Rest extends readonly [string, string][],
|
|
217
|
+
]
|
|
218
|
+
? RenameModelArr<Rest, RenameModel<CurPair[0], CurPair[1], Types>>
|
|
219
|
+
: Types;
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Amplify API Next Model Schema shape
|
|
223
|
+
*/
|
|
224
|
+
export type ModelSchemaType = ModelSchema<ModelSchemaParamShape>;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Filter the schema types down to only include the ModelTypes as SchemaModelType
|
|
228
|
+
*
|
|
229
|
+
* @param schemaContents The object containing all SchemaContent for this schema
|
|
230
|
+
* @returns Only the schemaContents that are ModelTypes, coerced to the SchemaModelType surface
|
|
231
|
+
*/
|
|
232
|
+
const filterSchemaModelTypes = (
|
|
233
|
+
schemaContents: ModelSchemaContents,
|
|
234
|
+
): Record<string, SchemaModelType> => {
|
|
235
|
+
const modelTypes: Record<string, SchemaModelType> = {};
|
|
236
|
+
|
|
237
|
+
if (schemaContents) {
|
|
238
|
+
Object.entries(schemaContents).forEach(([key, content]) => {
|
|
239
|
+
if (isSchemaModelType(content)) {
|
|
240
|
+
modelTypes[key] = content;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return modelTypes;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Model Schema type guard
|
|
250
|
+
* @param schema - api-next ModelSchema or string
|
|
251
|
+
* @returns true if the given value is a ModelSchema
|
|
252
|
+
*/
|
|
253
|
+
export const isModelSchema = (
|
|
254
|
+
schema: string | ModelSchemaType,
|
|
255
|
+
): schema is ModelSchemaType => {
|
|
256
|
+
return typeof schema === 'object' && schema.data !== undefined;
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
function _rdsSchema<
|
|
260
|
+
T extends RDSModelSchemaParamShape,
|
|
261
|
+
DSC extends SchemaConfiguration<any, any>,
|
|
262
|
+
>(types: T['types'], config: DSC): RDSModelSchema<T> {
|
|
263
|
+
const data: RDSModelSchemaParamShape = {
|
|
264
|
+
types,
|
|
265
|
+
authorization: [],
|
|
266
|
+
configuration: config,
|
|
267
|
+
};
|
|
268
|
+
const models = filterSchemaModelTypes(data.types) as any;
|
|
269
|
+
return {
|
|
270
|
+
data,
|
|
271
|
+
models,
|
|
272
|
+
transform(): DerivedApiDefinition {
|
|
273
|
+
const internalSchema: InternalSchema = { data } as InternalSchema;
|
|
274
|
+
|
|
275
|
+
return processSchema({ schema: internalSchema });
|
|
276
|
+
},
|
|
277
|
+
authorization(callback): any {
|
|
278
|
+
const rules = callback(allow);
|
|
279
|
+
this.data.authorization = Array.isArray(rules) ? rules : [rules];
|
|
280
|
+
const { authorization: _, ...rest } = this;
|
|
281
|
+
return rest;
|
|
282
|
+
},
|
|
283
|
+
addQueries(types: Record<string, QueryCustomOperation>): any {
|
|
284
|
+
this.data.types = { ...this.data.types, ...types };
|
|
285
|
+
const { addQueries: _, ...rest } = this;
|
|
286
|
+
return rest;
|
|
287
|
+
},
|
|
288
|
+
addMutations(types: Record<string, MutationCustomOperation>): any {
|
|
289
|
+
this.data.types = { ...this.data.types, ...types };
|
|
290
|
+
const { addMutations: _, ...rest } = this;
|
|
291
|
+
return rest;
|
|
292
|
+
},
|
|
293
|
+
addSubscriptions(types: Record<string, SubscriptionCustomOperation>): any {
|
|
294
|
+
this.data.types = { ...this.data.types, ...types };
|
|
295
|
+
const { addSubscriptions: _, ...rest } = this;
|
|
296
|
+
return rest;
|
|
297
|
+
},
|
|
298
|
+
setAuthorization(callback) {
|
|
299
|
+
callback(models, this);
|
|
300
|
+
const { setAuthorization: _, ...rest } = this;
|
|
301
|
+
return rest;
|
|
302
|
+
},
|
|
303
|
+
relationships(callback): any {
|
|
304
|
+
const { relationships: _, ...rest } = this;
|
|
305
|
+
// The relationships are added via `models.<Model>.addRelationships`
|
|
306
|
+
// modifiers that's being called within the callback. They are modifying
|
|
307
|
+
// by references on each model, so there is not anything else to be done
|
|
308
|
+
// here.
|
|
309
|
+
callback(models);
|
|
310
|
+
return rest;
|
|
311
|
+
},
|
|
312
|
+
renameModels(callback): any {
|
|
313
|
+
const { renameModels: _, ...rest } = this;
|
|
314
|
+
// returns an array of tuples [curName, newName]
|
|
315
|
+
const changeLog = callback();
|
|
316
|
+
|
|
317
|
+
changeLog.forEach(([curName, newName]) => {
|
|
318
|
+
const currentType = data.types[curName];
|
|
319
|
+
|
|
320
|
+
if (currentType === undefined) {
|
|
321
|
+
throw new Error(
|
|
322
|
+
`Invalid renameModels call. ${curName} is not defined in the schema`,
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
if (typeof newName !== 'string' || newName.length < 1) {
|
|
327
|
+
throw new Error(
|
|
328
|
+
`Invalid renameModels call. New name must be a non-empty string. Received: "${newName}"`,
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
models[newName] = currentType;
|
|
333
|
+
data.types[newName] = currentType;
|
|
334
|
+
|
|
335
|
+
delete models[curName];
|
|
336
|
+
delete data.types[curName];
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
return rest;
|
|
340
|
+
},
|
|
341
|
+
...rdsSchemaBrand,
|
|
342
|
+
} as RDSModelSchema<T>;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
function _ddbSchema<
|
|
346
|
+
T extends ModelSchemaParamShape,
|
|
347
|
+
DSC extends SchemaConfiguration<any, any>,
|
|
348
|
+
>(types: T['types'], config: DSC) {
|
|
349
|
+
const data: ModelSchemaParamShape = {
|
|
350
|
+
types,
|
|
351
|
+
authorization: [],
|
|
352
|
+
configuration: config,
|
|
353
|
+
};
|
|
354
|
+
return {
|
|
355
|
+
data,
|
|
356
|
+
transform(): DerivedApiDefinition {
|
|
357
|
+
const internalSchema = { data };
|
|
358
|
+
|
|
359
|
+
return processSchema({ schema: internalSchema });
|
|
360
|
+
},
|
|
361
|
+
authorization(callback): any {
|
|
362
|
+
const rules = callback(allow);
|
|
363
|
+
this.data.authorization = Array.isArray(rules) ? rules : [rules];
|
|
364
|
+
const { authorization: _, ...rest } = this;
|
|
365
|
+
return rest;
|
|
366
|
+
},
|
|
367
|
+
models: filterSchemaModelTypes(data.types),
|
|
368
|
+
...ddbSchemaBrand,
|
|
369
|
+
} as ModelSchema<T>;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
type SchemaReturnType<
|
|
373
|
+
DE extends DatasourceEngine,
|
|
374
|
+
Types extends ModelSchemaContents,
|
|
375
|
+
> = DE extends 'dynamodb'
|
|
376
|
+
? ModelSchema<{ types: Types; authorization: []; configuration: any }>
|
|
377
|
+
: RDSModelSchema<{
|
|
378
|
+
types: Types;
|
|
379
|
+
authorization: [];
|
|
380
|
+
configuration: any;
|
|
381
|
+
}>;
|
|
382
|
+
|
|
383
|
+
function bindConfigToSchema<DE extends DatasourceEngine>(
|
|
384
|
+
config: SchemaConfiguration<DE, DataSourceConfiguration<DE>>,
|
|
385
|
+
): <Types extends ModelSchemaContents>(
|
|
386
|
+
types: Types,
|
|
387
|
+
) => SchemaReturnType<DE, Types> {
|
|
388
|
+
return (types) => {
|
|
389
|
+
return (
|
|
390
|
+
config.database.engine === 'dynamodb'
|
|
391
|
+
? _ddbSchema(types, config)
|
|
392
|
+
: _rdsSchema(types, config)
|
|
393
|
+
) as SchemaReturnType<DE, any>;
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* The API and data model definition for Amplify Data. Pass in `{ <NAME>: a.model(...) }` to create a database table
|
|
399
|
+
* and exposes CRUDL operations via an API.
|
|
400
|
+
* @param types The API and data model definition
|
|
401
|
+
* @returns An API and data model definition to be deployed with Amplify (Gen 2) experience (`processSchema(...)`)
|
|
402
|
+
* or with the Amplify Data CDK construct (`@aws-amplify/data-construct`)
|
|
403
|
+
*/
|
|
404
|
+
export const schema = bindConfigToSchema({ database: { engine: 'dynamodb' } });
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Configure wraps schema definition with non-default config to allow usecases other than
|
|
408
|
+
* the default DynamoDB use-case.
|
|
409
|
+
*
|
|
410
|
+
* @param config The SchemaConfig augments the schema with content like the database type
|
|
411
|
+
* @returns
|
|
412
|
+
*/
|
|
413
|
+
export function configure<DE extends DatasourceEngine>(
|
|
414
|
+
config: SchemaConfiguration<DE, DataSourceConfiguration<DE>>,
|
|
415
|
+
): {
|
|
416
|
+
schema: <Types extends ModelSchemaContents>(
|
|
417
|
+
types: Types,
|
|
418
|
+
) => SchemaReturnType<DE, Types>;
|
|
419
|
+
} {
|
|
420
|
+
return {
|
|
421
|
+
schema: bindConfigToSchema(config),
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export function isCustomPathData(obj: any): obj is CustomPathData {
|
|
426
|
+
return (
|
|
427
|
+
'stack' in obj &&
|
|
428
|
+
(typeof obj.stack === 'undefined' || typeof obj.stack === 'string') &&
|
|
429
|
+
'entry' in obj &&
|
|
430
|
+
typeof obj.entry === 'string'
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
export type CustomPathData = {
|
|
435
|
+
stack: string | undefined;
|
|
436
|
+
entry: string;
|
|
437
|
+
};
|