@qiwi/npm-batch-client
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

@qiwi/npm-batch-client

Wrapper for https://github.com/npm/npm-registry-client with blackjack promises and batch actions.

Installation

npm install @qiwi/npm-batch-client
yarn add @qiwi/npm-batch-client

Usage

All batch methods return array of PromiseSettledResults

Creating an instance

import { NpmRegClientWrapper, NpmRegClientBatchWrapper, RegClient } from '@qiwi/npm-batch-client'

const wrapper = new NpmRegClientWrapper(
  'https://registry.npmjs.org',
  {
    username: 'username',
    password: 'password',
    email: 'email@email.com'
  }
)
const batchWrapper = new NpmRegClientBatchWrapper(wrapper)

// You can use authorization via token
const wrapperWithTokenAuth = new NpmRegClientWrapper(
  'https://registry.npmjs.org',
  {
    token: 'your token',
  }
)

// You can pass your own npm-registry-client instance as third argument to constructor.
const wrapperWithCustomClientInstance = new NpmRegClientWrapper(
  'https://registry.npmjs.org',
  {
    token: 'your token',
  },
  new RegClient(yourCustomConfig)
)

Get info about package

wrapper.getPackument('@types/react')
  .then(console.log)
/*
{
    "_id": "foo",
    "_rev": "12-116b13c5b065b01fc85f3b4034414b2c",
    "name": "foo",
    "dist-tags": {
        "latest": "1.2.0"
    },
    "versions": {
        "1.1.0": {
    ...
}
*/

Get info about packages by list

const packageNames = [
  'foo',
  'bar',
  'baz'
]

batchWrapper.getPackument(packageNames)
  .then(console.log)
/*
[
    {
      status: 'fulfilled',
      value: {
        _id: 'foo',
        _rev: '12-12345678123456781234567812345678',
        name: 'foo',
        'dist-tags': {
          latest: '1.2.0'
        },
        versions: {
          '1.1.0': {
        ...
    },
    {
      status: 'fulfilled',
      value: {
        _id: 'bar',
        _rev: '12-12345678123456781234567812345679',
        name: 'bar',
        'dist-tags': {
          latest: '1.2.0'
        },
        versions: {
          '1.1.0': {
        ...
      }
    },
    ...
]
*/
wrapper.getBatch(packageNames, true) // if you want to ignore errors when executing a batch actions

Deprecate package version by given range and with given message

wrapper.deprecate('foo', '<1.2.0', 'foo <1.2.0 contains critical bugs')

Deprecate list of packages

 const params = [
  {
    packageName: 'foo',
    version: '>1.1.0',
    message: 'foo is deprecated'
  },
  {
    packageName: 'bar',
    version: '*',
    message: 'bar is deprecated'
  },
  {
    packageName: 'baz',
    version: '<1.2.0',
    message: 'baz is deprecated'
  },
]
batchWrapper.deprecate(params)
batchWrapper.deprecate(params, true) // if you want to ignore errors when executing a batch of actions

Un-deprecate list of packages

 const params = [
  {
    packageName: 'foo',
    version: '>1.1.0'
  },
  {
    packageName: 'bar',
    version: '*'
  },
  {
    packageName: 'baz',
    version: '<1.2.0'
  },
]
batchWrapper.unDeprecate(params)
batchWrapper.unDeprecate(params, true) // if you want to ignore errors when executing a batch of actions

Publish a package

const opts = {
  name: 'package',
  version: '1.0.0',
  filePath: 'package.tar.gz',
  access: 'public' // or 'restricted'
}

wrapper.publish(opts)

Publish a list of packages

const opts = [
    {
      name: 'packageA',
      version: '1.0.0',
      filePath: 'packageA.tar.gz',
      access: 'public'
    },
    {
      name: 'packageB',
      version: '1.0.0',
      filePath: 'packageB.tar.gz',
      access: 'public'
    },
]
batchWrapper.publish(opts)
batchWrapper.publish(opts, true) // if you want to ignore errors when executing a batch of actions

Set latest tag

const opts = {
    name: 'packageA',
    version: '1.0.0' // if version is absent the latest version will be set
}
wrapper.setLatestTag(opts)

Set latest tag for a list of packages

const opts = [
  {
    name: 'packageA',
    version: '1.0.0',
  },
  {
    name: 'packageB' // the latest version will be set
  },
]
batchWrapper.setLatestTag(opts)
batchWrapper.setLatestTag(opts, true)  // if you want to ignore errors when executing a batch of actions

Package Sidebar

Install

npm i @qiwi/npm-batch-client

Weekly Downloads

2

Version

2.2.0

License

MIT

Unpacked Size

75.2 kB

Total Files

34

Last publish

Collaborators

  • antongolub
  • qiwibot