Home

Awesome

chrome-webstore-upload

A small node.js module to upload/publish extensions to the Chrome Web Store.

If you're looking to upload/publish from the CLI, then use chrome-webstore-upload-cli.

Install

npm install --save-dev chrome-webstore-upload

Setup

You will need a Google API clientId, clientSecret and refreshToken. Use the guide.

Usage

All methods return a promise.

Create a new client

import chromeWebstoreUpload from 'chrome-webstore-upload';

const store = chromeWebstoreUpload({
  extensionId: 'ecnglinljpjkbgmdpeiglonddahpbkeb',
  clientId: 'xxxxxxxxxx',
  clientSecret: 'xxxxxxxxxx',
  refreshToken: 'xxxxxxxxxx',
});

Upload to existing extension

import fs from 'fs';

const myZipFile = fs.createReadStream('./mypackage.zip');
const token = 'xxxx'; // optional. One will be fetched if not provided
const response = await store.uploadExisting(myZipFile, token);
// response is a Resource Representation
// https://developer.chrome.com/webstore/webstore_api/items#resource

Publish extension

const target = 'default'; // optional. Can also be 'trustedTesters'
const token = 'xxxx'; // optional. One will be fetched if not provided
const deployPercentage = 25; // optional. Will default to 100%.
const response = await store.publish(target, token, deployPercentage);
// response is documented here:
// https://developer.chrome.com/webstore/webstore_api/items#publish

Get a Chrome Web Store item

const projection = "DRAFT"; // optional. Can also be 'PUBLISHED' but only "DRAFT" is supported at this time.
const token = "xxxx"; // optional. One will be fetched if not provided
const response = await store.get(projection, token);
// response is documented here:
// https://developer.chrome.com/docs/webstore/webstore_api/items#get

Fetch token

const token = store.fetchToken();
// token is  astring

Tips

Related