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 this, which wraps Web Store Upload.
npm install --save-dev chrome-webstore-upload
You will need a Google API clientId
, a clientSecret
and a refreshToken
. Read [the guide.](How to generate Google API keys.md)
All methods return an ES2015-compliant promise.
const webStore = require('chrome-webstore-upload')({
extensionId: 'ecnglinljpjkbgmdpeiglonddahpbkeb',
clientId: 'xxxxxxxxxx',
clientSecret: 'xxxxxxxxxx',
refreshToken: 'xxxxxxxxxx'
});
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
});
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
});
webStore.fetchToken().then(token => {
// Token is a string
});
- 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.