aws-lambda: Lint (#23167)

This commit is contained in:
Andy
2018-01-24 09:53:35 -08:00
committed by GitHub
parent 021cf2a985
commit a0d0b93d94
3 changed files with 205 additions and 260 deletions
+102 -102
View File
@@ -1,29 +1,29 @@
var str: string = "any string";
var date: Date = new Date();
var anyObj: any = { abc: 123 };
var num: number = 5;
var error: Error = new Error();
var b: boolean = true;
var apiGwEvtReqCtx: AWSLambda.APIGatewayEventRequestContext;
var apiGwEvt: AWSLambda.APIGatewayEvent;
var customAuthorizerEvt: AWSLambda.CustomAuthorizerEvent;
var clientCtx: AWSLambda.ClientContext;
var clientContextEnv: AWSLambda.ClientContextEnv;
var clientContextClient: AWSLambda.ClientContextClient;
var context: AWSLambda.Context;
var identity: AWSLambda.CognitoIdentity;
var proxyResult: AWSLambda.ProxyResult;
var authResponse: AWSLambda.AuthResponse;
var policyDocument: AWSLambda.PolicyDocument;
var statement: AWSLambda.Statement;
var authResponseContext: AWSLambda.AuthResponseContext;
var snsEvt: AWSLambda.SNSEvent;
var snsEvtRecs: AWSLambda.SNSEventRecord[];
var snsEvtRec: AWSLambda.SNSEventRecord;
var snsMsg: AWSLambda.SNSMessage;
var snsMsgAttr: AWSLambda.SNSMessageAttribute;
var snsMsgAttrs: AWSLambda.SNSMessageAttributes;
var S3EvtRec: AWSLambda.S3EventRecord = {
let str: string;
let date: Date;
let anyObj: any;
let num: number;
let error: Error;
let b: boolean;
let apiGwEvtReqCtx: AWSLambda.APIGatewayEventRequestContext;
let apiGwEvt: AWSLambda.APIGatewayEvent;
let customAuthorizerEvt: AWSLambda.CustomAuthorizerEvent;
let clientCtx: AWSLambda.ClientContext;
let clientContextEnv: AWSLambda.ClientContextEnv;
let clientContextClient: AWSLambda.ClientContextClient;
let context: AWSLambda.Context;
let identity: AWSLambda.CognitoIdentity;
let proxyResult: AWSLambda.ProxyResult;
let authResponse: AWSLambda.AuthResponse;
let policyDocument: AWSLambda.PolicyDocument;
let statement: AWSLambda.Statement;
let authResponseContext: AWSLambda.AuthResponseContext;
let snsEvt: AWSLambda.SNSEvent;
let snsEvtRecs: AWSLambda.SNSEventRecord[];
let snsEvtRec: AWSLambda.SNSEventRecord;
let snsMsg: AWSLambda.SNSMessage;
let snsMsgAttr: AWSLambda.SNSMessageAttribute;
let snsMsgAttrs: AWSLambda.SNSMessageAttributes;
const S3EvtRec: AWSLambda.S3EventRecord = {
eventVersion: '2.0',
eventSource: 'aws:s3',
awsRegion: 'us-east-1',
@@ -32,7 +32,7 @@ var S3EvtRec: AWSLambda.S3EventRecord = {
userIdentity: {
principalId: 'AIDAJDPLRKLG7UEXAMPLE'
},
requestParameters:{
requestParameters: {
sourceIPAddress: '127.0.0.1'
},
responseElements: {
@@ -59,15 +59,15 @@ var S3EvtRec: AWSLambda.S3EventRecord = {
}
};
var S3CreateEvent: AWSLambda.S3CreateEvent = {
const S3CreateEvent: AWSLambda.S3CreateEvent = {
Records: [S3EvtRec]
};
var cognitoUserPoolEvent: AWSLambda.CognitoUserPoolEvent;
var cloudformationCustomResourceEvent: AWSLambda.CloudFormationCustomResourceEvent;
var cloudformationCustomResourceResponse: AWSLambda.CloudFormationCustomResourceResponse;
var cloudwatchLogsEvent: AWSLambda.CloudWatchLogsEvent;
var cloudwatchLogsDecodedData: AWSLambda.CloudWatchLogsDecodedData;
var scheduledEvent: AWSLambda.ScheduledEvent;
declare const cognitoUserPoolEvent: AWSLambda.CognitoUserPoolEvent;
declare const cloudformationCustomResourceEvent: AWSLambda.CloudFormationCustomResourceEvent;
declare const cloudformationCustomResourceResponse: AWSLambda.CloudFormationCustomResourceResponse;
declare const cloudwatchLogsEvent: AWSLambda.CloudWatchLogsEvent;
declare const cloudwatchLogsDecodedData: AWSLambda.CloudWatchLogsDecodedData;
declare const scheduledEvent: AWSLambda.ScheduledEvent;
/* API Gateway Event request context */
str = apiGwEvtReqCtx.accountId;
@@ -113,7 +113,7 @@ str = apiGwEvt.stageVariables["example"];
apiGwEvtReqCtx = apiGwEvt.requestContext;
/* DynamoDB Stream Event */
var dynamoDBStreamEvent: AWSLambda.DynamoDBStreamEvent = {
const dynamoDBStreamEvent: AWSLambda.DynamoDBStreamEvent = {
Records: [
{
eventID: '1',
@@ -266,13 +266,13 @@ policyDocument = {
authResponse = {
principalId: str,
policyDocument: policyDocument,
policyDocument,
context: authResponseContext
};
authResponse = {
principalId: str,
policyDocument: policyDocument
policyDocument,
};
// CognitoUserPoolEvent
@@ -442,67 +442,67 @@ function customAuthorizerCallback(cb: AWSLambda.CustomAuthorizerCallback) {
}
/* CloudFront events, see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html */
var CloudFrontRequestEvent: AWSLambda.CloudFrontRequestEvent = {
"Records": [
const CloudFrontRequestEvent: AWSLambda.CloudFrontRequestEvent = {
Records: [
{
"cf": {
"config": {
"distributionId": "EDFDVBD6EXAMPLE",
"requestId": "MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE=="
cf: {
config: {
distributionId: "EDFDVBD6EXAMPLE",
requestId: "MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE=="
},
"request": {
"clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334",
"method": "GET",
"uri": "/picture.jpg",
"querystring": "size=large",
"headers": {
"host": [
request: {
clientIp: "2001:0db8:85a3:0:0:8a2e:0370:7334",
method: "GET",
uri: "/picture.jpg",
querystring: "size=large",
headers: {
host: [
{
"key": "Host",
"value": "d111111abcdef8.cloudfront.net"
key: "Host",
value: "d111111abcdef8.cloudfront.net"
}
],
"user-agent": [
{
"key": "User-Agent",
"value": "curl/7.51.0"
key: "User-Agent",
value: "curl/7.51.0"
}
]
},
"origin": {
"custom": {
"customHeaders": {
origin: {
custom: {
customHeaders: {
"my-origin-custom-header": [
{
"key": "My-Origin-Custom-Header",
"value": "Test"
key: "My-Origin-Custom-Header",
value: "Test"
}
]
},
"domainName": "example.com",
"keepaliveTimeout": 5,
"path": "/custom_path",
"port": 443,
"protocol": "https",
"readTimeout": 5,
"sslProtocols": [
domainName: "example.com",
keepaliveTimeout: 5,
path: "/custom_path",
port: 443,
protocol: "https",
readTimeout: 5,
sslProtocols: [
"TLSv1",
"TLSv1.1"
]
},
"s3": {
"authMethod": "origin-access-identity",
"customHeaders": {
s3: {
authMethod: "origin-access-identity",
customHeaders: {
"my-origin-custom-header": [
{
"key": "My-Origin-Custom-Header",
"value": "Test"
key: "My-Origin-Custom-Header",
value: "Test"
}
]
},
"domainName": "my-bucket.s3.amazonaws.com",
"path": "/s3_path",
"region": "us-east-1"
domainName: "my-bucket.s3.amazonaws.com",
path: "/s3_path",
region: "us-east-1"
}
}
}
@@ -511,52 +511,52 @@ var CloudFrontRequestEvent: AWSLambda.CloudFrontRequestEvent = {
]
};
var CloudFrontResponseEvent: AWSLambda.CloudFrontResponseEvent = {
"Records": [
const CloudFrontResponseEvent: AWSLambda.CloudFrontResponseEvent = {
Records: [
{
"cf": {
"config": {
"distributionId": "EDFDVBD6EXAMPLE",
"requestId": "xGN7KWpVEmB9Dp7ctcVFQC4E-nrcOcEKS3QyAez--06dV7TEXAMPLE=="
cf: {
config: {
distributionId: "EDFDVBD6EXAMPLE",
requestId: "xGN7KWpVEmB9Dp7ctcVFQC4E-nrcOcEKS3QyAez--06dV7TEXAMPLE=="
},
"request": {
"clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334",
"method": "GET",
"uri": "/picture.jpg",
"querystring": "size=large",
"headers": {
"host": [
request: {
clientIp: "2001:0db8:85a3:0:0:8a2e:0370:7334",
method: "GET",
uri: "/picture.jpg",
querystring: "size=large",
headers: {
host: [
{
"key": "Host",
"value": "d111111abcdef8.cloudfront.net"
key: "Host",
value: "d111111abcdef8.cloudfront.net"
}
],
"user-agent": [
{
"key": "User-Agent",
"value": "curl/7.18.1"
key: "User-Agent",
value: "curl/7.18.1"
}
]
}
},
"response": {
"status": "200",
"statusDescription": "OK",
"headers": {
"server": [
response: {
status: "200",
statusDescription: "OK",
headers: {
server: [
{
"key": "Server",
"value": "MyCustomOrigin"
key: "Server",
value: "MyCustomOrigin"
}
],
"set-cookie": [
{
"key": "Set-Cookie",
"value": "theme=light"
key: "Set-Cookie",
value: "theme=light"
},
{
"key": "Set-Cookie",
"value": "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT"
key: "Set-Cookie",
value: "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT"
}
]
}
+101 -84
View File
@@ -18,10 +18,10 @@
// TypeScript Version: 2.2
// API Gateway "event" request context
interface APIGatewayEventRequestContext {
export interface APIGatewayEventRequestContext {
accountId: string;
apiId: string;
authorizer?: AuthResponseContext | null | undefined;
authorizer?: AuthResponseContext | null;
httpMethod: string;
identity: {
accessKey: string | null;
@@ -36,7 +36,7 @@ interface APIGatewayEventRequestContext {
user: string | null;
userAgent: string | null;
userArn: string | null;
},
};
stage: string;
requestId: string;
requestTimeEpoch: number;
@@ -45,7 +45,7 @@ interface APIGatewayEventRequestContext {
}
// API Gateway "event"
interface APIGatewayEvent {
export interface APIGatewayEvent {
body: string | null;
headers: { [name: string]: string };
httpMethod: string;
@@ -59,7 +59,7 @@ interface APIGatewayEvent {
}
// API Gateway CustomAuthorizer "event"
interface CustomAuthorizerEvent {
export interface CustomAuthorizerEvent {
type: string;
methodArn: string;
authorizationToken?: string;
@@ -71,22 +71,22 @@ interface CustomAuthorizerEvent {
// Context
// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_AttributeValue.html
interface AttributeValue {
export interface AttributeValue {
B?: string;
BS?: Array<string>;
BS?: string[];
BOOL?: boolean;
L?: Array<AttributeValue>;
L?: AttributeValue[];
M?: { [id: string]: AttributeValue };
N?: string;
NS?: Array<string>;
NS?: string[];
NULL?: boolean;
S?: string;
SS?: Array<string>;
SS?: string[];
}
// Context
// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_StreamRecord.html
interface StreamRecord {
export interface StreamRecord {
ApproximateCreationTime?: number;
Keys?: { [key: string]: AttributeValue };
NewImage?: { [key: string]: AttributeValue };
@@ -98,7 +98,7 @@ interface StreamRecord {
// Context
// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_Record.html
interface DynamoDBRecord {
export interface DynamoDBRecord {
awsRegion?: string;
dynamodb?: StreamRecord;
eventID?: string;
@@ -112,21 +112,21 @@ interface DynamoDBRecord {
// AWS Lambda Stream event
// Context
// http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-ddb-update
interface DynamoDBStreamEvent {
Records: Array<DynamoDBRecord>;
export interface DynamoDBStreamEvent {
Records: DynamoDBRecord[];
}
// SNS "event"
interface SNSMessageAttribute {
export interface SNSMessageAttribute {
Type: string;
Value: string;
}
interface SNSMessageAttributes {
export interface SNSMessageAttributes {
[name: string]: SNSMessageAttribute;
}
interface SNSMessage {
export interface SNSMessage {
SignatureVersion: string;
Timestamp: string;
Signature: string;
@@ -140,37 +140,37 @@ interface SNSMessage {
Subject: string;
}
interface SNSEventRecord {
export interface SNSEventRecord {
EventVersion: string;
EventSubscriptionArn: string;
EventSource: string;
Sns: SNSMessage;
}
interface SNSEvent {
Records: Array<SNSEventRecord>;
export interface SNSEvent {
Records: SNSEventRecord[];
}
/**
* S3Create event
* https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
*/
interface S3EventRecord {
export interface S3EventRecord {
eventVersion: string;
eventSource: string;
awsRegion: string
awsRegion: string;
eventTime: string;
eventName: string;
userIdentity: {
principalId: string;
},
};
requestParameters: {
sourceIPAddress: string;
},
};
responseElements: {
'x-amz-request-id': string;
'x-amz-id-2': string;
},
};
s3: {
s3SchemaVersion: string;
configurationId: string;
@@ -188,20 +188,41 @@ interface S3EventRecord {
versionId: string;
sequencer: string;
}
}
};
}
interface S3CreateEvent {
Records: Array<S3EventRecord>;
export interface S3CreateEvent {
Records: S3EventRecord[];
}
/**
* Cognito User Pool event
* http://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html
*/
interface CognitoUserPoolEvent {
export interface CognitoUserPoolEvent {
version: number;
triggerSource: "PreSignUp_SignUp" | "PostConfirmation_ConfirmSignUp" | "PreAuthentication_Authentication" | "PostAuthentication_Authentication" | "CustomMessage_SignUp" | "CustomMessage_AdminCreateUser" | "CustomMessage_ResendCode" | "CustomMessage_ForgotPassword" | "CustomMessage_UpdateUserAttribute" | "CustomMessage_VerifyUserAttribute" | "CustomMessage_Authentication" | "DefineAuthChallenge_Authentication" | "CreateAuthChallenge_Authentication" | "VerifyAuthChallengeResponse_Authentication" | "PreSignUp_AdminCreateUser" | "PostConfirmation_ConfirmForgotPassword" | "TokenGeneration_HostedAuth" | "TokenGeneration_Authentication" | "TokenGeneration_NewPasswordChallenge" | "TokenGeneration_AuthenticateDevice" | "TokenGeneration_RefreshTokens";
triggerSource:
| "PreSignUp_SignUp"
| "PostConfirmation_ConfirmSignUp"
| "PreAuthentication_Authentication"
| "PostAuthentication_Authentication"
| "CustomMessage_SignUp"
| "CustomMessage_AdminCreateUser"
| "CustomMessage_ResendCode"
| "CustomMessage_ForgotPassword"
| "CustomMessage_UpdateUserAttribute"
| "CustomMessage_VerifyUserAttribute"
| "CustomMessage_Authentication"
| "DefineAuthChallenge_Authentication"
| "CreateAuthChallenge_Authentication"
| "VerifyAuthChallengeResponse_Authentication"
| "PreSignUp_AdminCreateUser"
| "PostConfirmation_ConfirmForgotPassword"
| "TokenGeneration_HostedAuth"
| "TokenGeneration_Authentication"
| "TokenGeneration_NewPasswordChallenge"
| "TokenGeneration_AuthenticateDevice"
| "TokenGeneration_RefreshTokens";
region: string;
userPoolId: string;
userName?: string;
@@ -215,11 +236,11 @@ interface CognitoUserPoolEvent {
codeParameter?: string;
usernameParameter?: string;
newDeviceUsed?: boolean;
session?: {
session?: Array<{
challengeName: "CUSTOM_CHALLENGE" | "PASSWORD_VERIFIER" | "SMS_MFA" | "DEVICE_SRP_AUTH" | "DEVICE_PASSWORD_VERIFIER" | "ADMIN_NO_SRP_AUTH";
challengeResult: boolean;
challengeMetaData?: string;
}[];
}>;
challengeName?: string;
privateChallengeParameters?: {[key: string]: string};
challengeAnswer?: {[key: string]: string};
@@ -243,7 +264,7 @@ interface CognitoUserPoolEvent {
* CloudFormation Custom Resource event and response
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref.html
*/
type CloudFormationCustomResourceEventCommon = {
export interface CloudFormationCustomResourceEventCommon {
ServiceToken: string;
ResponseURL: string;
StackId: string;
@@ -253,14 +274,14 @@ type CloudFormationCustomResourceEventCommon = {
ResourceProperties: {
ServiceToken: string;
[Key: string]: any;
}
};
}
type CloudFormationCustomResourceCreateEvent = CloudFormationCustomResourceEventCommon & {
export interface CloudFormationCustomResourceCreateEvent extends CloudFormationCustomResourceEventCommon {
RequestType: "Create";
}
type CloudFormationCustomResourceUpdateEvent = CloudFormationCustomResourceEventCommon & {
export interface CloudFormationCustomResourceUpdateEvent extends CloudFormationCustomResourceEventCommon {
RequestType: "Update";
PhysicalResourceId: string;
OldResourceProperties: {
@@ -268,29 +289,29 @@ type CloudFormationCustomResourceUpdateEvent = CloudFormationCustomResourceEvent
};
}
type CloudFormationCustomResourceDeleteEvent = CloudFormationCustomResourceEventCommon & {
export interface CloudFormationCustomResourceDeleteEvent extends CloudFormationCustomResourceEventCommon {
RequestType: "Delete";
PhysicalResourceId: string;
}
export type CloudFormationCustomResourceEvent = CloudFormationCustomResourceCreateEvent | CloudFormationCustomResourceUpdateEvent | CloudFormationCustomResourceDeleteEvent;
type CloudFormationCustomResourceResponseCommon = {
export interface CloudFormationCustomResourceResponseCommon {
PhysicalResourceId: string;
StackId: string;
RequestId: string;
LogicalResourceId: string;
Data?: {
[Key: string]: any;
}
};
}
type CloudFormationCustomResourceSuccessResponse = CloudFormationCustomResourceResponseCommon & {
export interface CloudFormationCustomResourceSuccessResponse extends CloudFormationCustomResourceResponseCommon {
Status: "SUCCESS";
Reason?: string;
}
type CloudFormationCustomResourceFailedResponse = CloudFormationCustomResourceResponseCommon & {
export interface CloudFormationCustomResourceFailedResponse extends CloudFormationCustomResourceResponseCommon {
Status: "FAILED";
Reason: string;
}
@@ -300,7 +321,7 @@ export type CloudFormationCustomResourceResponse = CloudFormationCustomResourceS
/**
* See https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-scheduled-event
*/
interface ScheduledEvent {
export interface ScheduledEvent {
account: string;
region: string;
detail: any;
@@ -308,21 +329,21 @@ interface ScheduledEvent {
source: string;
time: string;
id: string;
resources: string[]
resources: string[];
}
/**
* See http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-cloudwatch-logs
*/
interface CloudWatchLogsEvent {
export interface CloudWatchLogsEvent {
awslogs: CloudWatchLogsEventData;
}
interface CloudWatchLogsEventData {
export interface CloudWatchLogsEventData {
data: string;
}
interface CloudWatchLogsDecodedData {
export interface CloudWatchLogsDecodedData {
owner: string;
logGroup: string;
logStream: string;
@@ -334,17 +355,15 @@ interface CloudWatchLogsDecodedData {
/**
* See http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample
*/
interface CloudWatchLogsLogEvent {
export interface CloudWatchLogsLogEvent {
id: string;
timestamp: number;
message: string;
}
// Context
// http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html
interface Context {
export interface Context {
// Properties
callbackWaitsForEmptyEventLoop: boolean;
functionName: string;
@@ -363,25 +382,23 @@ interface Context {
// Functions for compatibility with earlier Node.js Runtime v0.10.42
// For more details see http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-using-old-runtime.html#nodejs-prog-model-oldruntime-context-methods
done(error?: Error, result?: any): void;
fail(error: Error): void;
fail(message: string): void;
succeed(message: string): void;
succeed(object: any): void;
fail(error: Error | string): void;
succeed(messageOrObject: any): void;
succeed(message: string, object: any): void;
}
interface CognitoIdentity {
export interface CognitoIdentity {
cognitoIdentityId: string;
cognitoIdentityPoolId: string;
}
interface ClientContext {
export interface ClientContext {
client: ClientContextClient;
Custom?: any;
env: ClientContextEnv;
}
interface ClientContextClient {
export interface ClientContextClient {
installationId: string;
appTitle: string;
appVersionName: string;
@@ -389,7 +406,7 @@ interface ClientContextClient {
appPackageName: string;
}
interface ClientContextEnv {
export interface ClientContextEnv {
platformVersion: string;
platform: string;
make: string;
@@ -397,11 +414,11 @@ interface ClientContextEnv {
locale: string;
}
interface ProxyResult {
export interface ProxyResult {
statusCode: number;
headers?: {
[header: string]: boolean | number | string;
},
};
body: string;
isBase64Encoded?: boolean;
}
@@ -410,7 +427,7 @@ interface ProxyResult {
* API Gateway CustomAuthorizer AuthResponse.
* http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#api-gateway-custom-authorizer-output
*/
interface AuthResponse {
export interface AuthResponse {
principalId: string;
policyDocument: PolicyDocument;
context?: AuthResponseContext;
@@ -420,7 +437,7 @@ interface AuthResponse {
* API Gateway CustomAuthorizer AuthResponse.PolicyDocument.
* http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#api-gateway-custom-authorizer-output
*/
interface PolicyDocument {
export interface PolicyDocument {
Version: string;
Statement: [Statement];
}
@@ -429,7 +446,7 @@ interface PolicyDocument {
* API Gateway CustomAuthorizer AuthResponse.PolicyDocument.Statement.
* http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#api-gateway-custom-authorizer-output
*/
interface Statement {
export interface Statement {
Action: string | string[];
Effect: string;
Resource: string | string[];
@@ -439,7 +456,7 @@ interface Statement {
* API Gateway CustomAuthorizer AuthResponse.PolicyDocument.Statement.
* http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#api-gateway-custom-authorizer-output
*/
interface AuthResponseContext {
export interface AuthResponseContext {
[name: string]: string | number | boolean;
}
@@ -447,50 +464,50 @@ interface AuthResponseContext {
* CloudFront events
* http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html
*/
type CloudFrontHeaders = {
[name: string]: {
key: string;
value: string;
}[]
};
export interface CloudFrontHeaders {
[name: string]: Array<{
key: string;
value: string;
}>;
}
type CloudFrontResponse = {
export interface CloudFrontResponse {
status: string;
statusDescription: string;
headers: CloudFrontHeaders;
};
}
type CloudFrontRequest = {
export interface CloudFrontRequest {
clientIp: string;
method: string;
uri: string;
querystring: string;
headers: CloudFrontHeaders;
};
}
type CloudFrontEvent = {
export interface CloudFrontEvent {
config: {
distributionId: string;
requestId: string;
}
};
}
export type CloudFrontResponseEvent = {
Records: {
export interface CloudFrontResponseEvent {
Records: Array<{
cf: CloudFrontEvent & {
request: CloudFrontRequest;
response: CloudFrontResponse;
}
}[]
};
}>;
}
export type CloudFrontRequestEvent = {
Records: {
export interface CloudFrontRequestEvent {
Records: Array<{
cf: CloudFrontEvent & {
request: CloudFrontRequest;
}
}[]
};
}>;
}
/**
* AWS Lambda handler function.
+2 -74
View File
@@ -1,79 +1,7 @@
{
"extends": "dtslint/dt.json",
"rules": {
"adjacent-overload-signatures": false,
"array-type": false,
"arrow-return-shorthand": false,
"ban-types": false,
"callable-types": false,
"comment-format": false,
"dt-header": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
"interface-name": false,
"interface-over-type-literal": false,
"jsdoc-format": false,
"max-line-length": false,
"member-access": false,
"new-parens": false,
"no-any-union": false,
"no-boolean-literal-compare": false,
"no-conditional-assignment": false,
"no-consecutive-blank-lines": false,
"no-construct": false,
"no-declare-current-package": false,
"no-duplicate-imports": false,
"no-duplicate-variable": false,
"no-empty-interface": false,
"no-for-in-array": false,
"no-inferrable-types": false,
"no-internal-module": false,
"no-irregular-whitespace": false,
"no-mergeable-namespace": false,
"no-misused-new": false,
"no-namespace": false,
"no-object-literal-type-assertion": false,
"no-padding": false,
"no-redundant-jsdoc": false,
"no-redundant-jsdoc-2": false,
"no-redundant-undefined": false,
"no-reference-import": false,
"no-relative-import-in-test": false,
"no-self-import": false,
"no-single-declare-module": false,
"no-string-throw": false,
"no-unnecessary-callback-wrapper": false,
"no-unnecessary-class": false,
"no-unnecessary-generics": false,
"no-unnecessary-qualifier": false,
"no-unnecessary-type-assertion": false,
"no-useless-files": false,
"no-var-keyword": false,
"no-var-requires": false,
"no-void-expression": false,
"no-trailing-whitespace": false,
"object-literal-key-quotes": false,
"object-literal-shorthand": false,
"one-line": false,
"one-variable-per-declaration": false,
"only-arrow-functions": false,
"prefer-conditional-expression": false,
"prefer-const": false,
"prefer-declare-function": false,
"prefer-for-of": false,
"prefer-method-signature": false,
"prefer-template": false,
"radix": false,
"semicolon": false,
"space-before-function-paren": false,
"space-within-parens": false,
"strict-export-declare-modifiers": false,
"trim-file": false,
"triple-equals": false,
"typedef-whitespace": false,
"unified-signatures": false,
"void-return": false,
"whitespace": false
// TODO
"dt-header": false
}
}