Skip to content

Commit 063b148

Browse files
committed
Bundles TypeScript definition files and adds generation of d.ts files for service models. Closes #994
1 parent d8e171c commit 063b148

File tree

124 files changed

+106821
-12
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+106821
-12
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "feature",
3+
"category": "TypeScript",
4+
"description": "Adds typescript definition files to the SDK."
5+
}

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ features
1515
Rakefile
1616
test
1717
tasks
18+
ts
1819
vendor

README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,53 @@ You can find a getting started guide at:
6060

6161
http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide
6262

63+
## Usage with TypeScript
64+
The AWS SDK for JavaScript bundles TypeScript definition files for use in TypeScript projects and to support tools that can read `.d.ts` files.
65+
Our goal is to keep these TypeScript definition files updated with each release for any public api.
66+
67+
### Pre-requisites
68+
Before you can begin using these TypeScript definitions with your project, you need to make sure your project meets a few of these requirements:
69+
* Use TypeScript v2.x
70+
* Includes the TypeScript definitions for node. You can use npm to install this by typing the following into a terminal window:
71+
```sh
72+
npm install --save-dev @types/node
73+
```
74+
* Your `tsconfig.json` or `jsconfig.json` includes `'dom'` and `'es2015.promise'` under `compilerOptions.lib`.
75+
See [tsconfig.json](./ts/tsconfig.json) for an example.
76+
77+
### In the Browser
78+
To use the TypeScript definition files with the global `AWS` object in a front-end project, add the following line to the top of your JavaScript file:
79+
```javascript
80+
/// <reference types="aws-sdk" />
81+
```
82+
This will provide support for the global `AWS` object.
83+
84+
### In Node.js
85+
To use the TypeScript definition files within a Node.js project, simply import `aws-sdk` as you normally would.
86+
In a TypeScript file:
87+
```javascript
88+
// import entire SDK
89+
import AWS = require('aws-sdk');
90+
// import AWS object without services
91+
import AWS = require('aws-sdk/global');
92+
// import individual service
93+
import S3 = require('aws-sdk/clients/s3');
94+
```
95+
In a JavaScript file:
96+
```javascript
97+
// import entire SDK
98+
var AWS = require('aws-sdk');
99+
// import AWS object without services
100+
var AWS = require('aws-sdk/global');
101+
// import individual service
102+
var S3 = require('aws-sdk/clients/s3');
103+
```
104+
105+
### Known Limitations
106+
There are a few known limitations with the bundled TypeScript definitions at this time:
107+
* Service client typings reflect the latest `apiVersion`, regardless of which `apiVersion` is specified when creating a client.
108+
* Service-bound parameters use the `any` type.
109+
63110
## Supported Services
64111

65112
<p class="note"><strong>Note</strong>:

clients/acm.d.ts

Lines changed: 413 additions & 0 deletions
Large diffs are not rendered by default.

clients/all.d.ts

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
export import ACM = require('./acm');
2+
export import APIGateway = require('./apigateway');
3+
export import ApplicationAutoScaling = require('./applicationautoscaling');
4+
export import AutoScaling = require('./autoscaling');
5+
export import Budgets = require('./budgets');
6+
export import CloudFormation = require('./cloudformation');
7+
export import CloudFront = require('./cloudfront');
8+
export import CloudHSM = require('./cloudhsm');
9+
export import CloudSearch = require('./cloudsearch');
10+
export import CloudSearchDomain = require('./cloudsearchdomain');
11+
export import CloudTrail = require('./cloudtrail');
12+
export import CloudWatch = require('./cloudwatch');
13+
export import CloudWatchEvents = require('./cloudwatchevents');
14+
export import CloudWatchLogs = require('./cloudwatchlogs');
15+
export import CodeCommit = require('./codecommit');
16+
export import CodeDeploy = require('./codedeploy');
17+
export import CodePipeline = require('./codepipeline');
18+
export import CognitoIdentity = require('./cognitoidentity');
19+
export import CognitoIdentityServiceProvider = require('./cognitoidentityserviceprovider');
20+
export import CognitoSync = require('./cognitosync');
21+
export import ConfigService = require('./configservice');
22+
export import DataPipeline = require('./datapipeline');
23+
export import DeviceFarm = require('./devicefarm');
24+
export import DirectConnect = require('./directconnect');
25+
export import DirectoryService = require('./directoryservice');
26+
export import Discovery = require('./discovery');
27+
export import DMS = require('./dms');
28+
export import DynamoDB = require('./dynamodb');
29+
export import DynamoDBStreams = require('./dynamodbstreams');
30+
export import EC2 = require('./ec2');
31+
export import ECR = require('./ecr');
32+
export import ECS = require('./ecs');
33+
export import EFS = require('./efs');
34+
export import ElastiCache = require('./elasticache');
35+
export import ElasticBeanstalk = require('./elasticbeanstalk');
36+
export import ELB = require('./elb');
37+
export import ELBv2 = require('./elbv2');
38+
export import EMR = require('./emr');
39+
export import ES = require('./es');
40+
export import ElasticTranscoder = require('./elastictranscoder');
41+
export import Firehose = require('./firehose');
42+
export import GameLift = require('./gamelift');
43+
export import Glacier = require('./glacier');
44+
export import IAM = require('./iam');
45+
export import ImportExport = require('./importexport');
46+
export import Inspector = require('./inspector');
47+
export import Iot = require('./iot');
48+
export import IotData = require('./iotdata');
49+
export import Kinesis = require('./kinesis');
50+
export import KinesisAnalytics = require('./kinesisanalytics');
51+
export import KMS = require('./kms');
52+
export import Lambda = require('./lambda');
53+
export import MachineLearning = require('./machinelearning');
54+
export import MarketplaceCommerceAnalytics = require('./marketplacecommerceanalytics');
55+
export import MarketplaceMetering = require('./marketplacemetering');
56+
export import MobileAnalytics = require('./mobileanalytics');
57+
export import OpsWorks = require('./opsworks');
58+
export import RDS = require('./rds');
59+
export import Redshift = require('./redshift');
60+
export import Route53 = require('./route53');
61+
export import Route53Domains = require('./route53domains');
62+
export import S3 = require('./s3');
63+
export import ServiceCatalog = require('./servicecatalog');
64+
export import SES = require('./ses');
65+
export import SimpleDB = require('./simpledb');
66+
export import SMS = require('./sms');
67+
export import Snowball = require('./snowball');
68+
export import SNS = require('./sns');
69+
export import SQS = require('./sqs');
70+
export import SSM = require('./ssm');
71+
export import StorageGateway = require('./storagegateway');
72+
export import STS = require('./sts');
73+
export import Support = require('./support');
74+
export import SWF = require('./swf');
75+
export import WAF = require('./waf');
76+
export import WorkSpaces = require('./workspaces');

0 commit comments

Comments
 (0)