eslint-plugin-green
Version:
ESLint plugin for evaluating and promoting green coding practices
74 lines (73 loc) • 2.9 kB
JavaScript
;
// Performance rules
const noInefficientLoops = require("./rules/performance/noInefficientLoops");
const preferArrayMethods = require("./rules/performance/preferArrayMethods");
// DOM rules
const optimizeDomOperations = require("./rules/dom/optimizeDomOperations");
// Memory rules
const avoidMemoryLeaks = require("./rules/memory/avoidMemoryLeaks");
// CSS rules
const optimizeCssSelectors = require("./rules/css/optimizeCssSelectors");
// Network rules
const optimizeNetworkRequests = require("./rules/network/optimizeNetworkRequests");
// Media rules
const optimizeImageLoading = require("./rules/media/optimizeImageLoading");
// Performance rules
const optimizeAnimations = require("./rules/performance/optimizeAnimations");
const optimizeDataStructures = require("./rules/performance/optimizeDataStructures");
// Green score reporter
const green_score_1 = require("./reporters/green-score");
const plugin = {
rules: {
// Performance
'no-inefficient-loops': noInefficientLoops,
'prefer-array-methods': preferArrayMethods,
// DOM
'optimize-dom-operations': optimizeDomOperations,
// Memory
'avoid-memory-leaks': avoidMemoryLeaks,
// CSS
'optimize-css-selectors': optimizeCssSelectors,
// Network
'optimize-network-requests': optimizeNetworkRequests,
// Media
'optimize-image-loading': optimizeImageLoading,
// Performance
'optimize-animations': optimizeAnimations,
'optimize-data-structures': optimizeDataStructures
},
configs: {
recommended: {
plugins: ['green'],
rules: {
'green/no-inefficient-loops': 'warn',
'green/prefer-array-methods': 'warn',
'green/optimize-dom-operations': 'warn',
'green/avoid-memory-leaks': 'warn',
'green/optimize-css-selectors': 'warn',
'green/optimize-network-requests': 'warn',
'green/optimize-image-loading': 'warn',
'green/optimize-animations': 'warn',
'green/optimize-data-structures': 'warn'
}
},
strict: {
plugins: ['green'],
rules: {
'green/no-inefficient-loops': 'error',
'green/prefer-array-methods': 'error',
'green/optimize-dom-operations': 'error',
'green/avoid-memory-leaks': 'error',
'green/optimize-css-selectors': 'error',
'green/optimize-network-requests': 'error',
'green/optimize-image-loading': 'error',
'green/optimize-animations': 'error',
'green/optimize-data-structures': 'error'
}
}
},
reporters: {
'green-score': green_score_1.greenScoreReporter
}
};
module.exports = plugin;