0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-30 22:34:10 -05:00

added utils.is_object function for convenience

This commit is contained in:
Alex Kocharin 2013-10-22 11:29:57 +04:00
parent 4c2c4b87c2
commit 61658cfbdc
8 changed files with 29 additions and 27 deletions

View file

@ -1,6 +1,7 @@
var assert = require('assert');
var crypto = require('crypto');
var minimatch = require('minimatch');
var assert = require('assert')
, crypto = require('crypto')
, minimatch = require('minimatch')
, utils = require('./utils')
// [[a, [b, c]], d] -> [a, b, c, d]
function flatten(array) {
@ -37,10 +38,7 @@ function Config(config) {
['users', 'uplinks', 'packages'].forEach(function(x) {
if (this[x] == null) this[x] = {};
assert(
typeof(this[x]) === 'object' &&
!Array.isArray(this[x])
, 'CONFIG: bad "'+x+'" value (object expected)');
assert(utils.is_object(this[x]), 'CONFIG: bad "'+x+'" value (object expected)');
});
for (var i in this.users) check_user_or_uplink(i);

View file

@ -1,4 +1,5 @@
var util = require('util');
var util = require('util')
, utils = require('./utils')
function parse_error_params(params, status, msg) {
if (typeof(params) === 'string') {
@ -11,7 +12,7 @@ function parse_error_params(params, status, msg) {
msg: msg,
status: params,
};
} else if (typeof(params) === 'object' && params != null) {
} else if (utils.is_object(params)) {
if (params.msg == null) params.msg = msg;
if (params.status == null) params.status = status;
return params;

View file

@ -174,7 +174,7 @@ module.exports = function(config_hash) {
if (req.params._rev != null && req.params._rev != '-rev') return next('route');
var name = req.params.package;
if (Object.keys(req.body).length == 1 && typeof(req.body.users) === 'object') {
if (Object.keys(req.body).length == 1 && utils.is_object(req.body.users)) {
return next(new UError({
// 501 status is more meaningful, but npm doesn't show error message for 5xx
status: 404,

View file

@ -153,6 +153,7 @@ Storage.prototype.add_version = function(name, version, metadata, tag, callback)
msg: 'this version already present'
}))
}
data.versions[version] = metadata
data['dist-tags'][tag] = version
cb()
@ -345,7 +346,7 @@ Storage.prototype.update_package = function(name, updateFn, _callback) {
Storage.prototype._normalize_package = function(pkg) {
['versions', 'dist-tags', '_distfiles', '_attachments'].forEach(function(key) {
if (typeof(pkg[key]) != 'object' || pkg[key] == null) pkg[key] = {}
if (!utils.is_object(pkg[key])) pkg[key] = {}
});
if (typeof(pkg._rev) !== 'string') pkg._rev = '0-0000000000000000'
}

View file

@ -1,5 +1,6 @@
var Logger = require('bunyan');
var Stream = require('stream');
var Logger = require('bunyan')
, Stream = require('stream')
, utils = require('./utils')
function getlvl(x) {
if (x < 15) {
@ -123,7 +124,7 @@ function print(type, msg, obj, colors) {
var _ref = name.split('.');
for (var _i = 0; _i < _ref.length; _i++) {
var id = _ref[_i];
if (typeof str === 'object') {
if (utils.is_object(str) || Array.isArray(str)) {
str = str[id];
} else {
str = void 0;

View file

@ -29,7 +29,7 @@ module.exports.media = function media(expect) {
}
module.exports.expect_json = function expect_json(req, res, next) {
if (typeof(req.body) !== 'object' || req.body === null) {
if (!utils.is_object(req.body)) {
return next({
status: 400,
msg: 'can\'t parse incoming json',

View file

@ -1,8 +1,9 @@
var URL = require('url');
var request = require('request');
var UError = require('./error').UserError;
var mystreams = require('./streams');
var Logger = require('./logger');
var URL = require('url')
, request = require('request')
, UError = require('./error').UserError
, mystreams = require('./streams')
, Logger = require('./logger')
, utils = require('./utils')
//
// Implements Storage interface
@ -47,7 +48,7 @@ Storage.prototype.request = function(options, cb) {
uri: uri,
}, "making request: '@{method} @{uri}'");
if (typeof(options.json) === 'object' && options.json != null) {
if (utils.is_object(options.json)) {
var json = JSON.stringify(options.json);
headers['content-type'] = headers['content-type'] || 'application/json';
}
@ -70,7 +71,7 @@ Storage.prototype.request = function(options, cb) {
}
}
if (typeof(body) === 'object' && body !== null) {
if (utils.is_object(body)) {
if (body.error) {
var error = body.error;
}

View file

@ -18,19 +18,19 @@ module.exports.validate_name = function(name) {
}
}
function is_object(obj) {
return typeof(obj) === 'object' && !Array.isArray(obj);
module.exports.is_object = function(obj) {
return typeof(obj) === 'object' && obj !== null && !Array.isArray(obj)
}
module.exports.validate_metadata = function(object, name) {
assert(is_object(object));
assert(module.exports.is_object(object));
assert.equal(object.name, name);
if (!is_object(object['dist-tags'])) {
if (!module.exports.is_object(object['dist-tags'])) {
object['dist-tags'] = {};
}
if (!is_object(object['versions'])) {
if (!module.exports.is_object(object['versions'])) {
object['versions'] = {};
}