jenkins-bot has submitted this change and it was merged.
Change subject: Add npm entry point
..
Add npm entry point
Change-Id: I84cb60f4055b6c8737fb19f7b406ad231fc074bd
---
A .jshintignore
A .jshintrc
A Gruntfile.js
M modules/ext.etherEditor.js
M modules/ext.etherManager.js
A package.json
6 files changed, 98 insertions(+), 28 deletions(-)
Approvals:
Hashar: Looks good to me, approved
jenkins-bot: Verified
diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 000..e82e1e5
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1,2 @@
+modules/jquery.etherpad.js
+node_modules
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 000..de0c4e4
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,23 @@
+{
+ // Enforcing
+ "bitwise": true,
+ "eqeqeq": true,
+ "freeze": true,
+ "latedef": "nofunc",
+ "noarg": true,
+ "nonew": true,
+ "undef": false,
+ "unused": false,
+ "strict": false,
+
+ // Relaxing
+ "es5": false,
+
+ // Environment
+ "browser": true,
+ "jquery": true,
+
+ "globals": {
+ "mediaWiki": false
+ }
+}
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 000..58166e8
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,31 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+ grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+
+ grunt.initConfig( {
+ jshint: {
+ options: {
+ jshintrc: true
+ },
+ all: [
+ '**/*.js',
+ '!node_modules/**',
+ '!modules/jquery.etherpad.js'
+ ]
+ },
+ banana: {
+ all: 'i18n/'
+ },
+ jsonlint: {
+ all: [
+ '**/*.json',
+ '!node_modules/**'
+ ]
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'jshint', 'jsonlint', 'banana' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/modules/ext.etherEditor.js b/modules/ext.etherEditor.js
index 22eca60..30f68af 100644
--- a/modules/ext.etherEditor.js
+++ b/modules/ext.etherEditor.js
@@ -8,6 +8,8 @@
*
*/
+/*jshint -W083 */
+
( function( $, mw ) {
/** Utility function for having non-stupid Dates in the GMT timezone.
@@ -28,7 +30,7 @@
* Listen for the init event
*/
var initListener = function ( remEd, event ) {
- if ( event.data == 'ethereditor-init' && event.origin ==
remEd.padUrl && !remEd.iframeready ) {
+ if ( event.data === 'ethereditor-init' && event.origin ===
remEd.padUrl && !remEd.iframeready ) {
remEd.iframeready = true;
remEd.initializeFormattingControls();
if ( remEd.iframetimeout !== null ) {
@@ -79,7 +81,7 @@
if ( _this.uri.query.padId ) {
var thepad = false;
for ( var px in _this.pads ) {
- if ( _this.pads[px].pad_id ==
_this.uri.query.padId ) {
+ if ( _this.pads[px].pad_id ===
_this.uri.query.padId ) {
thepad = _this.pads[px];
break;
}
@@ -95,7 +97,7 @@
} );
}
} );
- };
+ }
remoteEditor.prototype = {
/**
@@ -110,7 +112,7 @@
if ( !port ) {
port = '9001';
}
- if ( port != '80' ) {
+ if ( port !== '80' ) {
hostname = hostname + ':' + port;
}
return hostname;
@@ -145,9 +147,9 @@
*/
userListener: function ( event ) {
var msg = event.data;
- if ( msg && msg.type && msg.type == 'userinfo' ) {
+ if ( msg && msg.type && msg.type === 'userinfo' ) {
for ( var ux in msg.users ) {
- if ( msg.users[ux].name == '' ) {
+ if ( msg.users[ux].name === '' ) {
msg.users[ux].name =
mw.user.name();