Skip to content
Permalink
Browse files
Use ESLint.
  • Loading branch information
RubenVerborgh committed Oct 10, 2016
1 parent 4c69267 commit baa88c6221918fa0558d87dc317e1d3d44b4799d
Showing with 209 additions and 22 deletions.
  1. +180 −0 .eslintrc
  2. +20 −19 ldf-client-ui.js
  3. +2 −2 ldf-client-url-state.js
  4. +7 −1 package.json
180 .eslintrc
@@ -0,0 +1,180 @@
{
env: {
browser: true,
},

globals: {
jQuery: true,
FastScroller: true,
N3: true,
ldf: true,
},

rules: {
// Possible Errors
comma-dangle: [2, "always-multiline"],
no-cond-assign: 0,
no-console: 2,
no-constant-condition: 0,
no-debugger: 2,
no-dupe-args: 2,
no-dupe-keys: 2,
no-duplicate-case: 2,
no-empty: 2,
no-empty-character-class: 2,
no-ex-assign: 0,
no-extra-boolean-cast: 2,
no-extra-parens: 0,
no-extra-semi: 2,
no-func-assign: 2,
no-inner-declarations: 0,
no-invalid-regexp: 2,
no-irregular-whitespace: 2,
no-negated-in-lhs: 2,
no-obj-calls: 2,
no-regex-spaces: 2,
no-sparse-arrays: 2,
no-unreachable: 2,
use-isnan: 2,
valid-jsdoc: 0,
valid-typeof: 2,
no-unexpected-multiline: 2,

// Best Practices
accessor-pairs: 2,
block-scoped-var: 2,
complexity: 0,
consistent-return: 0,
curly: [2, "multi-or-nest"],
default-case: 0,
dot-notation: 2,
dot-location: [2, "property"],
eqeqeq: 2,
guard-for-in: 0,
no-alert: 0,
no-caller: 2,
no-div-regex: 2,
no-else-return: 0,
no-labels: 2,
no-eq-null: 2,
no-eval: 2,
no-extend-native: 2,
no-extra-bind: 2,
no-fallthrough: 2,
no-floating-decimal: 2,
no-implicit-coercion: 0,
no-implied-eval: 2,
no-invalid-this: 2,
no-iterator: 2,
no-lone-blocks: 2,
no-loop-func: 0,
no-multi-spaces: 0,
no-multi-str: 2,
no-native-reassign: 2,
no-new-func: 2,
no-new-wrappers: 2,
no-new: 2,
no-octal-escape: 2,
no-octal: 2,
no-param-reassign: 0,
no-process-env: 2,
no-proto: 2,
no-redeclare: 2,
no-return-assign: 0,
no-script-url: 2,
no-self-compare: 2,
no-sequences: 0, // allow the comma operator
no-throw-literal: 2,
no-unused-expressions: 0,
no-useless-call: 2,
no-void: 2,
no-warning-comments: 0,
no-with: 2,
radix: 2,
vars-on-top: 0,
wrap-iife: [2, "inside"],
yoda: 2,

// Strict Mode
strict: [2, "never"],

// Variables
init-declarations: 0,
no-catch-shadow: 0,
no-delete-var: 2,
no-label-var: 2,
no-shadow-restricted-names: 2,
no-shadow: 0,
no-undef-init: 2,
no-undef: 2,
no-undefined: 0,
no-unused-vars: [ 2, { args: "none" }],
no-use-before-define: [2, "nofunc"],

// Node.js
callback-return: 0,
handle-callback-err: 2,
no-mixed-requires: 0,
no-new-require: 2,
no-path-concat: 2,
no-process-exit: 0,
no-restricted-modules: 2,
no-sync: 0,

// Stylistic Issues
array-bracket-spacing: 2,
block-spacing: 2,
brace-style: [2, "stroustrup", { allowSingleLine: true }],
camelcase: 0,
comma-spacing: 2,
comma-style: 2,
computed-property-spacing: 2,
consistent-this: 0,
eol-last: 2,
func-names: 0,
func-style: [2, "declaration"],
id-length: 0,
id-match: 2,
indent: [2, 2, { VariableDeclarator: 2 }],
key-spacing: 0,
lines-around-comment: 2,
linebreak-style: 2,
max-nested-callbacks: [2, 2],
new-cap: 2,
new-parens: 2,
newline-after-var: 0,
no-array-constructor: 2,
no-continue: 2,
no-inline-comments: 0,
no-lonely-if: 2,
no-mixed-spaces-and-tabs: 2,
no-multiple-empty-lines: 0,
no-nested-ternary: 0,
no-new-object: 2,
no-spaced-func: 2,
no-ternary: 0,
no-trailing-spaces: 2,
no-underscore-dangle: 0,
no-unneeded-ternary: 2,
object-curly-spacing: [2, "always"],
object-curly-newline: 0,
object-property-newline: 0,
one-var: 0,
operator-assignment: 2,
operator-linebreak: [2, "after", { overrides: { ":": "ignore" } }],
padded-blocks: [2, "never"],
quote-props: [2, "consistent-as-needed"],
quotes: [2, "single", "avoid-escape"],
semi-spacing: 2,
semi: 2,
sort-vars: 0,
keyword-spacing: 2,
space-before-blocks: 2,
space-before-function-paren: [2, {"anonymous": "always", "named": "never"}],
space-in-parens: 2,
space-infix-ops: 2,
space-unary-ops: 2,
spaced-comment: [2, "always", { block: { markers: ["!"] } }],
wrap-regex: 0,
},
}
@@ -80,7 +80,7 @@
$queries = this.$queries = $('.query', $element),
$log = $('.log', $element),
$results = $('.results', $element),
$resultsText = $('<div>', { class: 'text' }),
$resultsText = $('<div>', { class: 'text' }),
$datasources = this.$datasources = $('.datasources', $element),
$datetime = this.$datetime = $('.datetime', $element),
$details = this.$details = $('.details', $element),
@@ -97,11 +97,16 @@
skip_no_results: true, search_contains: true, display_selected_options: false,
placeholder_text: ' ', create_option_text: 'Add datasource',
});
$datasources.change(function () { self._setOption('selectedDatasources', $datasources.val()); });
$datasources.change(function () {
self._setOption('selectedDatasources', $datasources.val());
});

