jenkins-bot has submitted this change and it was merged.
Change subject: Add jscs and npm config
......................................................................
Add jscs and npm config
This allows running jscs via `npm test` for jenkins.
Change-Id: Ib83f2b896c647fa216f63aa3827e9ce31ca3f9f8
---
M .gitignore
A .jscsrc
M .jshintignore
M client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
M client/resources/wikibase.client.PageConnector.js
M lib/resources/jquery.wikibase/jquery.wikibase.entityselector.js
M lib/resources/jquery.wikibase/jquery.wikibase.listview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
M lib/resources/jquery.wikibase/snakview/snakview.js
M lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
M
lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
M lib/resources/utilities/wikibase.utilities.GuidGenerator.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
A package.json
M repo/resources/jquery.ui/jquery.ui.closeable.js
M repo/resources/jquery/jquery.removeClassByRegex.js
M repo/resources/store/store.ApiEntityStore.js
M repo/resources/wikibase.special/wikibase.special.itemByTitle.js
18 files changed, 132 insertions(+), 23 deletions(-)
Approvals:
Henning Snater: Looks good to me, approved
jenkins-bot: Verified
diff --git a/.gitignore b/.gitignore
index 9c31647..275b338 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
vendor/
extensions/
+node_modules/
easyrdf/
@@ -15,4 +16,4 @@
selenium/configuration.yml
tests/browser/.idea
tests/browser/.bundle/*
-tests/browser/config/config.yml
\ No newline at end of file
+tests/browser/config/config.yml
diff --git a/.jscsrc b/.jscsrc
new file mode 100644
index 0000000..06dac8b
--- /dev/null
+++ b/.jscsrc
@@ -0,0 +1,97 @@
+{
+ // ----
+ // This is a copy of the wikimedia preset so we can disable some of the
rules
+
+ "requireCurlyBraces": [
+ "if",
+ "else",
+ "for",
+ "while",
+ "do",
+ "try",
+ "catch"
+ ],
+ "requireSpaceBeforeKeywords": true,
+ "requireSpaceBeforeBlockStatements": true,
+ "requireParenthesesAroundIIFE": true,
+ "requireSpacesInConditionalExpression": true,
+ "disallowSpacesInNamedFunctionExpression": {
+ "beforeOpeningRoundBrace": true
+ },
+ "disallowSpacesInFunctionDeclaration": {
+ "beforeOpeningRoundBrace": true
+ },
+ "disallowSpacesInCallExpression": true,
+ "requireBlocksOnNewline": 1,
+ "disallowEmptyBlocks": true,
+ "requireSpacesInsideObjectBrackets": "all",
+ "requireSpacesInsideParentheses": "all",
+ "disallowSpaceAfterObjectKeys": true,
+ "requireSpaceBeforeObjectValues": true,
+ "requireCommaBeforeLineBreak": true,
+ "disallowSpaceAfterPrefixUnaryOperators": true,
+ "disallowSpaceBeforePostfixUnaryOperators": true,
+ "disallowSpaceBeforeBinaryOperators": [
+ ","
+ ],
+ "requireSpaceBeforeBinaryOperators": true,
+ "requireSpaceAfterBinaryOperators": true,
+ "disallowImplicitTypeConversion": [
+ "binary",
+ "string"
+ ],
+ "requireCamelCaseOrUpperCaseIdentifiers": true,
+ "disallowKeywords": [
+ "with"
+ ],
+ "disallowMixedSpacesAndTabs": true,
+ "disallowMultipleLineBreaks": true,
+ "disallowOperatorBeforeLineBreak": [
+ "."
+ ],
+ "disallowTrailingWhitespace": true,
+ "disallowTrailingComma": true,
+ "disallowKeywordsOnNewLine": [
+ "else",
+ "catch"
+ ],
+ "requireLineBreakAfterVariableAssignment": true,
+ "requireLineFeedAtFileEnd": true,
+ "requireCapitalizedConstructors": true,
+ "requireDotNotation": true,
+ "disallowYodaConditions": true,
+ "requireSpaceAfterLineComment": true,
+ "disallowNewlineBeforeBlockStatements": true,
+ "validateQuoteMarks": "'",
+
+ // ----
+ // Rules from wikimedia preset we don't follow
+
+ // "validateIndentation": "\t",
+ // "requireSpaceAfterKeywords": true,
+ // "requireMultipleVarDecl": "onevar",
+ // "disallowDanglingUnderscores": true,
+ // "requireSpacesInsideArrayBrackets": "all",
+
+ // ----
+ // Rules from wikimedia preset that should be enabled after fixing
their violation
+
+ // "disallowQuotedKeysInObjects": "allButReserved",
+ // "validateLineBreaks": "LF",
+
+ // ----
+ // Own rules
+
+ "disallowSpaceAfterKeywords": [
+ "catch",
+ "for",
+// "if",
+ "switch",
+ "while"
+ ],
+ "requireSpaceAfterKeywords": [
+ "else"
+ ],
+
+ "excludeFiles": [ "node_modules/**", "vendor/**" ]
+}
diff --git a/.jshintignore b/.jshintignore
index e69de29..a860310 100644
--- a/.jshintignore
+++ b/.jshintignore
@@ -0,0 +1 @@
+node_modules/**
diff --git a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
index 6482a37..0915fab 100644
--- a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
+++ b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
@@ -161,7 +161,7 @@
title: mw.message( 'wikibase-linkitem-title'
).escaped(),
width: 500,
resizable: false,
- position: { my: "top", at: "top+50", of: window
},
+ position: { my: 'top', at: 'top+50', of: window
},
buttons: [ {
text: mw.msg(
'wikibase-linkitem-linkpage' ),
id: 'wbclient-linkItem-goButton',
@@ -410,7 +410,7 @@
// Count site links and abort in case the entity
already is linked with a page on this
// wiki:
- for ( i in entity.sitelinks ) {
+ for( i in entity.sitelinks ) {
if ( entity.sitelinks[ i ].site ) {
siteLinkCount += 1;
if ( entity.sitelinks[ i ].site ===
this.options.globalSiteId ) {
@@ -483,7 +483,7 @@
*
* @return {jQuery}
*/
- _createSiteLinkTable: function( entity ) {
+ _createSiteLinkTable: function( entity ) {
var i, $siteLinks;
$siteLinks = $( '<div>' )
@@ -500,7 +500,7 @@
.appendTo( $siteLinks.find( 'table' ) );
// Table body
- for ( i in entity.sitelinks ) {
+ for( i in entity.sitelinks ) {
if ( entity.sitelinks[ i ].site ) {
// Show a row for each page that is linked with
the current entity
$siteLinks
diff --git a/client/resources/wikibase.client.PageConnector.js
b/client/resources/wikibase.client.PageConnector.js
index 3acc2ce..00c519e 100644
--- a/client/resources/wikibase.client.PageConnector.js
+++ b/client/resources/wikibase.client.PageConnector.js
@@ -117,7 +117,7 @@
* @return {object|undefined} Entity as returned by the API
*/
_extractEntity: function( apiResult ) {
- for ( var i in apiResult.entities ) {
+ for( var i in apiResult.entities ) {
if ( apiResult.entities[ i ].sitelinks ) {
return apiResult.entities[ i ];
}
@@ -135,7 +135,7 @@
var siteLinkCount = 0,
i;
- for ( i in entity.sitelinks ) {
+ for( i in entity.sitelinks ) {
if ( entity.sitelinks[ i ].site ) {
siteLinkCount += 1;
}
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entityselector.js
b/lib/resources/jquery.wikibase/jquery.wikibase.entityselector.js
index fb09eb7..b5944a7 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entityselector.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entityselector.js
@@ -461,7 +461,6 @@
}
} );
-
/**
* Default `entityselector` suggestion menu item.
* @class jQuery.wikibase.entityselector.Item
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.listview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.listview.js
index f7ee5f9..8d9cc54 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.listview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.listview.js
@@ -99,8 +99,8 @@
if( typeof this._lia !== 'object'
|| !( this._lia instanceof
$.wikibase.listview.ListItemAdapter )
) {
- throw new Error( "Option 'listItemAdapter' has to be an
instance of $.wikibase." +
- "listview.ListItemAdapter" );
+ throw new Error( 'Option "listItemAdapter" has to be an
instance of '
+ + 'jQuery.wikibase.listview.ListItemAdapter' );
}
this._reusedItems = $.makeArray( this.element.children(
this.options.listItemNodeName ) );
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
index ca2b09a..4f49908 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
@@ -114,7 +114,7 @@
this.$h
.attr( 'id', 'sitelinks-' + this.options.value.group )
-// .text( mw.msg( 'wikibase-sitelinks-' + this.options.value.group
) )
+ // .text( mw.msg( 'wikibase-sitelinks-' +
this.options.value.group ) )
.text( this.__headingText )
.append( this.$counter );
diff --git a/lib/resources/jquery.wikibase/snakview/snakview.js
b/lib/resources/jquery.wikibase/snakview/snakview.js
index 937102e..a995bd7 100644
--- a/lib/resources/jquery.wikibase/snakview/snakview.js
+++ b/lib/resources/jquery.wikibase/snakview/snakview.js
@@ -639,7 +639,7 @@
if( snak === undefined ) {
// factory method will fail when essential data is not
yet defined!
// TODO: variations should have a function to ask
whether fully defined yet
- try{
+ try {
// NOTE: can still be null if user didn't enter
essential information in variation's UI
var value = this.value();
if( value.datavalue ) {
diff --git
a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
index 7a08711..e88f116 100644
--- a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
+++ b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js
@@ -66,8 +66,7 @@
// actual value set as the Snak's value.
// Also if draw has not been called yet, this
will hold the current value.
dataValue = this._newDataValue;
- }
- else if( this._valueView ) {
+ } else if( this._valueView ) {
dataValue = this._valueView.value();
}
@@ -282,7 +281,7 @@
{ height: newHeight },
{
queue:
heightAnimationQueue,
- duration: 'fast',
//defaults to 200
+ duration: 'fast', //
defaults to 200
progress: function(
animation, progress, remainingMs ) {
$.ui.inputextender.redrawVisibleExtensions();
}
diff --git
a/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
b/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
index 9661b53..94a5a7a 100644
---
a/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
+++
b/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
@@ -71,5 +71,4 @@
}
} );
-
}( jQuery ) );
diff --git a/lib/resources/utilities/wikibase.utilities.GuidGenerator.js
b/lib/resources/utilities/wikibase.utilities.GuidGenerator.js
index 7d0763e..e04c660 100644
--- a/lib/resources/utilities/wikibase.utilities.GuidGenerator.js
+++ b/lib/resources/utilities/wikibase.utilities.GuidGenerator.js
@@ -69,7 +69,7 @@
hex = self._getRandomHex( 0, 65535 );
}
- while ( hex.length < 4 ) {
+ while( hex.length < 4 ) {
hex = '0' + hex;
}
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
index d9f9126..9520fad 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.sitelinkview.tests.js
@@ -348,5 +348,4 @@
sitelinkview.setError();
} );
-
}( jQuery, wikibase, QUnit ) );
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b50cd78
--- /dev/null
+++ b/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "Wikibase",
+ "version": "0.0.0",
+ "scripts": {
+ "test": "jscs ."
+ },
+ "repository": {
+ "type": "git",
+ "url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase"
+ },
+ "author": "The Wikidata team",
+ "license": "GPL-2.0+",
+ "devDependencies": {
+ "jscs": ""
+ }
+}
diff --git a/repo/resources/jquery.ui/jquery.ui.closeable.js
b/repo/resources/jquery.ui/jquery.ui.closeable.js
index 3ec74bf..2e2bca3 100644
--- a/repo/resources/jquery.ui/jquery.ui.closeable.js
+++ b/repo/resources/jquery.ui/jquery.ui.closeable.js
@@ -90,5 +90,4 @@
}
} );
-
}( jQuery ) );
diff --git a/repo/resources/jquery/jquery.removeClassByRegex.js
b/repo/resources/jquery/jquery.removeClassByRegex.js
index 3411401..8c65859 100644
--- a/repo/resources/jquery/jquery.removeClassByRegex.js
+++ b/repo/resources/jquery/jquery.removeClassByRegex.js
@@ -14,7 +14,7 @@
$.fn.removeClassByRegex = function( classNameRegex ) {
this.each( function() {
var subject = $( this );
- if( ! subject.attr( 'class' ) ) {
+ if( !subject.attr( 'class' ) ) {
return;
}
@@ -22,7 +22,7 @@
$.each( subject.attr( 'class' ).split( /\s+/ ),
function( i, className ) {
// check for each class whether it matches...
- if( ! className.match( classNameRegex ) ) {
+ if( !className.match( classNameRegex ) ) {
// ...if not, we re-add it
newClasses += ' ' + className;
}
diff --git a/repo/resources/store/store.ApiEntityStore.js
b/repo/resources/store/store.ApiEntityStore.js
index ee75fe3..39cad3e 100644
--- a/repo/resources/store/store.ApiEntityStore.js
+++ b/repo/resources/store/store.ApiEntityStore.js
@@ -100,4 +100,3 @@
}
} );
}( wikibase, jQuery ) );
-
diff --git a/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
b/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
index 8b2c86d..e06f420 100644
--- a/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
+++ b/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
@@ -16,7 +16,7 @@
// this will build a drop-down for the language selection:
var siteList = [];
- for ( var siteId in wb.sites.getSites() ) {
+ for( var siteId in wb.sites.getSites() ) {
var site = wb.sites.getSite( siteId );
siteList.push( {
'label': site.getName() + ' (' + site.getId() +
')',
--
To view, visit https://gerrit.wikimedia.org/r/184591
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib83f2b896c647fa216f63aa3827e9ce31ca3f9f8
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Henning Snater <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits