📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP
Socket
Sign inDemoInstall
Socket

eslint-plugin-couchdb

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-couchdb - npm Package Compare versions

Comparing version

to
0.2.0

lib/.eslintrc

67

lib/index.js

@@ -7,15 +7,37 @@ /**

var front = function(functions, jsonObject) {
var fn = function(name) {
return 'var ' + name + ' = function() {};';
};
var COUCHIAN_NAMES = [
'map.js',
'reduce.js',
'validate_doc_update.js'
];
var prepends = functions.map(fn).join('');
if (jsonObject) {
prepends += 'var JSON = {};JSON.stringify = function() {};JSON.parse = function() {}';
}
var isCouchDBDocument = function(filename) {
return COUCHIAN_NAMES.find(function(name) {
return filename.endsWith(name);
});
return prepends + '( // eslint-disable-line \n';
}
// https://docs.couchdb.org/en/stable/query-server/javascript.html#
var mapFront = front(['emit', 'isArray', 'log', 'require', 'sum', 'toJSON'], true);
var reduceFront = front(['isArray', 'log', 'sum', 'toJSON'], true);
var vdoFront = front(['isArray', 'log', 'require', 'sum', 'toJSON'], true);
var showFront = front(['isArray', 'log', 'provides', 'registerType', 'require', 'sum', 'toJSON'], true);
var listFront = front(['getRow', 'isArray', 'log', 'provides', 'registerType', 'require', 'send', 'start', 'sum', 'toJSON'], true);
var mapTest = /views\/[^\/]+\/map\.js$/;
var reduceTest = /views\/[^\/]+\/reduce\.js$/;
var vdoTest = /validate_doc_update.js$/;
var showTest = /shows\/.*.js$/;
var listTest = /lists\/.*.js$/;
var FN_TYPES = [
{test: mapTest, front: mapFront},
{test: reduceTest, front: reduceFront},
{test: vdoTest, front: vdoFront},
{test: showTest, front: showFront},
{test: listTest, front: listFront}
];
// import processors

@@ -26,22 +48,23 @@ module.exports.processors = {

preprocess: function(text, filename) {
if (isCouchDBDocument(filename)) {
return ['(' + text + ');'];
} else {
return [text];
for (var i = 0; i < FN_TYPES.length; i++) {
var fnType = FN_TYPES[i];
if (fnType.test.test(filename)) {
var output = fnType.front + text + ')';
return [output];
}
}
return [text];
},
postprocess: function(messages) {
return messages[0];
}
}
};
messages[0].forEach(function(message) {
// We're adding one line of preamble, so drop the line number by one
message.line--;
});
module.exports.environments = {
couchdb: {
globals: {
emit: true,
log: true
return messages[0];
}
}
};
{
"name": "eslint-plugin-couchdb",
"version": "0.1.1",
"version": "0.2.0",
"description": "Adds support for CouchDB design document JavaScript files",

@@ -13,12 +13,11 @@ "keywords": [

"author": "Stefan du Fresne",
"repository": "https://github.com/scdf/eslint-plugin-couchdb",
"main": "lib/index.js",
"scripts": {
"test": "mocha tests --recursive"
"test": "eslint lib/ tests/"
},
"dependencies": {
"requireindex": "~1.1.0"
},
"dependencies": {},
"devDependencies": {
"eslint": "~3.9.1",
"mocha": "^3.1.2"
"eslint-plugin-couchdb": "."
},

@@ -25,0 +24,0 @@ "engines": {

@@ -41,5 +41,2 @@ # eslint-plugin-couchdb

"extends": "eslint:recommended",
"env": {
"couchdb/couchdb": true,
},
"plugins": ["couchdb"]

@@ -58,5 +55,2 @@ }

"extends": "eslint:recommended",
"env": {
"couchdb/couchdb": true,
},
"plugins": ["couchdb"],

@@ -63,0 +57,0 @@ "parserOptions": {