fin
Version:
Developer CLI for Fin. Fin is the easiest way to launch your own SaaS.
42 lines (32 loc) • 1.09 kB
JavaScript
const clipboard = require('clipboardy')
const { parseFaasIdentifier } = require('fin-utils')
const handleError = require('../handle-error')
const spinner = require('../spinner')
module.exports = (program, client) => {
program
.command('subscribe <project>')
.description('Subscribes to a project (requires a valid billing source)')
.action(async (identifier, opts) => {
program.requireAuthentication()
try {
const parsedFaas = parseFaasIdentifier(identifier, {
namespace: client.user.username
})
if (!parsedFaas) {
throw new Error(`Invalid project identifier [${identifier}]`)
}
const { projectId: project } = parsedFaas
const consumer = await spinner(
client.createConsumer({ project }),
`Creating subscription to project [${project}]`
)
if (program.clipboard) {
clipboard.writeSync(consumer.token)
}
console.log(JSON.stringify(consumer, null, 2))
} catch (err) {
handleError(err)
}
})
}