core.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /**
  2. * The main AWS namespace
  3. */
  4. var AWS = { util: require('./util') };
  5. /**
  6. * @api private
  7. * @!macro [new] nobrowser
  8. * @note This feature is not supported in the browser environment of the SDK.
  9. */
  10. var _hidden = {}; _hidden.toString(); // hack to parse macro
  11. /**
  12. * @api private
  13. */
  14. module.exports = AWS;
  15. AWS.util.update(AWS, {
  16. /**
  17. * @constant
  18. */
  19. VERSION: '2.1618.0',
  20. /**
  21. * @api private
  22. */
  23. Signers: {},
  24. /**
  25. * @api private
  26. */
  27. Protocol: {
  28. Json: require('./protocol/json'),
  29. Query: require('./protocol/query'),
  30. Rest: require('./protocol/rest'),
  31. RestJson: require('./protocol/rest_json'),
  32. RestXml: require('./protocol/rest_xml')
  33. },
  34. /**
  35. * @api private
  36. */
  37. XML: {
  38. Builder: require('./xml/builder'),
  39. Parser: null // conditionally set based on environment
  40. },
  41. /**
  42. * @api private
  43. */
  44. JSON: {
  45. Builder: require('./json/builder'),
  46. Parser: require('./json/parser')
  47. },
  48. /**
  49. * @api private
  50. */
  51. Model: {
  52. Api: require('./model/api'),
  53. Operation: require('./model/operation'),
  54. Shape: require('./model/shape'),
  55. Paginator: require('./model/paginator'),
  56. ResourceWaiter: require('./model/resource_waiter')
  57. },
  58. /**
  59. * @api private
  60. */
  61. apiLoader: require('./api_loader'),
  62. /**
  63. * @api private
  64. */
  65. EndpointCache: require('../vendor/endpoint-cache').EndpointCache
  66. });
  67. require('./sequential_executor');
  68. require('./service');
  69. require('./config');
  70. require('./http');
  71. require('./event_listeners');
  72. require('./request');
  73. require('./response');
  74. require('./resource_waiter');
  75. require('./signers/request_signer');
  76. require('./param_validator');
  77. require('./maintenance_mode_message');
  78. /**
  79. * @readonly
  80. * @return [AWS.SequentialExecutor] a collection of global event listeners that
  81. * are attached to every sent request.
  82. * @see AWS.Request AWS.Request for a list of events to listen for
  83. * @example Logging the time taken to send a request
  84. * AWS.events.on('send', function startSend(resp) {
  85. * resp.startTime = new Date().getTime();
  86. * }).on('complete', function calculateTime(resp) {
  87. * var time = (new Date().getTime() - resp.startTime) / 1000;
  88. * console.log('Request took ' + time + ' seconds');
  89. * });
  90. *
  91. * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'
  92. */
  93. AWS.events = new AWS.SequentialExecutor();
  94. //create endpoint cache lazily
  95. AWS.util.memoizedProperty(AWS, 'endpointCache', function() {
  96. return new AWS.EndpointCache(AWS.config.endpointCacheSize);
  97. }, true);