UNPKG

3.7 kBJavaScriptView Raw
1var util = require('./util');
2
3util.isBrowser = function() { return false; };
4util.isNode = function() { return true; };
5
6// node.js specific modules
7util.crypto.lib = require('crypto');
8util.Buffer = require('buffer').Buffer;
9util.domain = require('domain');
10util.stream = require('stream');
11util.url = require('url');
12util.querystring = require('querystring');
13util.environment = 'nodejs';
14util.createEventStream = util.stream.Readable ?
15 require('./event-stream/streaming-create-event-stream').createEventStream : require('./event-stream/buffered-create-event-stream').createEventStream;
16util.realClock = require('./realclock/nodeClock');
17util.clientSideMonitoring = {
18 Publisher: require('./publisher').Publisher,
19 configProvider: require('./publisher/configuration'),
20};
21util.iniLoader = require('./shared-ini').iniLoader;
22
23var AWS;
24
25/**
26 * @api private
27 */
28module.exports = AWS = require('./core');
29
30require('./credentials');
31require('./credentials/credential_provider_chain');
32require('./credentials/temporary_credentials');
33require('./credentials/chainable_temporary_credentials');
34require('./credentials/web_identity_credentials');
35require('./credentials/cognito_identity_credentials');
36require('./credentials/saml_credentials');
37
38// Load the xml2js XML parser
39AWS.XML.Parser = require('./xml/node_parser');
40
41// Load Node HTTP client
42require('./http/node');
43
44require('./shared-ini/ini-loader');
45
46// Load custom credential providers
47require('./credentials/ec2_metadata_credentials');
48require('./credentials/remote_credentials');
49require('./credentials/ecs_credentials');
50require('./credentials/environment_credentials');
51require('./credentials/file_system_credentials');
52require('./credentials/shared_ini_file_credentials');
53
54// Setup default chain providers
55// If this changes, please update documentation for
56// AWS.CredentialProviderChain.defaultProviders in
57// credentials/credential_provider_chain.js
58AWS.CredentialProviderChain.defaultProviders = [
59 function () { return new AWS.EnvironmentCredentials('AWS'); },
60 function () { return new AWS.EnvironmentCredentials('AMAZON'); },
61 function () { return new AWS.SharedIniFileCredentials(); },
62 function () {
63 if (AWS.ECSCredentials.prototype.isConfiguredForEcsCredentials()) {
64 return new AWS.ECSCredentials();
65 }
66 return new AWS.EC2MetadataCredentials();
67 }
68];
69
70// Update configuration keys
71AWS.util.update(AWS.Config.prototype.keys, {
72 credentials: function () {
73 var credentials = null;
74 new AWS.CredentialProviderChain([
75 function () { return new AWS.EnvironmentCredentials('AWS'); },
76 function () { return new AWS.EnvironmentCredentials('AMAZON'); },
77 function () { return new AWS.SharedIniFileCredentials({ disableAssumeRole: true }); }
78 ]).resolve(function(err, creds) {
79 if (!err) credentials = creds;
80 });
81 return credentials;
82 },
83 credentialProvider: function() {
84 return new AWS.CredentialProviderChain();
85 },
86 logger: function () {
87 return process.env.AWSJS_DEBUG ? console : null;
88 },
89 region: function() {
90 var env = process.env;
91 var region = env.AWS_REGION || env.AMAZON_REGION;
92 if (env[AWS.util.configOptInEnv]) {
93 var toCheck = [
94 {filename: env[AWS.util.sharedCredentialsFileEnv]},
95 {isConfig: true, filename: env[AWS.util.sharedConfigFileEnv]}
96 ];
97 var iniLoader = AWS.util.iniLoader;
98 while (!region && toCheck.length) {
99 var configFile = iniLoader.loadFrom(toCheck.shift());
100 var profile = configFile[env.AWS_PROFILE || AWS.util.defaultProfile];
101 region = profile && profile.region;
102 }
103 }
104 return region;
105 }
106});
107
108// Reset configuration
109AWS.config = new AWS.Config();