Sha256: 5ea576f5b4207ac94a0162cfc801b8c3c055d616e4e5fe768b0a7d10d753166d

Contents?: true

Size: 1.68 KB

Versions: 7

Compression:

Stored size: 1.68 KB

Contents

var parseUrl = require('url').parse;
var request = require('request');
var createError = require('./util/createError');

function register(name, url, callback) {
    var config = this._config;
    var requestUrl = config.registry.register + '/packages';
    var remote = parseUrl(requestUrl);
    var headers = {};

    if (config.userAgent) {
        headers['User-Agent'] = config.userAgent;
    }

    if (config.accessToken) {
        requestUrl += '?access_token=' + config.accessToken;
    }

    request.post({
        url: requestUrl,
        proxy: remote.protocol === 'https:' ? config.httpsProxy : config.proxy,
        headers: headers,
        ca: config.ca.register,
        strictSSL: config.strictSsl,
        timeout: config.timeout,
        json: true,
        form: {
            name: name,
            url: url
        }
    }, function (err, response) {
        // If there was an internal error (e.g. timeout)
        if (err) {
            return callback(createError('Request to ' + requestUrl + ' failed: ' + err.message, err.code));
        }

        // Duplicate
        if (response.statusCode === 403) {
            return callback(createError('Duplicate package', 'EDUPLICATE'));
        }

        // Invalid format
        if (response.statusCode === 400) {
            return callback(createError('Invalid URL format', 'EINVFORMAT'));
        }

        // Everything other than 201 is unknown
        if (response.statusCode !== 201) {
            return callback(createError('Unknown error: ' + response.statusCode + ' - ' + response.body, 'EUNKNOWN'));
        }

        callback(null, {
            name: name,
            url: url
        });
    });
}

module.exports = register;

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
entangled-0.0.16 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.15 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.14 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.13 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.12 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/bower-registry-client/lib/register.js