Web Store 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
, a clientSecret
and a refreshToken
. Read [the guide.](How to generate Google API keys.md)
Usage
All methods return an ES2015-compliant promise.
Create a new client
const webStore = require('chrome-webstore-upload')({
extensionId: 'ecnglinljpjkbgmdpeiglonddahpbkeb',
clientId: 'xxxxxxxxxx',
clientSecret: 'xxxxxxxxxx',
refreshToken: 'xxxxxxxxxx'
});
Upload to existing extension
const fs = require('fs');
const myZipFile = fs.createReadStream('./mypackage.zip');
const token = 'xxxx'; // optional. One will be fetched if not provided
webStore.uploadExisting(myZipFile, token).then(res => {
// 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
webStore.publish(target, token).then(res => {
// Response is documented here:
// https://developer.chrome.com/webstore/webstore_api/items/publish
});
Fetch token
webStore.fetchToken().then(token => {
// Token is a string
});
Tips
- If you plan to upload and publish at the same time, use the
fetchToken
method, and pass it to bothuploadExisting
andpublish
as the optional second parameter. This will avoid those methods making duplicate calls for new tokens.