Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@mapbox/cloudfriend

Package Overview
Dependencies
Maintainers
14
Versions
92
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mapbox/cloudfriend

Helper functions for assembling CloudFormation templates in JavaScript

  • 4.6.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
53K
decreased by-1.77%
Maintainers
14
Weekly downloads
 
Created
Source

cloudfriend

Build Status

Helper functions for assembling CloudFormation templates in JavaScript.

Shortcuts

Cloudfriend contains a library of JS classes that reduce the amount of "boilerplate" CloudFormation that you need to write to setup a common set of AWS Resources. See the shortcuts readme for more information, or the shortcuts API documentation to look at shortcut-specific configuration.

Intrinsic functions and conditions

These are functions that you can use in place of various CloudFormation objects.

CloudFriendCloudFormation
base64(value)Fn::Base64
cidr(ipBlock, count, cidrBits)Fn::Cidr
findInMap(mapping, key, attr)Fn::FindInMap
getAtt(obj, key)Fn::GetAtt
getAzs(region)Fn::GetAZs
join(delimiter, pieces)Fn::Join
split(delimiter, string)Fn::Split
select(index, list)Fn::Select
ref(name)Ref
userData(list)Fn::Base64 and Fn::Join with \n delimiter
and(conditions)Fn::And
equals(a, b)Fn::Equals
if(condition, ifTrue, ifFalse)Fn::If
not(condition)Fn::Not
or(conditions)Fn::Or
notEquals(a, b)Fn::Not and Fn::Equals
sub(str, variables)Fn::Sub
importValue(sharedValue)Fn::ImportValue,
arn(service, suffix)Fn::Sub designed for an ARN
transform(name, parameters)Fn::Transform
contains(strings, s)Fn::Contains
eachMemberEquals(strings, s)Fn::EachMemberEquals
eachMemberIn(stringsToCheck, stringsToMatch)Fn::EachMemberIn
refAll(parameterType)Fn::RefAll
valueOf(parameterLogicalId, attribute)Fn::ValueOf
valueOfAll(parameterType, attribute)Fn::ValueOfAll

Pseudo parameters

These are static properties of cloudfriend that you can use to reference various CloudFormation objects.

CloudFriendCloudFormation
accountIdAWS::AccountId
notificationArnsAWS::NotificationARNs
noValueAWS::NoValue
regionAWS::Region
stackIdAWS::StackId
stackNameAWS::StackName
partitionAWS::Partition
urlSuffixAWS::URLSuffix

Other helpers

methoddescription
build(file, opts)Builds a template defined by a static JavaScript export, a synchronous or an asynchronous function.
validate(file)Uses the cloudformation:ValidateTemplate API call to perform rudimentary template validation
merge(...template)Merges templates together. Throws errors if logical names are reused. Transform macros from all template arguments are merged into a single array, in order of their appearance in the template arguments, and an error is thrown if any macro is repeated.

CLI tools

By installing cloudfriend globally, it can provide you with simple CLI tools for building and validating CloudFormation templates.

# either...
$ git clone https://github.com/mapbox/cloudfriend && cd cloudfriend && npm link
# ... or ...
$ npm install -g @mapbox/cloudfriend

Then, to build a template:

# Prints the template as JSON to stdout
$ build-template path/to/template.js

Or, to validate a template:

# Make sure that your shell is configured to make AWS requests
$ validate-template path/to/template.js

You may also specify a region for validation:

# Make sure that your shell is configured to make AWS requests
$ validate-template path/to/template.js us-east-1

Keywords

FAQs

Package last updated on 06 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc