Skip to content

Commit

Permalink
Merge pull request #4 from dsheeler/3-add-eslint-github-action
Browse files Browse the repository at this point in the history
Add linting
  • Loading branch information
dsheeler authored May 24, 2024
2 parents dc9bf4f + 0622ce7 commit 39acc68
Show file tree
Hide file tree
Showing 8 changed files with 231 additions and 51 deletions.
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.js]
quote_type = single
109 changes: 109 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: No rights reserved

env:
es2021: true
extends: 'eslint:recommended'
rules:
# See: https://eslint.org/docs/latest/rules/#possible-problems
array-callback-return: error
no-await-in-loop: error
no-constant-binary-expression: error
no-constructor-return: error
#no-duplicate-imports: error
no-new-native-nonconstructor: error
no-promise-executor-return: error
no-self-compare: error
no-template-curly-in-string: error
no-unmodified-loop-condition: error
no-unreachable-loop: error
no-unused-private-class-members: error
no-use-before-define:
- error
- functions: false
classes: true
variables: true
allowNamedExports: true
# See: https://eslint.org/docs/latest/rules/#suggestions
block-scoped-var: error
complexity: warn
consistent-return: error
default-param-last: error
eqeqeq: error
no-array-constructor: error
no-caller: error
no-extend-native: error
no-extra-bind: error
no-extra-label: error
no-iterator: error
no-label-var: error
no-loop-func: error
no-multi-assign: warn
no-new-object: error
no-new-wrappers: error
no-proto: error
no-shadow: warn
no-unused-vars:
- error
- varsIgnorePattern: ^_
argsIgnorePattern: ^_
no-var: warn
unicode-bom: error
# GJS Restrictions
no-restricted-globals:
- error
- name: Debugger
message: Internal use only
- name: GIRepositoryGType
message: Internal use only
- name: log
message: Use console.log()
- name: logError
message: Use console.warn() or console.error()
no-restricted-properties:
- error
- object: imports
property: format
message: Use template strings
- object: pkg
property: initFormat
message: Use template strings
- object: Lang
property: copyProperties
message: Use Object.assign()
- object: Lang
property: bind
message: Use arrow notation or Function.prototype.bind()
- object: Lang
property: Class
message: Use ES6 classes
no-restricted-syntax:
- error
- selector: >-
MethodDefinition[key.name="_init"]
CallExpression[arguments.length<=1][callee.object.type="Super"][callee.property.name="_init"]
message: Use constructor() and super()
# GJS Globals
globals:
ARGV: readonly
Debugger: readonly
GIRepositoryGType: readonly
globalThis: readonly
imports: readonly
Intl: readonly
log: readonly
logError: readonly
pkg: readonly
print: readonly
printerr: readonly
window: readonly
TextEncoder: readonly
TextDecoder: readonly
console: readonly
setTimeout: readonly
setInterval: readonly
clearTimeout: readonly
clearInterval: readonly
parserOptions:
ecmaVersion: 2022
sourceType: module
28 changes: 28 additions & 0 deletions .github/workflows/eslint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: ESLint

on:
push:
branches: [ 'main' ]
pull_request:
branches: [ 'main' ]

jobs:
eslint:
name: Run eslint scanning
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
# Required for private repositories by github/codeql-action/upload-sarif
actions: read
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install
run: |
npm install eslint@^8.0.0
- name: Lint
run: npx eslint .
continue-on-error: true
24 changes: 12 additions & 12 deletions lib/md5.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*
*
* Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
Expand All @@ -18,7 +18,6 @@
*/

/*jslint bitwise: true */
/*global unescape, define */

'use strict';

Expand All @@ -27,7 +26,7 @@
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
const lsw = (x & 0xFFFF) + (y & 0xFFFF),
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
Expand Down Expand Up @@ -66,7 +65,7 @@
x[len >> 5] |= 0x80 << (len % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;

var i, olda, oldb, oldc, oldd,
let i, olda, oldb, oldc, oldd,
a = 1732584193,
b = -271733879,
c = -1732584194,
Expand Down Expand Up @@ -158,7 +157,7 @@
* Convert an array of little-endian words to a string
*/
function binl2rstr(input) {
var i,
let i,
output = '';
for (i = 0; i < input.length * 32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
Expand All @@ -171,7 +170,7 @@
* Characters >255 have their high-byte silently ignored.
*/
function rstr2binl(input) {
var i,
let i,
output = [];
output[(input.length >> 2) - 1] = undefined;
for (i = 0; i < output.length; i += 1) {
Expand All @@ -194,12 +193,13 @@
* Calculate the HMAC-MD5, of a key and some data (raw strings)
*/
function rstr_hmac_md5(key, data) {
var i,
let i,
bkey = rstr2binl(key),
ipad = [],
opad = [],
hash;
ipad[15] = opad[15] = undefined;
ipad[15] = undefined;
opad[15] = undefined;
if (bkey.length > 16) {
bkey = binl_md5(bkey, key.length * 8);
}
Expand All @@ -215,10 +215,10 @@
* Convert a raw string to a hex string
*/
function rstr2hex(input) {
var hex_tab = '0123456789abcdef',
output = '',
x,
i;
const hex_tab = '0123456789abcdef';
let x,
i,
output = '';
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i);
output += hex_tab.charAt((x >>> 4) & 0x0F) +
Expand Down
28 changes: 28 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "gnome-shell-extensions-gravatar",
"version": "1.0.0",
"description": "Synchronize user icon with Gravatar",
"main": "index.js",
"directories": {
"lib": "lib"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "."
},
"author": "Daniel Sheeler",
"license": "MIT",
"devDependencies": {
"@eslint/eslintrc": "^3.0.2",
"@eslint/js": "^9.3.0",
"eslint": "^8.57.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.1.1",
"globals": "^15.0.0"
}
}
Loading

0 comments on commit 39acc68

Please sign in to comment.