You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

@percy/config

Package Overview
Dependencies
Maintainers
1
Versions
221
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@percy/config

Handles loading and adding options to Percy configuration files. Uses [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) to load configuration files and [JSON schema](https://json-schema.org/) with [AJV](https://github.com/epoberezkin/ajv) to val


Version published
Weekly downloads
422K
increased by0.44%
Maintainers
1
Install size
3.06 MB
Created
Weekly downloads
 

Package description

What is @percy/config?

@percy/config is a configuration management package for Percy, a visual testing and review platform. It allows users to define and manage configuration settings for Percy in a structured and programmatic way.

What are @percy/config's main functionalities?

Load Configuration

This feature allows you to load the configuration settings for Percy from a configuration file. The `load` function reads the configuration and returns it as a JavaScript object.

const { load } = require('@percy/config');
const config = load();
console.log(config);

Validate Configuration

This feature allows you to validate a given configuration object against the expected schema. The `validate` function returns an object indicating whether the configuration is valid and any errors if it is not.

const { validate } = require('@percy/config');
const config = { version: 2, snapshots: { widths: [375, 1280] } };
const { valid, errors } = validate(config);
console.log(valid, errors);

Merge Configuration

This feature allows you to merge multiple configuration objects into one. The `merge` function takes two or more configuration objects and combines them, with later objects overriding earlier ones.

const { merge } = require('@percy/config');
const baseConfig = { version: 2, snapshots: { widths: [375] } };
const overrideConfig = { snapshots: { widths: [1280] } };
const mergedConfig = merge(baseConfig, overrideConfig);
console.log(mergedConfig);

Other packages similar to @percy/config

Readme

Source

@percy/config

Handles loading and adding options to Percy configuration files. Uses cosmiconfig to load configuration files and JSON schema with AJV to validate those configuration files.

Loading config files

The .load() method will load and validate a configuation file, optionally merging it with any provided overrides. If no path is provided, will search for the first supported config found from the current directory up to the home directoy. Configuration files are cached and reused unless reload is true.

import PercyConfig from '@percy/config'

// loading is done synchronously
const config = PercyConfig.load(options)
Options
  • path — Config file path or directory containing a config file
  • overrides — Config option overrides
  • reload — Do not use cached config (default false)
  • bail — Return undefined when failing validation (default false)
  • print — Print info and error logs (default false)
Supported files
  • "percy" entry in package.json
  • .percyrc YAML or JSON file
  • .percy.json JSON file
  • .percy.yaml or .percy.yml YAML file
  • .percy.js or percy.config.js file that exports an object

Extending config options

The .addSchema() function will add a sub-schema to the Percy configuration file which will be parsed and validated when PercyConfig.load() is called. See JSON schema for possible schema options.

import PercyConfig from '@percy/config'

PercyConfig.addSchema({
  propertyName: JSONSchema
})

FAQs

Package last updated on 08 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc