New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

shardy-mc-shard-face

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shardy-mc-shard-face

Sharding utility for CI services

  • 2.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

ShardyMcShardFace

Package to shard a set of items based on CI parallelization parameters, e.g. YOUR_CI_SYSTEM_INDEX and YOUR_CI_SYSTEM_COUNT.

Features:

  • Shards as evenly as possible, uneven splits will end up in the tail shards
  • Supports sharding less items than parallelization count; tail shards will be empty
  • Distributes items into shards based on a given seed for a random number generator to provide random, but stable distribution.
  • Fully typed in Typescript

Installation

yarn add shardy-mc-shard-face

Usage

shardyMcShardFace(items: any[] [, options: { throwOnEmpty: boolean, throwWhenNotSharding: boolean, seed: string }]): shard[];

You can get debug output by setting the environment variable DEBUG=ShardyMcShardFace:*.

Example

import { shard as shardyMcShardFace } from 'shardy-mc-shard-face';
const shard = shardyMcShardFace([1, 2, 3, 4]);
// shard is an array that contains items based on YOUR_CI_SYSTEM_INDEX and YOUR_CI_SYSTEM_COUNT

CLI example

cat items | shardy shard

Input is expected to be newline-separated to stdin. Output is also newline-separated to stdout.

On a CI run this would look like this:

# CI_NODE_INDEX=1 (set by your CI system)
# CI_NODE_TOTAL=2 (set by your CI system)
echo "A\nB" | shardy shard
# Will print "A" (w/o quotes) to stdout

you can control the seed as well via -s <seed>. For a full list of options, please run shardy --help.

CI system support

CI systems supported are the ones supported by ci-parallel-vars. Feel free to open a pull request there and I will be happy to bump the dependency.

FAQs

Package last updated on 19 Nov 2019

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

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc