Commit Graph

53 Commits

Author SHA1 Message Date
Stein Magnus Jodal
a7d38df853 js: Release Mopidy.js 0.2.0 to npm 2014-01-04 00:13:19 +01:00
Stein Magnus Jodal
aa8406e309 js: Remove unused when-define-shim.js 2014-01-04 00:10:48 +01:00
Stein Magnus Jodal
c7e96cf992 js: Update all dependencies 2014-01-04 00:05:31 +01:00
Stein Magnus Jodal
ac7ff2744d js: Update Node instructions, add changelog 2014-01-03 23:59:39 +01:00
Stein Magnus Jodal
a5bbe248cc Merge remote-tracking branch 'connrs/browserify' into develop
Conflicts:
	js/Gruntfile.js
2014-01-03 23:47:57 +01:00
Paul Connolley
32252cb100 Updated npm version to 0.2.0
After using this in our live mopidy system for the last 2 weeks, I am
quite happy about the stability of the release. I've updated the
package.json file as it makes sense to incorporate this in to my final
commit for issue #609
2014-01-03 11:28:03 +00:00
Stein Magnus Jodal
621aff22c9 http: Move mopidy.{frontends => }.http 2013-12-31 14:04:25 +01:00
Paul Connolley
26b8490672 Updated the test process for mopidy.js
Following on from the previous issue #609 commits, I have updated the
build process to cater to the fact that the files are no longer
available to test in the browser environment.

2 new browserify tasks build the mopidy.js file and then when.js file
(available in node_modules.) These files are placed in test/lib/ (This
directory has been added to the .gitignore file) prior to the running of
the buster tests. As these files are ignored in the .gitignore, this
will prevent them from being committed to git and also prevent them from
being packaged up to npm.

Once the tests have completed, the main browserify task will run to
build the official browser release.
2013-12-17 16:52:35 +00:00
Paul Connolley
a83b71239b Update test so that it correctly requires the mopidy module
As part of issue #609, the require statement in mopidy-test.js should
have been updated as the API to require mopidy has changed from:

    require('mopidy').Mopidy;

to:

    require('mopidy');
2013-12-17 08:57:44 +00:00
Paul Connolley
418e5689dc Preliminary commit for browserify compatibility
This is the first stage of my commits for issue #609 that will make the
npm module browserify friendly and browser friendly.

The grunt-browserify module has been introduced to replace
grunt-contrib-concat. Browserify automatically concatenates files and so
there is no need for a concat step.

The faye-websocket module was problematic so I moved the require out to
a separate module within the lib directory. The websocket module is a
folder containing a package.json, directing library consumers to the
entry point that is appropriate for their environment. Browserify picks
browser.js (which simply returns an object holding window.WebSocket)
while everyone else gets the faye-websocket module.

In addition, as browserify handles all the requires, there's no need to
detect the environment or include any pre-built modules. I've removed
the pre-built when and faye-websocket files in favour of letting
browserify use the modules within node_modules. This should make it
easier to maintain dependencies in future versions of this library.

One side effect of this browserify compatibility is that, in order to
allow the library to be globally available in the browser as `Mopidy`,
I've had to set Mopidy as the exported object instead of as a key of the
exported object. To elaborate further, the current API would be like the
following:

    var Mopidy = require('mopidy').Mopidy;

However, with this change, the API would be like this:

    var Mopidy = require('mopidy');

I'm not sure whether this would be an issue and so I think it's worth
discussing further. It's possible that node developers won't have a
problem but, if they did, a potential workaround within the mopidy.js
file would be:

   Mopidy.Mopidy = Mopidy;

This would allow developers to choose either of the following:

    var Mopidy = require('mopidy');
    var Mopidy = require('mopidy').Mopidy;

Could be a little odd to do this though

When testing the browserify build, I noticed a strange error thrown when
making the initial websocket connection. I managed to track it down to
an IE 'feature' that crops up when you alias in-built functions. In
particular, the when module was aliasing setImmediate to an internal
function (nextTick.) In a newer version of when, the function is
instead aliased to the browserify process.nextTick. This works well
because substack already had that covered.

