aws-amplify
Version:
AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.
59 lines (57 loc) • 2.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultAmplify = void 0;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
const core_1 = require("@aws-amplify/core");
const utils_1 = require("@aws-amplify/core/internals/utils");
const cognito_1 = require("./auth/cognito");
exports.DefaultAmplify = {
/**
* Configures Amplify with the {@link resourceConfig} and {@link libraryOptions}.
*
* @param resourceConfig The {@link ResourcesConfig} object that is typically imported from the
* `amplifyconfiguration.json` file. It can also be an object literal created inline when calling `Amplify.configure`.
* @param libraryOptions The {@link LibraryOptions} additional options for the library.
*
* @example
* import config from './amplifyconfiguration.json';
*
* Amplify.configure(config);
*/
configure(resourceConfig, libraryOptions) {
const resolvedResourceConfig = (0, utils_1.parseAmplifyConfig)(resourceConfig);
const cookieBasedKeyValueStorage = new core_1.CookieStorage({ sameSite: 'lax' });
const resolvedKeyValueStorage = libraryOptions?.ssr
? cookieBasedKeyValueStorage
: core_1.defaultStorage;
const resolvedCredentialsProvider = libraryOptions?.ssr
? new cognito_1.CognitoAWSCredentialsAndIdentityIdProvider(new cognito_1.DefaultIdentityIdStore(cookieBasedKeyValueStorage))
: cognito_1.cognitoCredentialsProvider;
if (!resolvedResourceConfig.Auth || libraryOptions?.Auth) {
core_1.Amplify.configure(resolvedResourceConfig, libraryOptions);
return;
}
cognito_1.cognitoUserPoolsTokenProvider.setAuthConfig(resolvedResourceConfig.Auth);
cognito_1.cognitoUserPoolsTokenProvider.setKeyValueStorage(
// TODO: allow configure with a public interface
resolvedKeyValueStorage);
core_1.Amplify.configure(resolvedResourceConfig, {
...libraryOptions,
Auth: {
tokenProvider: cognito_1.cognitoUserPoolsTokenProvider,
credentialsProvider: resolvedCredentialsProvider,
},
});
},
/**
* Returns the {@link ResourcesConfig} object passed in as the `resourceConfig` parameter when calling
* `Amplify.configure`.
*
* @returns An {@link ResourcesConfig} object.
*/
getConfig() {
return core_1.Amplify.getConfig();
},
};
//# sourceMappingURL=initSingleton.js.map