Shared utilities for Fin.
Last updated a year ago by fisch0920 .
MIT · Repository · Original npm · Tarball · package.json
$ cnpm install fin-utils 
SYNC missed versions from official npm registry.


Shared utilities for Fin.

NPM Build Status JavaScript Style Guide


npm install fin-utils



const finUtils = require('fin-utils')

// parses any FaaS identifier (see the FaaS format below for more examples)
const parsedInfo = finUtils.parseFaasIdentifier('username/projectName.serviceName@01234567')

if (!parsedInfo) {
  console.error('invalid identifier')
} else {
  const { projectId, serviceName, deploymentHash, version } = parsedInfo

  if (serviceName) {
    console.log(`${projectId}.${serviceName}@${deploymentHash || version}`)
  } else {
    console.log(`${projectId}@${deploymentHash || version}`)


const finUtils = require('fin-utils')
const { validators } = finUtils'') // true'foo') // false

validators.username('transitive-bullshit') // true
validators.username('foo$86') // false

validators.password('password') // true
validators.password('a') // false (too short)

validators.projectName('hello-world') // true
validators.projectName('%') // false

validators.deploymentHash('abc123yz') // true
validators.deploymentHash('ABCdefGHIjkl') // false

validators.project('username/goodProject') // true
validators.project('username\bad%project') // false

validators.deployment('username/goodProjectName@abc123yz') // true
validators.deployment('username/bad%project%20name@ZZ') // false

FaaS Identifier Format

The most general FaaS identifier fully specifies the deployment and service name.

It may include an optional URL prefix such as http://localhost:5000/1/call/ in development or in production. The parsed result will be the same with or without the full URL prefix.

username/projectName.serviceName@01234567  // explicitly identify a specific deployment (may not be published)
username/projectName.serviceName@latest    // explicitly identify the latest published deployment
username/projectName.serviceName@1.0.0     // explicitly identify a the published deployment with a specific version
username/projectName.serviceName           // implicitly identify the latest published deployment

If no serviceName is specified, it is assumed that the deployment only has a single service and errors if this is not the case.


Omitting username

You may optionally leave off the username/ prefix when referring to your own projects and deployments via the dev CLI.


An example of this for the hello-world project would look like:

# view all deployments for the authenticated user's hello-world project
fin ls hello-world

This would be equivalent to:

# view all deployments for my-user-name/hello-world project
fin ls my-user-name/hello-world


  • fin - Fin is the easiest way to launch your own SaaS.
  • fts - TypeScript standard for rock solid serverless functions.


MIT © Travis Fischer

Current Tags

  • 1.1.1                                ...           latest (a year ago)

4 Versions

  • 1.1.1                                ...           a year ago
  • 0.0.3                                ...           a year ago
  • 0.0.2                                ...           a year ago
  • 0.0.1                                ...           a year ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (2)
Dependents (1)

Copyright 2014 - 2017 © |