npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sls-yaml

v1.1.1

Published

Serverless framework yaml extension parser

Downloads

112

Readme

Serverless YAML extension parser

CircleCI Maintainability Test Coverage

This tiny library will parse YAML extensions used in serverless framework.

Usage

npm install sls-yaml
import yaml from "sls-yaml";
const compiledYamlAsJsonObject = yaml(YAML_FILE_PATH_OR_BUFFER);

Supported sls extensions

New extensions*

* - New extension not present in serverless yaml

Custom extensions

const context = {
  custom: ([arg]: string[]) => {
    return `${arg}-beta`;
  }
};
const result = yaml(content, null, context);
name: service
version: v1.0.2
subset: service@${custom(${self:version})}
  • output
name: service
version: v1.0.2
subset: [email protected]

Include external file

This extension will include content of external yaml files.

  • config.yml
version: 1
env: dev
config: ${file(./common.yml)}
  • common.yml
endpoint: http://service-url
  • Generated final yaml
version: 1
env: dev
config:
  endpoint: http://service-url

Inject environment variable

This extension will inject envronment values

  • config.yml export NODE_ENV = development
version: 1
env: ${env:NODE_ENV}
  • Generated final yaml
version: 1
env: development

Inject global variables

This extension will inject variable from global scope.

  • config.yml
version: 1
env: stage
config: ${file(./common.yml)}
  • common.yml
endpoint: http://service-${global:env}
  • Generated final yaml
version: 1
env: stage
config:
  endpoint: http://service-stage

Inject local variables

This extension will inject variable from local scope.

  • config.yml
version: 1
env: stage
config: ${file(./common.yml)}
  • common.yml
port: 8080
endpoint: http://service:${self:port}
  • Generated final yaml
version: 1
env: stage
config:
  port: 8080
  endpoint: http://service:8080

Inject current git branch

This extension will inject current git branch name

  • config.yml
branch: ${git:branch}

Inject last git commit hash

This extension will inject last git commit hash

  • config.yml
image.tag: ${git:sha1}

String replace

replace(str:string, searchPattern:RegExp|string, replaceValue:string )

This extension will returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match. If pattern is a string, only the first occurrence will be replaced.

  • config.yml
version: v1.0.0
name: ServiceName@${replace(${ self : version }, /\\./gi, - )}
  • output
version: v1.0.0
name: ServiceName@v1-0-0