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

@netlify/config

v20.21.1

Published

Netlify config module

Downloads

716,371

Readme

Netlify Config

This library loads, validates, and normalizes the Netlify configuration.

Netlify can be configured:

Install

npm install @netlify/config

Usage (Node.js)

resolveConfig(options?)

options: object?
Return value: Promise<object>

import { resolveConfig } from '@netlify/config'

const exampleFunction = async function () {
  const { config, configPath, buildDir, context, branch, token, siteInfo } = await resolveConfig(options)
  // {
  // "siteInfo": {
  //   "id": "418b94bc-93cd-411a-937a-ae4c734f17c4",
  //   "name": "mick",
  //   "build_settings": {
  //     "cmd": "",
  //     "dir": "",
  //     "env": { ... },
  //     "functions_dir": "",
  //     "base": "",
  //   },
  //   ...
  // },
  // "accounts": [
  //   {
  //     "name": "my team",
  //     "slug": "me",
  //     ...
  //   },
  //   ...
  // ],
  // "addons": [],
  // "env": {
  //   "NODE_VERSION": { "sources": ["configFile"], "value": "16" },
  //   ...
  // },
  // "configPath": "/home/me/code/cv-website/netlify.toml",
  // "buildDir": "/home/me/code/cv-website",
  // "repositoryRoot": "/home/me/code/cv-website",
  // "config": {
  //   "functionsDirectory": "/home/me/code/cv-website/netlify/functions",
  //   "functionsDirectoryOrigin": "default",
  //   "functions": { "*": { "node_bundler": "esbuild" } },
  //   "plugins": [
  //     {
  //       "package": "@netlify/plugin-sitemap",
  //       "inputs": {},
  //       "origin": "config"
  //     }
  //   ],
  //   "build": {
  //     "publish": "/home/me/code/cv-website/build",
  //     "publishOrigin": "default",
  //     "command": "gulp build",
  //     "commandOrigin": "config",
  //     "functions": "/home/me/code/cv-website/netlify/functions"
  //   }
  // },
  // "context": "production",
  // "branch": "main",
  // "token": "564194bc-12cd-511a-037a-be4c734f17c4"
  // }
}

Options

The options are an optional object with the following properties.

Those options are automatically set when using @netlify/config in the Netlify production CI or with Netlify CLI.

debug

Type: boolean
Default value: false unless the NETLIFY_BUILD_DEBUG environment variable is set.

Prints debugging information showing the configuration being resolved.

offline

Type: boolean
Default value: false

Do not send requests to the Netlify API to retrieve site settings.

buffer

Type: boolean
Default value: false

When using debug, returns the logs instead of printing them on the console.

config

Type: string

Path to the netlify.toml. It is either an absolute path or a path relative to the cwd.

If not specified, it is searched in the following directories (by highest priority order):

Otherwise, no netlify.toml is used.

repositoryRoot

Type: string
Default value: see cwd

Repository root directory. This is used in the following cases:

  • Searching for the netlify.toml (see config)
  • When a base directory was specified, its path is relative to the repository root directory
  • The functions, edge_handlers and publish directories are relative to the repository root directory or (if specified) the base directory
  • Determining the build directory

If not specified, it is automatically guessed by looking for any .git directory from the cwd, and up. If none is found, the cwd is used instead.

cwd

Type: string
Default value: process.cwd()

Current directory. This is used in the following cases:

  • Searching for the netlify.toml (see config)
  • Searching for the repositoryRoot
  • In a monorepo, when stepping inside a specific package in the console, that package is automatically used as base directory

context

Type: string
Default value: environment variable CONTEXT, or "production"

Deploy context.

The netlify.toml can contain contexts.{CONTEXT} properties, which are like build properties but only applied when {CONTEXT} matches.

branch

Type: string
Default value: environment variable BRANCH, current git branch, "main" or "master".

Same as context but using a git branch name.

token

Type: string
Default value: environment variable NETLIFY_AUTH_TOKEN

Netlify API token.

This is used to retrieve siteInfo.

host

Type: string
Default value: api.netlify.com

Host of the Netlify API.

scheme

Type: string
Default value: https

Scheme/protocol of the Netlify API.

pathPrefix

Type: string
Default value: /api/v1

Base path prefix of the Netlify API.

siteId

Type: string
Default value: environment variable NETLIFY_SITE_ID

Netlify Site ID.

This is used to retrieve siteInfo, accounts and addons.

env

Type: object

Environment variable to use, in addition to the current process.env. This is used as the default values of other options.

mode

Type: string
Default value: "require"

What is calling @netlify/config. Can be:

  • "buildbot": Netlify production CI
  • "cli": Netlify CLI
  • "require": anything else

This is used for the following cases:

  • if mode is buildbot, siteInfo, accounts and addons are not retrieved because they are also passed using another internal option.

defaultConfig

Type: string

Configuration object used as default. This is an object serialized with JSON.

inlineConfig

Type: object

Configuration object overriding any properties. This is a JavaScript object.

configMutations

Type: array

Array of changes to apply to the configuration. Each change must be an object with three properties:

  • keys: array of keys targetting the property to change
  • value: new value of that property
  • event: build event when this change was applied, e.g. onPreBuild

Return value

The return value is a Promise resolving to an object with the following properties.

config

Type: object

Resolved configuration object.

configPath

Type: string?

Absolute path to the netlify.toml, if this file exists.

headersPath

Type: string

Absolute path to the _headers, even if this file does not exist.

redirectsPath

Type: string

Absolute path to the _redirects, even if this file does not exist.

buildDir

Type: string

Absolute path to the build directory.

The build directory is the current directory in which most build operations, including the build command, execute. It is usually either the repositoryRoot or (if specified) the base directory.

repositoryRoot

Type: string

The computed value of repositoryRoot.

context

Type: string

Resolved context. See the context option.

branch

Type: string

Resolved git branch. See the branch option.

siteInfo

Type: object

Netlify Site information retrieved using the getSite Netlify API endpoint. This is used to retrieve Build settings set in the Netlify App: plugins, Build command, Publish directory, Functions directory, Base directory, Environment variables.

This might be empty depending on the options passed.

accounts

Type: object[]

Netlify accounts retrieved using the listAccountsForUser Netlify API endpoint. This is used to retrieve account-level environment variables.

This might be empty depending on the options passed.

addons

Type: object[]

Netlify addons retrieved using the listServiceInstancesForSite Netlify API endpoint. This is used to retrieve addon-specific environment variables.

This might be empty depending on the options passed.

token

Type: string

Netlify API token. This takes into account the token option but also some Netlify-specific environment variables.

api

Type: NetlifyClient?

Netlify JavaScript client instance used to retrieve siteInfo, accounts and addons.

logs

Type: object?

When the buffer option is used, this contains two arrays stdout and stderr with the logs.

env

Type: object?

Site's environment variables. Each environment variable value is an object with the following properties:

  • value string
  • sources string[] among:
    • general: general environment variables set for all sites
    • account: environment variables set in the Netlify UI for a specific account
    • addons: addon-specific environment variables
    • ui: environment variables set in the Netlify UI for a specific site
    • configFile: environment variables set in netlify.toml

Usage (CLI)

$ netlify-config

Like resolveConfig(), but in the CLI. The return value is printed on stdout.

The CLI flags use the same options.