UNPKG

3.91 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');
37require('./credentials/process_credentials');
38
39// Load the xml2js XML parser
40AWS.XML.Parser = require('./xml/node_parser');
41
42// Load Node HTTP client
43require('./http/node');
44
45require('./shared-ini/ini-loader');
46
47// Load custom credential providers
48require('./credentials/token_file_web_identity_credentials');
49require('./credentials/ec2_metadata_credentials');
50require('./credentials/remote_credentials');
51require('./credentials/ecs_credentials');
52require('./credentials/environment_credentials');
53require('./credentials/file_system_credentials');
54require('./credentials/shared_ini_file_credentials');
55require('./credentials/process_credentials');
56
57// Setup default chain providers
58// If this changes, please update documentation for
59// AWS.CredentialProviderChain.defaultProviders in
60// credentials/credential_provider_chain.js
61AWS.CredentialProviderChain.defaultProviders = [
62 function () { return new AWS.EnvironmentCredentials('AWS'); },
63 function () { return new AWS.EnvironmentCredentials('AMAZON'); },
64 function () { return new AWS.SharedIniFileCredentials(); },
65 function () { return new AWS.ECSCredentials(); },
66 function () { return new AWS.ProcessCredentials(); },
67 function () { return new AWS.TokenFileWebIdentityCredentials(); },
68 function () { return new AWS.EC2MetadataCredentials(); }
69];
70
71// Update configuration keys
72AWS.util.update(AWS.Config.prototype.keys, {
73 credentials: function () {
74 var credentials = null;
75 new AWS.CredentialProviderChain([
76 function () { return new AWS.EnvironmentCredentials('AWS'); },
77 function () { return new AWS.EnvironmentCredentials('AMAZON'); },
78 function () { return new AWS.SharedIniFileCredentials({ disableAssumeRole: true }); }
79 ]).resolve(function(err, creds) {
80 if (!err) credentials = creds;
81 });
82 return credentials;
83 },
84 credentialProvider: function() {
85 return new AWS.CredentialProviderChain();
86 },
87 logger: function () {
88 return process.env.AWSJS_DEBUG ? console : null;
89 },
90 region: function() {
91 var env = process.env;
92 var region = env.AWS_REGION || env.AMAZON_REGION;
93 if (env[AWS.util.configOptInEnv]) {
94 var toCheck = [
95 {filename: env[AWS.util.sharedCredentialsFileEnv]},
96 {isConfig: true, filename: env[AWS.util.sharedConfigFileEnv]}
97 ];
98 var iniLoader = AWS.util.iniLoader;
99 while (!region && toCheck.length) {
100 var configFile = iniLoader.loadFrom(toCheck.shift());
101 var profile = configFile[env.AWS_PROFILE || AWS.util.defaultProfile];
102 region = profile && profile.region;
103 }
104 }
105 return region;
106 }
107});
108
109// Reset configuration
110AWS.config = new AWS.Config();