From 9bf7583959cb02ed2feac6d3781965921d2220f8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 12 Oct 2022 01:06:19 -0700 Subject: [PATCH] [eslint] add eslint --- .eslintrc | 20 ++++++++++++++++++++ example/defined.js | 4 +++- index.js | 8 ++++++-- package.json | 4 ++++ test/def.js | 12 +++++++----- test/falsy.js | 4 +++- 6 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..2cd8eff --- /dev/null +++ b/.eslintrc @@ -0,0 +1,20 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "consistent-return": 1, + "indent": [2, 4], + "sort-keys": 0, + }, + + "overrides": [ + { + "files": "example/**", + "rules": { + "no-console": 0, + }, + }, + ], +} diff --git a/example/defined.js b/example/defined.js index 7b5d982..dd102f0 100644 --- a/example/defined.js +++ b/example/defined.js @@ -1,4 +1,6 @@ +'use strict'; + var defined = require('../'); -var opts = { y : false, w : 4 }; +var opts = { y: false, w: 4 }; var x = defined(opts.x, opts.y, opts.w, 8); console.log(x); diff --git a/index.js b/index.js index f8a2219..64a39d3 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,9 @@ -module.exports = function () { +'use strict'; + +module.exports = function defined() { for (var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) return arguments[i]; + if (typeof arguments[i] !== 'undefined') { + return arguments[i]; + } } }; diff --git a/package.json b/package.json index 5f6642d..d9e9b57 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,14 @@ "test": "test" }, "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", "aud": "^2.0.1", + "eslint": "=8.8.0", "tape": "^5.6.1" }, "scripts": { + "lint": "eslint --ext=js,mjs .", + "pretest": "npm run lint", "tests-only": "tape 'test/**/*.js'", "test": "npm run tests-only", "posttest": "aud --production" diff --git a/test/def.js b/test/def.js index 48da517..8749025 100644 --- a/test/def.js +++ b/test/def.js @@ -1,22 +1,24 @@ +'use strict'; + var defined = require('../'); var test = require('tape'); test('defined-or', function (t) { - var u = undefined; - + var u = void undefined; + t.equal(defined(), u, 'empty arguments'); t.equal(defined(u), u, '1 undefined'); t.equal(defined(u, u), u, '2 undefined'); t.equal(defined(u, u, u, u), u, '4 undefineds'); - + t.equal(defined(undefined, false, true), false, 'false[0]'); t.equal(defined(false, true), false, 'false[1]'); t.equal(defined(undefined, 0, true), 0, 'zero[0]'); t.equal(defined(0, true), 0, 'zero[1]'); - + t.equal(defined(3, undefined, 4), 3, 'first arg'); t.equal(defined(undefined, 3, 4), 3, 'second arg'); t.equal(defined(undefined, undefined, 3), 3, 'third arg'); - + t.end(); }); diff --git a/test/falsy.js b/test/falsy.js index 6b7d623..a9dceb3 100644 --- a/test/falsy.js +++ b/test/falsy.js @@ -1,9 +1,11 @@ +'use strict'; + var test = require('tape'); var defined = require('../'); test('falsy', function (t) { t.plan(1); - var opts = { y : false, w : 4 }; + var opts = { y: false, w: 4 }; var x = defined(opts.x, opts.y, opts.w, 8); t.equal(x, false); });