netlify-cli
Version:
Netlify command line tool
30 lines (21 loc) • 822 B
JavaScript
const { listFunctions } = require('@netlify/zip-it-and-ship-it')
const { fileExistsAsync } = require('../lib/fs')
const getUrlPath = (functionName) => {
return `/.netlify/functions/${functionName}`
}
const BACKGROUND = '-background'
const addFunctionProps = ({ mainFile, name, runtime }) => {
const urlPath = getUrlPath(name)
const isBackground = name.endsWith(BACKGROUND)
return { mainFile, name, runtime, urlPath, isBackground }
}
const JS = 'js'
const getFunctions = async (functionsSrcDir) => {
if (!(await fileExistsAsync(functionsSrcDir))) {
return []
}
const functions = await listFunctions(functionsSrcDir)
const functionsWithProps = functions.filter(({ runtime }) => runtime === JS).map((func) => addFunctionProps(func))
return functionsWithProps
}
module.exports = { getFunctions }