@automattic/jetpack-config

0.1.24 • Public • Published

Jetpack Config

When consuming Jetpack JS packages, we need to provide some additional configuration in the webpack config file of our project.

In order to do that, we use the externals property:

	externals: {
		...baseConfig.externals,
		jetpackConfig: JSON.stringify( {
			consumer_slug: 'my-plugin-slug',
		} ),
	}

Note: If Webpack's libraryTarget is set, you may need to override the target for the external by doing jetpackConfig: 'var ' + JSON.stringify(....

Required configuration

We only have one required configuration so far:

  • consumer_slug: The identifier of the app that's consuming the RNA packages. In most of the cases, this will be the plugin slug. Use the same slug you used when you invoke Config.ensure PHP method to require that your plugin used the connection (if you did so). This is used by the jetpack-api package to identify what plugin is making the requests.

Usage

Once registered in webpack config file, all values will be available to all modules in the bundle. Use the provided function to access them:

import { jetpackConfigHas, jetpackConfigGet } from '@automattic/jetpack-config';

const consumer_slug = jetpackConfigGet( 'consumer_slug' );

jetpackConfigHas - Returns a boolean indicating whether the config was declared or not

jetpackConfigGet - Returns the value of a given config and throws an error if the config was not declare.

Use jetpackConfigHas to check if the config exists before getting its value only when it's not a required information. If your app requires a configurtion to be set, let the app throw the error and tell the developer they need to add it to their config.

Security

Need to report a security vulnerability? Go to https://automattic.com/security/ or directly to our security bug bounty site https://hackerone.com/automattic.

License

config is licensed under GNU General Public License v2 (or later)

Readme

Keywords

none

Package Sidebar

Install

npm i @automattic/jetpack-config

Weekly Downloads

7

Version

0.1.24

License

GPL-2.0-or-later

Unpacked Size

27.3 kB

Total Files

6

Last publish

Collaborators

  • porada
  • imranh920
  • gmjuhasz
  • rcarvalho
  • briowill
  • bgrgicak
  • dhenridev
  • daledupreez-a8c
  • jeherve
  • yuliyan
  • micbosia8c
  • jeremy.yip
  • wpvip-bot
  • etobiesen
  • kzoschke
  • brunobasto
  • kat3samsin
  • fmfernandes
  • newspack
  • robertsreberski_a8c
  • msurdi-a8c
  • chihsuan
  • manzoorwanijk
  • rjchow
  • andrea-sdl
  • scjr
  • spsiddarthan
  • t2dw4t
  • ehg_
  • wwa
  • sirreal
  • elazzabi
  • royho
  • luismulinari
  • macbre
  • mjangda
  • matticbot
  • a8c
  • blowery
  • noahtallen
  • hanifn
  • sgomes
  • tyxla
  • saroshaga
  • parkcityj
  • nejclovrencic
  • sirbrillig
  • chriszarate
  • robersongomes
  • johngodley