diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..294ee6c --- /dev/null +++ b/.eslintrc @@ -0,0 +1,238 @@ +root: true + +rules: + accessor-pairs: [2] + array-bracket-newline: [0] + array-bracket-spacing: [2, never] + array-callback-return: [0] + array-element-newline: [0] + arrow-body-style: [0] + arrow-parens: [2, as-needed] + arrow-spacing: [2, {before: true, after: true}] + block-scoped-var: [2] + brace-style: [2, 1tbs, {allowSingleLine: true}] + camelcase: [2, {properties: never}] + capitalized-comments: [0] + class-methods-use-this: [2] + comma-dangle: [0] + comma-spacing: [2, {before: false, after: true}] + comma-style: [2, last] + complexity: [0] + computed-property-spacing: [2, never] + consistent-return: [0] + constructor-super: [2] + curly: [0] + default-case: [0] + dot-location: [2, property] + dot-notation: [0] + eol-last: [2] + eqeqeq: [2] + for-direction: [2] + func-call-spacing: [2, never] + func-name-matching: [2] + func-names: [0] + function-paren-newline: [0] + generator-star-spacing: [2, before] + global-require: [0] + guard-for-in: [0] + handle-callback-err: [2, ^(err|error)$] + id-blacklist: [0] + id-length: [0] + id-match: [0] + indent: [2, 2, {VariableDeclarator: 0, SwitchCase: 1}] + jsx-quotes: [0] + key-spacing: [0] + keyword-spacing: [2] + linebreak-style: [2, unix] + lines-around-comment: [0] + lines-around-directive: [0] + lines-between-class-members: [2, never] + max-len: [0] + max-lines: [0] + max-nested-callbacks: [0] + max-params: [0] + max-statements-per-line: [0] + max-statements: [0] + multiline-comment-style: [0] + multiline-ternary: [0] + new-cap: [0] + new-parens: [2] + newline-before-return: [0] + newline-per-chained-call: [0] + no-alert: [0] + no-array-constructor: [0] + no-await-in-loop: [2] + no-bitwise: [0] + no-buffer-constructor: [0] + no-caller: [2] + no-case-declarations: [2] + no-class-assign: [2] + no-compare-neg-zero: [2] + no-cond-assign: [2, except-parens] + no-confusing-arrow: [0] + no-const-assign: [2] + no-constant-condition: [0] + no-continue: [2] + no-control-regex: [2] + no-debugger: [2] + no-delete-var: [2] + no-div-regex: [0] + no-dupe-args: [2] + no-dupe-class-members: [2] + no-dupe-keys: [2] + no-duplicate-case: [2] + no-duplicate-imports: [2] + no-else-return: [0] + no-empty-character-class: [2] + no-empty-function: [0] + no-empty-pattern: [2] + no-empty: [2, {allowEmptyCatch: true}] + no-eq-null: [2] + no-eval: [2] + no-ex-assign: [2] + no-extend-native: [2] + no-extra-bind: [2] + no-extra-boolean-cast: [2] + no-extra-label: [0] + no-extra-parens: [0] + no-extra-semi: [2] + no-fallthrough: [2] + no-floating-decimal: [0] + no-func-assign: [2] + no-global-assign: [2] + no-implicit-coercion: [0] + no-implicit-globals: [0] + no-implied-eval: [2] + no-inline-comments: [0] + no-inner-declarations: [2] + no-invalid-regexp: [2] + no-invalid-this: [0] + no-irregular-whitespace: [2] + no-iterator: [2] + no-label-var: [2] + no-labels: [2] + no-lone-blocks: [2] + no-lonely-if: [0] + no-loop-func: [0] + no-magic-numbers: [0] + no-mixed-operators: [0] + no-mixed-requires: [2, true] + no-mixed-spaces-and-tabs: [2] + no-multi-spaces: + - 2 + - ignoreEOLComments: true + exceptions: + VariableDeclarator: true + ImportDeclaration: true + Property: true + no-multi-str: [2] + no-multiple-empty-lines: [2, {max: 1, maxEOF: 0, maxBOF: 0}] + no-native-reassign: [2] + no-negated-condition: [0] + no-negated-in-lhs: [2] + no-nested-ternary: [0] + no-new-func: [2] + no-new-object: [2] + no-new-require: [2] + no-new-symbol: [2] + no-new-wrappers: [2] + no-new: [0] + no-obj-calls: [2] + no-octal-escape: [2] + no-octal: [2] + no-path-concat: [2] + no-process-exit: [0] + no-proto: [2] + no-redeclare: [2] + no-regex-spaces: [2] + no-restricted-imports: [0] + no-restricted-modules: [2, domain, freelist, smalloc, sys] + no-restricted-syntax: [2, WithStatement] + no-return-assign: [0] + no-return-await: [2] + no-script-url: [2] + no-self-assign: [2, {props: true}] + no-self-compare: [2] + no-sequences: [2] + no-shadow-restricted-names: [2] + no-shadow: [0] + no-spaced-func: [2] + no-sparse-arrays: [2] + no-tabs: [2] + no-template-curly-in-string: [2] + no-this-before-super: [2] + no-throw-literal: [2] + no-trailing-spaces: [2] + no-undef-init: [2] + no-undef: [2] + no-undefined: [0] + no-underscore-dangle: [0] + no-unexpected-multiline: [2] + no-unmodified-loop-condition: [2] + no-unneeded-ternary: [2] + no-unreachable: [2] + no-unsafe-finally: [2] + no-unsafe-negation: [2] + no-unused-expressions: [2] + no-unused-labels: [0] + no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_}] + no-use-before-define: [2, nofunc] + no-useless-call: [2] + no-useless-computed-key: [2] + no-useless-concat: [2] + no-useless-constructor: [2] + no-useless-escape: [2] + no-var: [0] + no-warning-comments: [0] + no-whitespace-before-property: [2] + no-with: [2] + nonblock-statement-body-position: [2] + object-curly-newline: [0] + object-curly-spacing: [2, never] + object-shorthand: [0] + one-var-declaration-per-line: [0] + one-var: [0] + operator-assignment: [2, always] + operator-linebreak: [2, after] + padded-blocks: [2, never] + prefer-arrow-callback: [0] + prefer-const: [2] + prefer-destructuring: [0] + prefer-numeric-literals: [2] + prefer-promise-reject-errors: [2, {allowEmptyReject: false}] + prefer-reflect: [0] + prefer-rest-params: [0] + prefer-spread: [0] + prefer-template: [0] + quote-props: [0] + quotes: [2, single, avoid-escape] + radix: [2, as-needed] + require-await: [2] + require-jsdoc: [0] + require-yield: [2] + semi-spacing: [2, {before: false, after: true}] + semi-style: [2, last] + semi: [0] + sort-imports: [0] + sort-keys: [0] + space-before-blocks: [2, always] + space-before-function-paren: [2, always] + space-in-parens: [2, never] + space-infix-ops: [2] + space-unary-ops: [2] + spaced-comment: [2, always, {markers: ["!"]}] + strict: [0] + switch-colon-spacing: [2] + symbol-description: [2] + template-curly-spacing: [2, never] + template-tag-spacing: [2, never] + unicode-bom: [2, never] + use-isnan: [2] + valid-typeof: [2] + wrap-iife: [2, inside] + wrap-regex: [0] + yield-star-spacing: [2, {before: true, after: false}] + yoda: [2, never] + +env: + node: true diff --git a/index.js b/index.js index 0bcc831..997466e 100644 --- a/index.js +++ b/index.js @@ -14,14 +14,14 @@ var NOT_QU_MASK = ~QU_MASK var name = exports.txt = exports.name = {} name.encode = function (str, buf, offset) { - if (!buf) buf = Buffer.allocUnsafe(name.encodingLength(n)) + if (!buf) buf = Buffer.allocUnsafe(name.encodingLength(str)) if (!offset) offset = 0 var oldOffset = offset // strip leading and trailing . - const n = str.replace(/^\.|\.$/gm, '') + var n = str.replace(/^\.|\.$/gm, '') if (n.length) { - const list = n.split('.') + var list = n.split('.') for (var i = 0; i < list.length; i++) { var len = buf.write(list[i], offset + 1) @@ -155,7 +155,7 @@ header.decode = function (buf, offset) { header.decode.bytes = 12 -header.encodingLength = function (h) { +header.encodingLength = function () { return 12 } @@ -519,7 +519,7 @@ ra.decode = function (buf, offset) { ra.decode.bytes = 0 -ra.encodingLength = function (host) { +ra.encodingLength = function () { return 6 } @@ -549,7 +549,7 @@ raaaa.decode = function (buf, offset) { raaaa.decode.bytes = 0 -raaaa.encodingLength = function (host) { +raaaa.encodingLength = function () { return 18 } diff --git a/package.json b/package.json index 1e53578..4c51a1b 100644 --- a/package.json +++ b/package.json @@ -11,11 +11,12 @@ "safe-buffer": "^5.0.1" }, "devDependencies": { + "eslint": "^4.15.0", "standard": "^6.0.5", "tape": "^4.4.0" }, "scripts": { - "test": "standard && tape test.js" + "test": "standard && eslint --color *.js && tape test.js" }, "bugs": { "url": "https://github.com/mafintosh/dns-packet/issues" diff --git a/test.js b/test.js index c103ac9..0720cb3 100644 --- a/test.js +++ b/test.js @@ -176,13 +176,13 @@ tape('response', function (t) { }) tape('rcode', function (t) { - const errors = ['NOERROR', 'FORMERR', 'SERVFAIL', 'NXDOMAIN', 'NOTIMP', 'REFUSED', 'YXDOMAIN', 'YXRRSET', 'NXRRSET', 'NOTAUTH', 'NOTZONE', 'RCODE_11', 'RCODE_12', 'RCODE_13', 'RCODE_14', 'RCODE_15'] + var errors = ['NOERROR', 'FORMERR', 'SERVFAIL', 'NXDOMAIN', 'NOTIMP', 'REFUSED', 'YXDOMAIN', 'YXRRSET', 'NXRRSET', 'NOTAUTH', 'NOTZONE', 'RCODE_11', 'RCODE_12', 'RCODE_13', 'RCODE_14', 'RCODE_15'] for (var i in errors) { var code = rcodes.toRcode(errors[i]) t.ok(errors[i] === rcodes.toString(code), 'rcode conversion from/to string matches: ' + rcodes.toString(code)) } - const ops = ['QUERY', 'IQUERY', 'STATUS', 'OPCODE_3', 'NOTIFY', 'UPDATE', 'OPCODE_6', 'OPCODE_7', 'OPCODE_8', 'OPCODE_9', 'OPCODE_10', 'OPCODE_11', 'OPCODE_12', 'OPCODE_13', 'OPCODE_14', 'OPCODE_15'] + var ops = ['QUERY', 'IQUERY', 'STATUS', 'OPCODE_3', 'NOTIFY', 'UPDATE', 'OPCODE_6', 'OPCODE_7', 'OPCODE_8', 'OPCODE_9', 'OPCODE_10', 'OPCODE_11', 'OPCODE_12', 'OPCODE_13', 'OPCODE_14', 'OPCODE_15'] for (var j in ops) { var ocode = opcodes.toOpcode(ops[j]) t.ok(ops[j] === opcodes.toString(ocode), 'opcode conversion from/to string matches: ' + opcodes.toString(ocode))