// When a query is selected, load it into the editor
$query.edited = $query.val() !== '';
$query.change(function () { options.query = $query.val(); $query.edited = true; });
$query.change(function () {
options.query = $query.val();
$query.edited = true;
});
$queries.chosen({ skip_no_results: true, placeholder_text: ' ' });
$queries.change(function (query) {
if (query = $queries.val())
@@ -144,7 +149,7 @@
// Set the datasources available for querying
case 'datasources':
// Create options for each datasource
$datasources.empty().append((value || []).map(function (datasource, index) {
$datasources.empty().append((value || []).map(function (datasource, index) {
return $('<option>', { text: datasource.name, value: datasource.url });
}));
// Restore selected datasources
@@ -165,7 +170,8 @@
});
// Add and select chosen datasources that were not in the list yet
$datasources.append($.map(selected, function (exists, url) {
return exists ? null : $('<option>', { text: url, value: url, selected: true });
return exists ? null :
$('<option>', { text: url, value: url, selected: true });
})).trigger('chosen:updated');
// Update the query set
this._loadQueries(value);
@@ -186,8 +192,10 @@
// Set the list of selectable queries
case 'relevantQueries':
value = value || [];
// Load the first selectable query if the current query was not edited and not in the list
if (!this.$query.edited && !value.some(function (v) { return v.sparql === options.query; }))
// If the current query was not edited and not in the list,
// load the first selectable query
if (!this.$query.edited &&
!value.some(function (v) { return v.sparql === options.query; }))
value[0] && this._setOption('query', value[0].sparql);
// Update the selectable query list
$queries.empty().append($('<option>'), value.map(function (query) {
@@ -208,11 +216,11 @@
// Load queries relevant for the given datasources
_loadQueries: function (datasources) {
datasources = toHash(datasources);
var queries = (this.options.queries || []).filter(function (query, index) {
var queries = (this.options.queries || []).filter(function (query, index) {
query.id = index;
// Include the query if it indicates no datasources,
// or if it is relevant for at least one datasource
return !query.datasources || !query.datasources.length ||
return !query.datasources || !query.datasources.length ||
query.datasources.some(function (d) { return d in datasources; });
});

@@ -429,23 +437,16 @@
function parseDate(date) {
if (date) {
try { return new Date(Date.parse(date)); }
catch (e) { }
catch (e) { /* ignore invalid dates */ }
}
}

// Transforms a result row into an HTML element
function renderResult(row, container) {
container = container || $('<div>', { 'class': 'result' }).append($('<dl>'))[0];
container = container || $('<div>', { class: 'result' }).append($('<dl>'))[0];
$(container.firstChild).empty().append($.map(row, function (value, variable) {
return [$('<dt>', { text: variable }), $('<dd>', { html: escape(value) })];
}));
return container;
};

// Transforms a log line into an HTML element
function renderLogLine(text, element) {
element = element || $('<p>')[0];
element.innerHTML = escape(text);
return element;
};
}
})(jQuery);
@@ -30,7 +30,7 @@ jQuery(function ($) {
function saveStateToUrl() {
var queryString = [],
options = $queryui.queryui('option'),
datasources = options.selectedDatasources || [],
datasources = options.selectedDatasources || [],
defaultDatasource = (options.datasources[0] || {}).url,
hasDefaultQuery = options.query === (options.queries[0] || {}).sparql,
hasDefaultDatasource = datasources.length === 0 ||
@@ -39,7 +39,7 @@ jQuery(function ($) {
if (!hasDefaultDatasource)
queryString.push('datasources=' + datasources.map(encodeURIComponent).join(';'));
if (!hasDefaultQuery)
queryString.push('query=' + encodeURIComponent(options.query || ''));
queryString.push('query=' + encodeURIComponent(options.query || ''));
if (options.datetime)
queryString.push('datetime=' + encodeURIComponent(options.datetime));

@@ -1,5 +1,6 @@
{
"scripts": {
"lint": "eslint *.js",
"postinstall": "browserify node_modules/ldf-client/browser.js -u stream -o deps/ldf-client-browser.js\n./queries-to-json",
"production": "./queries-to-json\n./build-minified"
},
@@ -8,7 +9,12 @@
"browserify": "~13.0.0"
},
"devDependencies": {
"eslint": "^3.7.1",
"pre-commit": "^1.1.3",
"uglify-js": ">=2.4.12",
"uglifycss": "0.0.8"
}
},
"pre-commit": [
"lint"
]
}

0 comments on commit baa88c6

Please sign in to comment.