handel-extension-api
Advanced tools
Comparing version 0.26.0 to 0.26.1
@@ -28,9 +28,9 @@ import { EC2 } from 'aws-sdk'; | ||
preDeploy?(serviceContext: ServiceContext<ServiceConfig>): Promise<PreDeployContext>; | ||
bind?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: PreDeployContext, dependentOfServiceContext: ServiceContext<ServiceConfig>, dependentOfPreDeployContext: PreDeployContext): Promise<BindContext>; | ||
deploy?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: PreDeployContext, dependenciesDeployContexts: DeployContext[]): Promise<DeployContext>; | ||
consumeEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: DeployContext, producerServiceContext: ServiceContext<ServiceConfig>, producerDeployContext: DeployContext): Promise<ConsumeEventsContext>; | ||
produceEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: DeployContext, eventConsumerConfig: ServiceEventConsumer, consumerServiceContext: ServiceContext<ServiceConfig>, consumerDeployContext: DeployContext): Promise<ProduceEventsContext>; | ||
unPreDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnPreDeployContext>; | ||
unBind?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnBindContext>; | ||
unDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnDeployContext>; | ||
bind?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: IPreDeployContext, dependentOfServiceContext: ServiceContext<ServiceConfig>, dependentOfPreDeployContext: IPreDeployContext): Promise<IBindContext>; | ||
deploy?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: IPreDeployContext, dependenciesDeployContexts: IDeployContext[]): Promise<IDeployContext>; | ||
consumeEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: IDeployContext, producerServiceContext: ServiceContext<ServiceConfig>, producerDeployContext: IDeployContext): Promise<IConsumeEventsContext>; | ||
produceEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: IDeployContext, eventConsumerConfig: ServiceEventConsumer, consumerServiceContext: ServiceContext<ServiceConfig>, consumerDeployContext: IDeployContext): Promise<IProduceEventsContext>; | ||
unPreDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnPreDeployContext>; | ||
unBind?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnBindContext>; | ||
unDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnDeployContext>; | ||
} | ||
@@ -55,2 +55,3 @@ /*********************************** | ||
} | ||
export declare function isAccountConfig(obj: any): obj is AccountConfig; | ||
/*********************************** | ||
@@ -71,3 +72,4 @@ * Types for the context objects used by service deployers | ||
} | ||
export interface ServiceContext<Config extends ServiceConfig> { | ||
export declare function isServiceType(obj: any | ServiceType): obj is ServiceType; | ||
export interface ServiceContext<Config extends ServiceConfig> extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -82,2 +84,3 @@ environmentName: string; | ||
} | ||
export declare function isServiceContext(obj: any): obj is ServiceContext<ServiceConfig>; | ||
export interface ServiceInfo { | ||
@@ -88,2 +91,3 @@ producedEventsSupportedServices: string[]; | ||
} | ||
export declare function isServiceInfo(obj: any): obj is ServiceInfo; | ||
export interface ServiceConfig { | ||
@@ -95,2 +99,3 @@ type: string; | ||
} | ||
export declare function isServiceConfig(obj: any): obj is ServiceConfig; | ||
export interface ServiceEventConsumer { | ||
@@ -103,2 +108,3 @@ service_name: string; | ||
} | ||
export declare function isBindContext(obj: any | IBindContext): obj is IBindContext; | ||
export interface IConsumeEventsContext { | ||
@@ -108,3 +114,4 @@ consumingServiceContext: ServiceContext<ServiceConfig>; | ||
} | ||
export interface IDeployContext { | ||
export declare function isConsumeEventsContext(obj: any | IConsumeEventsContext): obj is IConsumeEventsContext; | ||
export interface IDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -119,3 +126,12 @@ environmentName: string; | ||
} | ||
export interface IPreDeployContext { | ||
export declare function isDeployContext(obj: any | IDeployContext): obj is IDeployContext; | ||
export interface DeployContextEnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export declare function isDeployContextEnvironmentVariables(obj: any | DeployContextEnvironmentVariables): obj is DeployContextEnvironmentVariables; | ||
export interface DeployContextEventOutputs { | ||
[key: string]: any; | ||
} | ||
export declare function isDeployContextEventOutputs(obj: any | DeployContextEventOutputs): obj is DeployContextEventOutputs; | ||
export interface IPreDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -127,2 +143,3 @@ environmentName: string; | ||
} | ||
export declare function isPreDeployContext(obj: any | IPreDeployContext): obj is PreDeployContext; | ||
export interface IProduceEventsContext { | ||
@@ -132,3 +149,4 @@ producingServiceContext: ServiceContext<ServiceConfig>; | ||
} | ||
export interface IUnDeployContext { | ||
export declare function isProduceEventsContext(obj: any | IProduceEventsContext): obj is IProduceEventsContext; | ||
export interface IUnDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -139,3 +157,4 @@ environmentName: string; | ||
} | ||
export interface IUnBindContext { | ||
export declare function isUnDeployContext(obj: any | IUnDeployContext): obj is IUnDeployContext; | ||
export interface IUnBindContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -146,2 +165,3 @@ environmentName: string; | ||
} | ||
export declare function isUnBindContext(obj: any | IUnBindContext): obj is IUnBindContext; | ||
export interface IUnPreDeployContext { | ||
@@ -153,2 +173,10 @@ appName: string; | ||
} | ||
export declare function isUnPreDeployContext(obj: any | IUnBindContext): obj is IUnPreDeployContext; | ||
export interface HasAppServiceInfo { | ||
appName: string; | ||
environmentName: string; | ||
serviceName: string; | ||
serviceType: ServiceType; | ||
} | ||
export declare function hasAppServiceInfo(obj: any | HasAppServiceInfo): obj is HasAppServiceInfo; | ||
export declare class BindContext implements IBindContext { | ||
@@ -176,8 +204,2 @@ dependencyServiceContext: ServiceContext<ServiceConfig>; | ||
} | ||
export interface DeployContextEnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export interface DeployContextEventOutputs { | ||
[key: string]: any; | ||
} | ||
export declare class PreDeployContext implements IPreDeployContext { | ||
@@ -223,4 +245,7 @@ appName: string; | ||
} | ||
export declare function isTags(obj: any): obj is Tags; | ||
export interface EnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export declare function isEnvironmentVariables(obj: any): obj is EnvironmentVariables; | ||
export declare function isHash(obj: any): boolean; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
function isAccountConfig(obj) { | ||
return !!obj | ||
&& isString(obj.account_id) | ||
&& isString(obj.region) | ||
&& isString(obj.vpc); | ||
// TODO: We could expand this more, but I'm not sure it's a good idea, since there may be a lot of variation between account config files. | ||
} | ||
exports.isAccountConfig = isAccountConfig; | ||
function isServiceType(obj) { | ||
return !!obj | ||
&& isString(obj.prefix) | ||
&& isString(obj.name); | ||
} | ||
exports.isServiceType = isServiceType; | ||
function isServiceContext(obj) { | ||
return !!obj | ||
&& isServiceConfig(obj.params) | ||
&& isAccountConfig(obj.accountConfig) | ||
&& isTags(obj.tags) | ||
&& hasAppServiceInfo(obj); | ||
} | ||
exports.isServiceContext = isServiceContext; | ||
function isServiceInfo(obj) { | ||
return !!obj | ||
&& isArray(obj.producedEventsSupportedServices, isString) | ||
&& isArray(obj.producedDeployOutputTypes, isString) | ||
&& isArray(obj.consumedDeployOutputTypes, isString); | ||
} | ||
exports.isServiceInfo = isServiceInfo; | ||
function isServiceConfig(obj) { | ||
return !!obj | ||
&& isString(obj.type) | ||
&& (!obj.tags || isTags(obj.tags)) | ||
&& (!obj.dependencies || isArray(obj.dependencies, isString)); | ||
} | ||
exports.isServiceConfig = isServiceConfig; | ||
function isBindContext(obj) { | ||
console.log('isBindContext', obj); | ||
return !!obj | ||
&& isServiceContext(obj.dependencyServiceContext) | ||
&& isServiceContext(obj.dependentOfServiceContext); | ||
} | ||
exports.isBindContext = isBindContext; | ||
function isConsumeEventsContext(obj) { | ||
return !!obj | ||
&& isServiceContext(obj.consumingServiceContext) | ||
&& isServiceContext(obj.producingServiceContext); | ||
} | ||
exports.isConsumeEventsContext = isConsumeEventsContext; | ||
function isDeployContext(obj) { | ||
return !!obj | ||
&& isDeployContextEventOutputs(obj.eventOutputs) | ||
&& isArray(obj.policies) | ||
&& isDeployContextEnvironmentVariables(obj.environmentVariables) | ||
&& isArray(obj.scripts, isString) | ||
&& hasAppServiceInfo(obj); | ||
} | ||
exports.isDeployContext = isDeployContext; | ||
function isDeployContextEnvironmentVariables(obj) { | ||
return isHash(obj); | ||
} | ||
exports.isDeployContextEnvironmentVariables = isDeployContextEnvironmentVariables; | ||
function isDeployContextEventOutputs(obj) { | ||
return isHash(obj); | ||
} | ||
exports.isDeployContextEventOutputs = isDeployContextEventOutputs; | ||
function isPreDeployContext(obj) { | ||
return !!obj | ||
&& isArray(obj.securityGroups) | ||
&& hasAppServiceInfo(obj); | ||
} | ||
exports.isPreDeployContext = isPreDeployContext; | ||
function isProduceEventsContext(obj) { | ||
return !!obj | ||
&& isServiceContext(obj.producingServiceContext) | ||
&& isServiceContext(obj.consumingServiceContext); | ||
} | ||
exports.isProduceEventsContext = isProduceEventsContext; | ||
function isUnDeployContext(obj) { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
exports.isUnDeployContext = isUnDeployContext; | ||
function isUnBindContext(obj) { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
exports.isUnBindContext = isUnBindContext; | ||
function isUnPreDeployContext(obj) { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
exports.isUnPreDeployContext = isUnPreDeployContext; | ||
function hasAppServiceInfo(obj) { | ||
return !!obj | ||
&& isString(obj.appName) | ||
&& isString(obj.environmentName) | ||
&& isString(obj.serviceName) | ||
&& isServiceType(obj.serviceType); | ||
} | ||
exports.hasAppServiceInfo = hasAppServiceInfo; | ||
class BindContext { | ||
@@ -80,2 +178,20 @@ constructor(dependencyServiceContext, dependentOfServiceContext) { | ||
exports.UnPreDeployContext = UnPreDeployContext; | ||
function isTags(obj) { | ||
return isHash(obj); | ||
} | ||
exports.isTags = isTags; | ||
function isEnvironmentVariables(obj) { | ||
return isHash(obj); | ||
} | ||
exports.isEnvironmentVariables = isEnvironmentVariables; | ||
function isHash(obj) { | ||
return !!obj && typeof obj === 'object'; | ||
} | ||
exports.isHash = isHash; | ||
function isArray(value, itemType) { | ||
return Array.isArray(value) && (!itemType || value.every(itemType)); | ||
} | ||
function isString(value) { | ||
return typeof value === 'string'; | ||
} | ||
//# sourceMappingURL=extension-api.js.map |
@@ -51,15 +51,15 @@ /* | ||
bind?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: PreDeployContext, dependentOfServiceContext: ServiceContext<ServiceConfig>, dependentOfPreDeployContext: PreDeployContext): Promise<BindContext>; | ||
bind?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: IPreDeployContext, dependentOfServiceContext: ServiceContext<ServiceConfig>, dependentOfPreDeployContext: IPreDeployContext): Promise<IBindContext>; | ||
deploy?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: PreDeployContext, dependenciesDeployContexts: DeployContext[]): Promise<DeployContext>; | ||
deploy?(ownServiceContext: ServiceContext<ServiceConfig>, ownPreDeployContext: IPreDeployContext, dependenciesDeployContexts: IDeployContext[]): Promise<IDeployContext>; | ||
consumeEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: DeployContext, producerServiceContext: ServiceContext<ServiceConfig>, producerDeployContext: DeployContext): Promise<ConsumeEventsContext>; | ||
consumeEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: IDeployContext, producerServiceContext: ServiceContext<ServiceConfig>, producerDeployContext: IDeployContext): Promise<IConsumeEventsContext>; | ||
produceEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: DeployContext, eventConsumerConfig: ServiceEventConsumer, consumerServiceContext: ServiceContext<ServiceConfig>, consumerDeployContext: DeployContext): Promise<ProduceEventsContext>; | ||
produceEvents?(ownServiceContext: ServiceContext<ServiceConfig>, ownDeployContext: IDeployContext, eventConsumerConfig: ServiceEventConsumer, consumerServiceContext: ServiceContext<ServiceConfig>, consumerDeployContext: IDeployContext): Promise<IProduceEventsContext>; | ||
unPreDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnPreDeployContext>; | ||
unPreDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnPreDeployContext>; | ||
unBind?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnBindContext>; | ||
unBind?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnBindContext>; | ||
unDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<UnDeployContext>; | ||
unDeploy?(ownServiceContext: ServiceContext<ServiceConfig>): Promise<IUnDeployContext>; | ||
} | ||
@@ -88,2 +88,10 @@ | ||
export function isAccountConfig(obj: any): obj is AccountConfig { | ||
return !!obj | ||
&& isString(obj.account_id) | ||
&& isString(obj.region) | ||
&& isString(obj.vpc); | ||
// TODO: We could expand this more, but I'm not sure it's a good idea, since there may be a lot of variation between account config files. | ||
} | ||
/*********************************** | ||
@@ -95,5 +103,7 @@ * Types for the context objects used by service deployers | ||
getService(prefix: string, name: string): ServiceDeployer; | ||
getService(type: ServiceType): ServiceDeployer; | ||
hasService(prefix: string, name: string): boolean; | ||
hasService(type: ServiceType): boolean; | ||
@@ -111,3 +121,9 @@ | ||
export interface ServiceContext<Config extends ServiceConfig> { | ||
export function isServiceType(obj: any | ServiceType): obj is ServiceType { | ||
return !!obj | ||
&& isString(obj.prefix) | ||
&& isString(obj.name); | ||
} | ||
export interface ServiceContext<Config extends ServiceConfig> extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -125,2 +141,11 @@ environmentName: string; | ||
export function isServiceContext(obj: any): obj is ServiceContext<ServiceConfig> { | ||
return !!obj | ||
&& isServiceConfig(obj.params) | ||
&& isAccountConfig(obj.accountConfig) | ||
&& isTags(obj.tags) | ||
&& hasAppServiceInfo(obj) | ||
; | ||
} | ||
export interface ServiceInfo { | ||
@@ -132,2 +157,10 @@ producedEventsSupportedServices: string[]; | ||
export function isServiceInfo(obj: any): obj is ServiceInfo { | ||
return !!obj | ||
&& isArray(obj.producedEventsSupportedServices, isString) | ||
&& isArray(obj.producedDeployOutputTypes, isString) | ||
&& isArray(obj.consumedDeployOutputTypes, isString) | ||
; | ||
} | ||
export interface ServiceConfig { | ||
@@ -140,2 +173,10 @@ type: string; | ||
export function isServiceConfig(obj: any): obj is ServiceConfig { | ||
return !!obj | ||
&& isString(obj.type) | ||
&& (!obj.tags || isTags(obj.tags)) | ||
&& (!obj.dependencies || isArray(obj.dependencies, isString)) | ||
; | ||
} | ||
export interface ServiceEventConsumer { | ||
@@ -150,2 +191,9 @@ service_name: string; | ||
export function isBindContext(obj: any | IBindContext): obj is IBindContext { | ||
console.log('isBindContext', obj); | ||
return !!obj | ||
&& isServiceContext(obj.dependencyServiceContext) | ||
&& isServiceContext(obj.dependentOfServiceContext); | ||
} | ||
export interface IConsumeEventsContext { | ||
@@ -156,3 +204,10 @@ consumingServiceContext: ServiceContext<ServiceConfig>; | ||
export interface IDeployContext { | ||
export function isConsumeEventsContext(obj: any | IConsumeEventsContext): obj is IConsumeEventsContext { | ||
return !!obj | ||
&& isServiceContext(obj.consumingServiceContext) | ||
&& isServiceContext(obj.producingServiceContext) | ||
; | ||
} | ||
export interface IDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -172,3 +227,29 @@ environmentName: string; | ||
export interface IPreDeployContext { | ||
export function isDeployContext(obj: any | IDeployContext): obj is IDeployContext { | ||
return !!obj | ||
&& isDeployContextEventOutputs(obj.eventOutputs) | ||
&& isArray(obj.policies) | ||
&& isDeployContextEnvironmentVariables(obj.environmentVariables) | ||
&& isArray(obj.scripts, isString) | ||
&& hasAppServiceInfo(obj) | ||
; | ||
} | ||
export interface DeployContextEnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export function isDeployContextEnvironmentVariables(obj: any | DeployContextEnvironmentVariables): obj is DeployContextEnvironmentVariables { | ||
return isHash(obj); | ||
} | ||
export interface DeployContextEventOutputs { | ||
[key: string]: any; | ||
} | ||
export function isDeployContextEventOutputs(obj: any | DeployContextEventOutputs): obj is DeployContextEventOutputs { | ||
return isHash(obj); | ||
} | ||
export interface IPreDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -181,2 +262,9 @@ environmentName: string; | ||
export function isPreDeployContext(obj: any | IPreDeployContext): obj is PreDeployContext { | ||
return !!obj | ||
&& isArray(obj.securityGroups) | ||
&& hasAppServiceInfo(obj) | ||
; | ||
} | ||
export interface IProduceEventsContext { | ||
@@ -187,3 +275,9 @@ producingServiceContext: ServiceContext<ServiceConfig>; | ||
export interface IUnDeployContext { | ||
export function isProduceEventsContext(obj: any | IProduceEventsContext): obj is IProduceEventsContext { | ||
return !!obj | ||
&& isServiceContext(obj.producingServiceContext) | ||
&& isServiceContext(obj.consumingServiceContext); | ||
} | ||
export interface IUnDeployContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -195,3 +289,7 @@ environmentName: string; | ||
export interface IUnBindContext { | ||
export function isUnDeployContext(obj: any | IUnDeployContext): obj is IUnDeployContext { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
export interface IUnBindContext extends HasAppServiceInfo { | ||
appName: string; | ||
@@ -203,2 +301,6 @@ environmentName: string; | ||
export function isUnBindContext(obj: any | IUnBindContext): obj is IUnBindContext { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
export interface IUnPreDeployContext { | ||
@@ -211,2 +313,21 @@ appName: string; | ||
export function isUnPreDeployContext(obj: any | IUnBindContext): obj is IUnPreDeployContext { | ||
return !!obj && hasAppServiceInfo(obj); | ||
} | ||
export interface HasAppServiceInfo { | ||
appName: string; | ||
environmentName: string; | ||
serviceName: string; | ||
serviceType: ServiceType; | ||
} | ||
export function hasAppServiceInfo(obj: any | HasAppServiceInfo): obj is HasAppServiceInfo { | ||
return !!obj | ||
&& isString(obj.appName) | ||
&& isString(obj.environmentName) | ||
&& isString(obj.serviceName) | ||
&& isServiceType(obj.serviceType); | ||
} | ||
export class BindContext implements IBindContext { | ||
@@ -266,10 +387,2 @@ public dependencyServiceContext: ServiceContext<ServiceConfig>; | ||
export interface DeployContextEnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export interface DeployContextEventOutputs { | ||
[key: string]: any; | ||
} | ||
export class PreDeployContext implements IPreDeployContext { | ||
@@ -352,4 +465,24 @@ public appName: string; | ||
export function isTags(obj: any): obj is Tags { | ||
return isHash(obj); | ||
} | ||
export interface EnvironmentVariables { | ||
[key: string]: string; | ||
} | ||
export function isEnvironmentVariables(obj: any): obj is EnvironmentVariables { | ||
return isHash(obj); | ||
} | ||
export function isHash(obj: any): boolean { | ||
return !!obj && typeof obj === 'object'; | ||
} | ||
function isArray(value: any, itemType?: (obj: any) => boolean) { | ||
return Array.isArray(value) && (!itemType || value.every(itemType)); | ||
} | ||
function isString(value: any) { | ||
return typeof value === 'string'; | ||
} |
{ | ||
"name": "handel-extension-api", | ||
"version": "0.26.0", | ||
"version": "0.26.1", | ||
"description": "Orchestrates your AWS deployments so you don't have to.", | ||
@@ -5,0 +5,0 @@ "main": "dist/extension-api.js", |
Sorry, the diff of this file is not supported yet
39336
836