style: eslint configuration
This commit is contained in:
parent
da1b2caaaf
commit
7d044df29d
115
.eslint
115
.eslint
@ -1,115 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "airbnb-base",
|
|
||||||
"parserOptions": {
|
|
||||||
"sourceType": "script"
|
|
||||||
},
|
|
||||||
|
|
||||||
"rules": {
|
|
||||||
// === Configure rules for our style ===
|
|
||||||
// imports must be resolvable
|
|
||||||
"import/no-unresolved": "error",
|
|
||||||
// use single quotes,
|
|
||||||
// unless a different style allows avoiding escapes
|
|
||||||
"quotes": ["error", "single", {
|
|
||||||
"avoidEscape": true,
|
|
||||||
"allowTemplateLiterals": true
|
|
||||||
}],
|
|
||||||
// allow else-if return
|
|
||||||
"no-else-return": [ "error", { "allowElseIf": true } ],
|
|
||||||
// expressions split over multiple lines
|
|
||||||
// should break after the operator
|
|
||||||
"operator-linebreak": [ "error", "after" ],
|
|
||||||
// require arrow parens only when needed
|
|
||||||
// and whenever the body is a block
|
|
||||||
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
|
|
||||||
// what variables are errors in callbacks
|
|
||||||
"handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ],
|
|
||||||
// allow dangling commas in functions
|
|
||||||
// require them everywhere else
|
|
||||||
"comma-dangle": ["error", {
|
|
||||||
"arrays": "always-multiline",
|
|
||||||
"objects": "always-multiline",
|
|
||||||
"imports": "always-multiline",
|
|
||||||
"exports": "always-multiline",
|
|
||||||
"functions": "only-multiline"
|
|
||||||
}],
|
|
||||||
// we actually encourage `return await`
|
|
||||||
"no-return-await": "off",
|
|
||||||
// allow `while (true)`
|
|
||||||
"no-constant-condition": ["error", { "checkLoops": false }],
|
|
||||||
// allow ignoring an error with `catch`
|
|
||||||
"no-empty": ["error", { "allowEmptyCatch": true }],
|
|
||||||
// allow `3 + 5 - 1`, but not `3 * 5 - 1`
|
|
||||||
"no-mixed-operators": ["error", { "allowSamePrecedence": true }],
|
|
||||||
// require `'use strict';`
|
|
||||||
"strict": ["error", "global"],
|
|
||||||
// we actually use tabs for indentation
|
|
||||||
"indent": ["error", "tab", { "SwitchCase": 1 }],
|
|
||||||
"no-tabs": "off",
|
|
||||||
// we want `== null` to also handle undefined
|
|
||||||
"no-eq-null": "off",
|
|
||||||
// allow `for (..; i++)`
|
|
||||||
"no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
|
|
||||||
// allow using functions defined later
|
|
||||||
"no-use-before-define": ["error", "nofunc"],
|
|
||||||
// require consistent newlines before and after braces
|
|
||||||
// if contents are multiline
|
|
||||||
"object-curly-newline": ["error", { "consistent": true, "multiline": true }],
|
|
||||||
// require consistent linebreaks inline function parenthesis (arguments or params)
|
|
||||||
"function-paren-newline": ["error", "consistent"],
|
|
||||||
// only require const if all parts of destructuring can be const
|
|
||||||
"prefer-const": ["error", { "destructuring": "all" }],
|
|
||||||
// don't require destructuring for arrays or assignment
|
|
||||||
"prefer-destructuring": ["error", {
|
|
||||||
"VariableDeclarator": { "array": false, "object": true },
|
|
||||||
"AssignmentExpression": { "array": false, "object": false }
|
|
||||||
}],
|
|
||||||
// identical to airbnb rule, except for allowing for..of, because we want to use it
|
|
||||||
"no-restricted-syntax": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"selector": "ForInStatement",
|
|
||||||
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "LabeledStatement",
|
|
||||||
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "WithStatement",
|
|
||||||
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// allow lines of up to 120 characters
|
|
||||||
"max-len": ["error", { "code": 120, "tabWidth": 2, "ignoreUrls": true, "ignoreStrings": true, "ignoreTemplateLiterals": true, "ignoreRegExpLiterals": true }],
|
|
||||||
|
|
||||||
// === Disable rules ===
|
|
||||||
// more liberal naming
|
|
||||||
"camelcase": "off",
|
|
||||||
"no-underscore-dangle": "off",
|
|
||||||
// don't require anonymous function names
|
|
||||||
"func-names": "off",
|
|
||||||
// allow console
|
|
||||||
"no-console": "off",
|
|
||||||
// allow new for side effects
|
|
||||||
// allow new with non-capitalized
|
|
||||||
"no-new": "off",
|
|
||||||
"new-cap": "off",
|
|
||||||
// allow shadowing variables (usually callbacks)
|
|
||||||
"no-shadow": "off",
|
|
||||||
// allow multiple empty lines in a row
|
|
||||||
"no-multiple-empty-lines": "off",
|
|
||||||
// allow not using object shorthand
|
|
||||||
"object-shorthand": "off",
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
"consistent-return": "off",
|
|
||||||
"no-restricted-globals": "off",
|
|
||||||
"no-prototype-builtins": "off",
|
|
||||||
"import/no-extraneous-dependencies": "off",
|
|
||||||
"import/no-dynamic-require": "off",
|
|
||||||
"global-require": "off",
|
|
||||||
"no-param-reassign": "off",
|
|
||||||
"default-case": "off"
|
|
||||||
}
|
|
||||||
}
|
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
node_modules
|
32
lib/theme.js
32
lib/theme.js
@ -1,30 +1,30 @@
|
|||||||
|
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
var Theme = module.exports;
|
const Theme = module.exports;
|
||||||
|
|
||||||
Theme.defineWidgetAreas = async function(areas) {
|
Theme.defineWidgetAreas = async function (areas) {
|
||||||
areas = areas.concat([
|
areas = areas.concat([
|
||||||
{
|
{
|
||||||
'name': 'MOTD',
|
name: 'MOTD',
|
||||||
'template': 'home.tpl',
|
template: 'home.tpl',
|
||||||
'location': 'motd'
|
location: 'motd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'Homepage Footer',
|
name: 'Homepage Footer',
|
||||||
'template': 'home.tpl',
|
template: 'home.tpl',
|
||||||
'location': 'footer'
|
location: 'footer',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'Category Sidebar',
|
name: 'Category Sidebar',
|
||||||
'template': 'category.tpl',
|
template: 'category.tpl',
|
||||||
'location': 'sidebar'
|
location: 'sidebar',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'Topic Footer',
|
name: 'Topic Footer',
|
||||||
'template': 'topic.tpl',
|
template: 'topic.tpl',
|
||||||
'location': 'footer'
|
location: 'footer',
|
||||||
}
|
},
|
||||||
]);
|
]);
|
||||||
return areas;
|
return areas;
|
||||||
};
|
};
|
||||||
|
61
package.json
61
package.json
@ -1,32 +1,33 @@
|
|||||||
{
|
{
|
||||||
"name": "nodebb-theme-quickstart",
|
"name": "nodebb-theme-quickstart",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "Enter a description here",
|
"description": "Enter a description here",
|
||||||
"main": "theme.less",
|
"main": "theme.less",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"pre-commit": "npx lint-staged",
|
"pre-commit": "npx lint-staged",
|
||||||
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
|
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.js": [
|
"*.js": [
|
||||||
"eslint --fix",
|
"eslint --fix",
|
||||||
"git add"
|
"git add"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bent": "^7.3.12"
|
"bent": "^7.3.12"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "11.0.0",
|
"@commitlint/cli": "11.0.0",
|
||||||
"@commitlint/config-angular": "11.0.0",
|
"@commitlint/config-angular": "11.0.0",
|
||||||
"eslint": "7.18.0",
|
"eslint": "8.x",
|
||||||
"eslint-config-airbnb-base": "14.2.1",
|
"eslint-config-airbnb-base": "14.2.1",
|
||||||
"eslint-plugin-import": "2.22.1",
|
"eslint-config-nodebb": "0.1.1",
|
||||||
"husky": "5.0.9",
|
"eslint-plugin-import": "2.x",
|
||||||
"lint-staged": "10.5.4"
|
"husky": "5.0.9",
|
||||||
}
|
"lint-staged": "10.5.4"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
3
public/.eslintrc
Normal file
3
public/.eslintrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "nodebb/public"
|
||||||
|
}
|
@ -1,3 +1,5 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Hey there!
|
Hey there!
|
||||||
|
|
||||||
@ -12,6 +14,6 @@
|
|||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function () {
|
||||||
// Your code goes here
|
// Your code goes here
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user