@aws-amplify/core
Version:
Core category of aws-amplify
1 lines • 4.27 kB
Source Map (JSON)
{"version":3,"file":"configurationBuilder.mjs","sources":["../../../src/configurationBuilder/configurationBuilder.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseAmplifyConfig } from '../utils/parseAmplifyConfig';\nimport { deepMerge } from '../utils/deepMerge';\n/**\n * Creates a configuration builder for constructing `ResourcesConfig` objects\n * programmatically.\n *\n * @example\n * ```ts\n * import outputs from './amplify_outputs.json';\n *\n * const config = createConfiguration({ from: outputs })\n * .add('Storage', { S3: { bucket: 'my-bucket', region: 'us-east-1' } })\n * .build();\n *\n * Amplify.configure(config);\n * ```\n */\nexport function createConfigurationBuilder(options) {\n const config = {};\n function mergeFrom(seed) {\n const resolved = 'build' in seed && typeof seed.build === 'function'\n ? seed.build()\n : parseAmplifyConfig(seed);\n Object.assign(config, resolved);\n }\n if (options?.from) {\n mergeFrom(options.from);\n }\n const builder = {\n from(existing) {\n mergeFrom(existing);\n return builder;\n },\n add(category, value) {\n config[category] = value;\n return builder;\n },\n patch(category, value) {\n const existing = config[category];\n config[category] = deepMerge(existing ?? {}, value);\n return builder;\n },\n auth(value) {\n return builder.add('Auth', value);\n },\n storage(value) {\n return builder.add('Storage', value);\n },\n api(value) {\n return builder.add('API', value);\n },\n analytics(value) {\n return builder.add('Analytics', value);\n },\n geo(value) {\n return builder.add('Geo', value);\n },\n notifications(value) {\n return builder.add('Notifications', value);\n },\n interactions(value) {\n return builder.add('Interactions', value);\n },\n predictions(value) {\n return builder.add('Predictions', value);\n },\n build() {\n return Object.freeze({ ...config });\n },\n };\n return builder;\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,OAAO,EAAE;AACpD,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,SAAS,SAAS,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK;AAClE,cAAc,IAAI,CAAC,KAAK;AACxB,cAAc,kBAAkB,CAAC,IAAI,CAAC;AACtC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE;AACvB,QAAQ,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,SAAS,CAAC,QAAQ,CAAC;AAC/B,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC7B,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK;AACpC,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC/B,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7C,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,CAAC;AAC/D,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AAC7C,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5C,QAAQ,CAAC;AACT,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;AAClD,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5C,QAAQ,CAAC;AACT,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;AACtD,QAAQ,CAAC;AACT,QAAQ,YAAY,CAAC,KAAK,EAAE;AAC5B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,WAAW,CAAC,KAAK,EAAE;AAC3B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/C,QAAQ,CAAC;AACT,KAAK;AACL,IAAI,OAAO,OAAO;AAClB;;;;"}