@netlify/functions-utils

Utility for adding Functions files in Netlify Build

Usage no npm install needed!

<script type="module">
  import netlifyFunctionsUtils from 'https://cdn.skypack.dev/@netlify/functions-utils';
</script>

README

Coverage Status Build

Utility for handling Netlify Functions in Netlify Build plugins.

This allows plugins to:

  • list available Netlify Functions
  • dynamically inject Netlify Functions inside users builds.

Example

// Add a Netlify Functions file or directory to a build
export const onPreBuild = async function ({ utils }) {
  await utils.functions.add('./path/to/function')
}

API

list()

Returns: Promise<object[]>

Returns the list of Netlify Functions main files as a Promise resolving to an array of objects with the following properties:

  • name {string}: Function name, as used in the URL https://{hostname}/.netlify/functions/{name}
  • mainFile {string}: absolute path to the Function's main file
  • extension {string}: file extension of the Function's main file. For Go Functions, this might be an empty string. For Node.js Functions, this is either .js or .zip.
  • runtime "js" | "go": Function's programming language

This throws when no functions directory was specified by the user, or when it points to a non-existing directory.

listAll()

Returns: Promise<object[]>

Same as list() except it also returns the files required by the Functions main files. This is much slower. The object have the following additional member:

  • srcFile {string}: absolute path to the file

add(path)

path: string
Returns: Promise

Add a Functions file or directory to a build.

This throws when no functions directory was specified by the user, or when it points to a non-existing directory.