With when@2.7.0, IE11 appears to be working well. IE10 is still pending
a test.
2013-12-15 01:52:24 +00:00
Stein Magnus Jodal
31d42f743b js: Bump npm package version 2013-09-17 00:42:09 +02:00
Stein Magnus Jodal
655915da9d js: Upgrade devDependencies 2013-09-17 00:41:05 +02:00
Stein Magnus Jodal
1082d41777 js: Upgrade faye-websocket from 0.4.4 to 0.7.0 2013-09-17 00:40:42 +02:00
Stein Magnus Jodal
ba64c7f15a js: Upgrade When.js from 2.0.0 to 2.4.0 2013-09-17 00:39:59 +02:00
Stein Magnus Jodal
94079be1c6 js: Upgrade Bane from 0.4.0 to 1.0.0 2013-09-17 00:39:58 +02:00
Stein Magnus Jodal
95c8077135 docs: nodejs deb now includes npm 2013-08-04 11:24:00 +02:00
Stein Magnus Jodal
dc7289ba83 docs: Fix formatting of code examples in lists 2013-08-04 11:22:36 +02:00
Stein Magnus Jodal
bf7651ae7e js: Update dev dependencies 2013-05-13 19:25:53 +02:00
Stein Magnus Jodal
b22cba63b8 js: Use 'npm start' to run 'grunt watch' 2013-05-13 19:25:34 +02:00
Stein Magnus Jodal
29ac5f0cc7 js: Update link to HTTP API docs 2013-04-12 11:30:36 +02:00
Stein Magnus Jodal
22fbd9eff8 js: Bump minor version 2013-03-31 14:09:32 +02:00
Stein Magnus Jodal
bc78a65fff js: Upgrade when.js from 1.8.1 to 2.0.0 2013-03-31 14:09:32 +02:00
Stein Magnus Jodal
5e374350f5 js: Add more metadata to package.json for npm publishing 2013-03-30 01:34:22 +01:00
Stein Magnus Jodal
74b4fdc7ee js: Make test suite run on Node.js using faye-websocket 2013-03-29 13:51:28 +01:00
Stein Magnus Jodal
5e29647897 js: Remove redundant config not working on Node 0.10 2013-03-28 23:53:29 +01:00
Stein Magnus Jodal
cf2d22c281 js: Upgrade when.js from 1.6.1 to 1.8.1 2013-03-12 23:39:14 +01:00
Stein Magnus Jodal
51b782e926 js: Migrate Grunt from 0.3 to 0.4 2013-03-12 23:28:54 +01:00
Stein Magnus Jodal
a032e45c35 js: Make 'Mopidy()' work without 'new' 2013-01-16 22:55:21 +01:00
Stein Magnus Jodal
e07a6e151a js: Add a package.json to simplify JS dev env setup 2013-01-03 21:37:31 +01:00
Stein Magnus Jodal
4e4df2adf2 js: Make library inclusion order stable 2012-12-04 13:23:57 +01:00
Stein Magnus Jodal
b14c89dbf1 js: Make connect() public, and document autoConnect/connect() 2012-12-04 13:23:43 +01:00
Stein Magnus Jodal
8d3fd46808 js: Add close() method to close WebSocket without reconnecting 2012-12-04 09:18:34 +01:00
Stein Magnus Jodal
43316babcd js: Remove trailing whitespace 2012-12-04 09:05:52 +01:00
Stein Magnus Jodal
b807c38b01 js: Upgrade BANE to 0.4 2012-12-04 09:04:16 +01:00
Stein Magnus Jodal
7f570de239 js: Polyfill console inside our own namespace 2012-12-01 17:18:06 +01:00
Stein Magnus Jodal
b62d4d5374 js: Add console polyfill 2012-12-01 15:06:20 +01:00
Stein Magnus Jodal
3c56f6cbce js: Use and all over 2012-11-30 12:04:47 +01:00
Stein Magnus Jodal
0e799c2795 js: Formatting 2012-11-30 11:23:48 +01:00
Stein Magnus Jodal
cb9b0f6ba1 js: Simplify configure function 2012-11-30 11:22:13 +01:00
Stein Magnus Jodal
08dcfd56b1 js: Extract configuration function 2012-11-30 11:16:42 +01:00
Stein Magnus Jodal
3045ac0158 js: Add description and params list to API functions 2012-11-30 02:41:39 +01:00
Stein Magnus Jodal
fc9ab6053a js: Make backoff delay limits settings 2012-11-30 02:18:08 +01:00
Stein Magnus Jodal
12f60f3a52 js: Add fully working core API in JavaScript 2012-11-30 02:05:40 +01:00
Stein Magnus Jodal
6face51e52 js: Have 'grunt watch' concat and minify as well 2012-11-30 02:04:28 +01:00
Stein Magnus Jodal
71f26260d3 js: Add header to bane 2012-11-29 00:50:05 +01:00
Stein Magnus Jodal
6a19d379ff js: Add PhantomJS installation to readme 2012-11-29 00:45:36 +01:00
Stein Magnus Jodal
0a84763526 js: Add readme 2012-11-29 00:41:06 +01:00
Stein Magnus Jodal
defc44b747 js: Add empty source and test files 2012-11-29 00:21:16 +01:00
Stein Magnus Jodal
a539006d8b js: Add Function.prototype.bind polyfill to make PhantomJS 1.6 happy 2012-11-29 00:20:17 +01:00
Stein Magnus Jodal
ceb71b40a1 js: Add when 1.6.1 for Promise support 2012-11-29 00:19:41 +01:00