Coder Social home page Coder Social logo

meteor / meteor Goto Github PK

View Code? Open in Web Editor NEW
44.0K 1.6K 5.2K 122.45 MB

Meteor, the JavaScript App Platform

Home Page: https://meteor.com

License: Other

HTML 0.46% JavaScript 92.29% CSS 0.20% Shell 0.97% CoffeeScript 0.37% PowerShell 0.60% Batchfile 0.07% Ruby 0.07% Java 0.87% TypeScript 2.92% Vue 0.04% Less 0.02% Stylus 0.01% Svelte 0.01% Swift 0.87% Objective-C 0.23%
javascript meteor mongodb build-system npm framework zero-configuration reactive-programming nodejs realtime

meteor's Introduction


Travis CI Status CircleCI Status built with Meteor built with Meteor


Meteor is an ultra-simple environment for building modern web applications.



πŸ“š Create your applications using modern JavaScript

Benefit from the latest technology updates to rapidly prototype and develop your applications.


✨ Integrate technologies you already use

Use popular frameworks and tools right out-of-the-box. Focus on building features instead of configuring disparate components yourself.


πŸ’» Build apps for any device

Use the same code whether you’re developing for web, iOS, Android, or desktop for a seamless update experience for your users.


πŸ”₯ Getting Started

How about trying a tutorial to get started with your favorite technology?

React
Blaze
Vue
Svelte

Next, read the documentation and get some examples.

πŸš€ Quick Start

On your platform, use this line:

> npm install -g meteor

πŸš€ To create a project:

> meteor create my-app

β˜„οΈ Run it:

cd my-app
meteor

🧱 Developer Resources

Building an application with Meteor?

Interested in helping or contributing to Meteor? These resources will help:

To uninstall Meteor:

  • If installed via npm, run:
    meteor-installer uninstall
  • If installed via curl, run:
    rm -rf ~/.meteor 
    sudo rm /usr/local/bin/meteor

To find more information about installation, read here.

meteor's People

Contributors

abernix avatar arbesfeld avatar avital avatar awwx avatar benjamn avatar debergalis avatar denihs avatar dferber90 avatar dgreensp avatar filipenevola avatar fredmaiaarantes avatar glasser avatar greenkeeper[bot] avatar greenkeeperio-bot avatar grubba27 avatar gschmidt avatar harryadel avatar hwillson avatar justinsb avatar lorensr avatar martijnwalraven avatar mitar avatar n1mmy avatar renanccastro avatar renovate-bot avatar sebakerckhof avatar slava avatar storytellercz avatar tmeasday avatar zodern avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meteor's Issues

Upgrade to 0.3.4 breaks event handling code

I upgraded to 0.3.4 today and my event handling code (specified through maps in template) is not working for some of the selectors. Basic click handlers are working, but the moment I specify any selectors, it doesn't work properly. I did not find any specific documentation for migration to 0.3.4 specific to this part. I downgraded to 0.3.3 and my app was restored.

Has anyone else also faced similar issue ? or I am missing something basic.

homebrew

I would prefer to install meteor via homebrew.

Docs - collections.remove example refers to undocumented method

This may be just my misunderstanding, but the example given in the collections.remove topic references the following method

  • Meteor.renderList

which I can't find any references to in the API docs. If this is a custom method, consider removing it from the example.

Caching issues when in development mode

There are some situations (it seems to happen when you change something inside a single line), that caching leads to weird behavior. Even deleting the browser cache is no cure sometimes.

e.g. when changing

Template.room.roomName = function() {
    var room = Rooms.findOne({ _id: Session.get("room_id") });
    console.log(room);
}

to

Template.room.roomName = function() {
    var room = Rooms.findOne({ _id: Session.get("room_id") });
    console.log(room.name); 
}

resulted in the first (i.e. old) version of the code being sent to the client. A restart of meteor fixed this finally.

Is anyone else experiencing this issue?

MiniMongo query fails if selector is not top-level

It looks like there may be a bug in the /packages/minimongo/selector.js when it is trying to parse a selector of a non-top level property.

For example, I have a MongoDB document structured as;

{
    // Collection Name: Stories
    _id: String
    author: {
        _id: String
    }
}

When I try to run this query, there are no errors (would return an empty object though):

Stories.find({ _id: Session.get('storyID'), 'author': Session.get('user')._id });

When I try to run the correct query:

Stories.find({ _id: Session.get('storyID'), 'author._id': Session.get('user')._id });

I get the following error: "Uncaught SyntaxError: Unexpected token ;" on the following line (278) of /packages/minimongo/selector.js

  eval("_func = (function(f,literals){return function(doc){return " +
       LocalCollection._exprForSelector(selector, literals) +
       ";};})");

Deploy meteor apps to heroku with one command

Currently to get a bundled app to just work on heroku, there are a couple of steps involved, explained thoroughly here:

  • add a Procfile
  • add a package.json
  • rm -r server/node_modules/fibers
  • npm install fibers

Would you take a patch to have this just work? It could be in the form of a new subcommand i.e. meteor heroku or an option to bundle i.e. meteor bundle --heroku.

If neither of these options seem appealing, how about allowing meteor users to create their own subcommands? Currently all commands are stored in a monolithic app/meteor/meteor.js. How about making subcommands simply be executables like git and rip do it? The format would be meteor-COMMAND i.e. meteor-bundle. The meteor executable would simply delegate to a subcommand regardless of whether it comes with meteor or from a third-party.

GPL

The GPL will probably be a deal breaker for many people. Especially with backend and frontend code living so close together. I personally would appreciate a MIT/Apache style license and shy away from meteor as it is licensed right now.

Allow for configuration of MongoDB

Or at least provide a way to disable MongoDB journaling when running the included examples.

With the current MongoDB settings, three prealloc files each about 1GB are created in ~/src/meteor/leaderboard/.meteor/local/db/journal. These files are not deleted when the example is terminated. I think 9 GB of diskspace for just 3 examples is way too much, although I understand these are the effect of the MongoDB defaults.

I could not find any mongodb.conf file related to Meteor. Perhaps I am missing some configuration options Meteor already provides when executing meteor run? As a temporary solution I modified app/lib/mongo_runner.js to include the mongodb --nojournal parameter in the launch_mongo function.

Deployment error

Hi, I have just updated to Meteor version 0.3.5

When I went to deploy my app:

Jamies-iMac:human jhw$ meteor deploy human.meteor.com
Deploying to human.meteor.com. Bundling ... uploading ...
Error deploying application: undefined

When I went to delete / deploy I got:

Jamies-iMac:human jhw$ meteor deploy human.meteor.com --delete
Error deleting application: Application does not exist

… where it does exist online @ human.meteor.com ?

Is this a 0.3.5 bug?

  • Jamie

Allowing to submit contributions under the MIT license?

I'm considering contributing to Meteor - I like what you've already accomplished with it, congratulations!

I have some concerns about the licensing agreement, though. I'd like to be sure that the current openness of the approach is there to stay - not that I doubt the Meteor team, the actions speak for themselves, but a company can always get sold, so it's better to be careful.

Not being a lawyer, I would feel safer if I could submit my contributions under a generic license, like the MIT you're using yourselves (GPL would have been fine too). Ie the "inbound licensing=outbound licensing" approach (http://ref.fedorapeople.org/fontana-linuxcon.html).

Even carefully drafted copyright assignments like the ones from Project Harmony (http://www.harmonyagreements.org/) have many problems, and having a custom one only adds to the issue. I would thus be interested in knowing what you think about the arguments on the subject, from people who know better than me:

As pointed out in Bradley's post, another possibility to get reasonable insurance that the developer made sure he has the right to submit the work is to do like for Linux patches, having to issue a "Certificate of Origin". http://permalink.gmane.org/gmane.linux.kernel.commits.head/33254

Handlebars: No Nested Paths

I keep on getting an error whenever I try to use nested paths in my handlebars template.
(JS)

Template.navbarLoggedIn.user = function(){
  return { firstName: 'Jack', lastName: 'Parker'};
};

(HTML)

<template name="navbarLoggedIn">
    <div class='navbar'>
        <img src="logo.svg" />
        <h1>Logged In {{user.firstName}}</h1>
    </div>
</template>

Gives me the error: Uncaught TypeError: Cannot read property 'firstName' of undefined

"npm install mailer" breaks server startup

After installing the mailer node module locally, at the root of a meteor app:

$ npm install mailer

Meteor fails on startup with the following errors:

Errors prevented startup:
Exception while bundling application:
Error: Couldn't parse .. um .. some HTML file, on some line. sorry
    at Object._scanChunk (/home/antoviaque/prog/meteor/packages/templating/html_scanner.js:83:13)
    at Object.scan (/home/antoviaque/prog/meteor/packages/templating/html_scanner.js:7:31)
    at /home/antoviaque/prog/meteor/packages/templating/package.js:46:32
    at [object Object].add_file (/home/antoviaque/prog/meteor/app/lib/bundler.js:195:5)
    at /home/antoviaque/prog/meteor/app/lib/bundler.js:98:16
    at Array.forEach (native)
    at Function.<anonymous> (/home/antoviaque/prog/meteor/app/lib/third/underscore.js:76:11)
    at /home/antoviaque/prog/meteor/app/lib/bundler.js:97:11
    at Array.forEach (native)
    at Function.<anonymous> (/home/antoviaque/prog/meteor/app/lib/third/underscore.js:76:11)

fs.js:663
    throw errnoException(errno, 'watch');
    ^
Error: watch EMFILE
    at errnoException (fs.js:636:11)
    at FSWatcher.start (fs.js:663:11)
    at Object.watch (fs.js:691:11)
    at [object Object]._scan (/home/antoviaque/prog/meteor/app/meteor/run.js:322:12)
    at Array.forEach (native)
    at Function.<anonymous> (/home/antoviaque/prog/meteor/app/lib/third/underscore.js:76:11)
    at new <anonymous> (/home/antoviaque/prog/meteor/app/meteor/run.js:264:5)
    at /home/antoviaque/prog/meteor/app/meteor/run.js:455:17
    at /home/antoviaque/prog/meteor/app/meteor/run.js:507:7
    at /home/antoviaque/prog/meteor/app/meteor/run.js:570:9
    at Socket.<anonymous> (/home/antoviaque/prog/meteor/app/lib/mongo_runner.js:176:9)

The bundler fails when html_scanner tries to load node_modules/mailer/node_modules/colors/example.html as if it was one of the app templates.

Maybe this is not the right place to place extra node modules, though.

Also, installing globally doesn't work either, since meteor uses its own NODE_PATH.

doctype crashes app

Adding <!doctype html> -- or any type of html comments -- causes the app to crash:

Your app is crashing. Here's the latest log.

Errors prevented startup:
Exception while bundling application:
Error: Couldn't parse .. um .. some HTML file, on some line. sorry
    at Object._scanChunk (/Users/ultranaut/sandbox/meteor/meteor.git/packages/templating/html_scanner.js:83:13)
    at Object.scan (/Users/ultranaut/sandbox/meteor/meteor.git/packages/templating/html_scanner.js:7:31)
    at /Users/ultranaut/sandbox/meteor/meteor.git/packages/templating/package.js:46:32
    at [object Object].add_file (/Users/ultranaut/sandbox/meteor/meteor.git/app/lib/bundler.js:193:5)
    at /Users/ultranaut/sandbox/meteor/meteor.git/app/lib/bundler.js:97:16
    at Array.forEach (native)
    at Function.<anonymous> (/Users/ultranaut/sandbox/meteor/meteor.git/app/lib/third/underscore.js:76:11)
    at /Users/ultranaut/sandbox/meteor/meteor.git/app/lib/bundler.js:96:11
    at Array.forEach (native)
    at Function.<anonymous> (/Users/ultranaut/sandbox/meteor/meteor.git/app/lib/third/underscore.js:76:11)
Your application is crashing. Waiting for file change.

Seems like a problem.

Directories with spaces throwing errors when using 'meteor create'

When using meteor create <project> in a directory with a space e.g. /Home/General Coding/Node, it throws an error

user@User-Computer:/Home/General Coding/Node# meteor create test
/usr/bin/meteor: line 39: cd: /Home/General: No such file or directory
test: created.

To run your new app:
   cd test
   meteor

As you can see, the script seems to be stopping at the space and taking everything before that as the directory. test isn't actually created.

Html Parsing

There needs to be better handling and documentation.

For instance:

Leaving a space between the name and = below will break Meteor.
<template name ="dorm"> ....... </template>

Access object properties within templates

Handlebars docs say that we can use {{ obj.prop }} but when I try this, I get a "Cannot read property 'prop' of undefined", but when I use {{ obj }} I get a "[object Object]"

EMFILE error when too many files in /public

Hi meteor team,

I've found an EMFILE error when trying to add many static files in /public folder, you might want ot watch how to prevent this issue.

fs.js:663                                                                                           
    throw errnoException(errno, 'watch');                                                           
          ^                                                                                         
Error: watch EMFILE                                                                                 
    at errnoException (fs.js:636:11)                                                                
    at FSWatcher.start (fs.js:663:11)                                                               
    at Object.watch (fs.js:691:11)                                                                  
    at [object Object]._scan (/usr/lib/meteor/app/meteor/run.js:322:12)                             
    at /usr/lib/meteor/app/meteor/run.js:337:14                                                     
    at Array.forEach (native)                                                                       
    at Function.<anonymous> (/usr/lib/meteor/app/lib/third/underscore.js:76:11)                     
    at [object Object]._scan (/usr/lib/meteor/app/meteor/run.js:336:9)                              
    at /usr/lib/meteor/app/meteor/run.js:337:14                                                     
    at Array.forEach (native)           

Thanks,

Alex

MiniMongo doesn't work with array-based queries

Create a new record in a collection:

 Stories.insert({list:[{foo:42, bar:32}, {foo: 50, bar:90}]})

Running the query {'list.foo':42} in the mongo shell meteor mongo works fine and retrieves the record. However, running it on the browser fails with an error "TypeError: Cannot read property 'foo' of undefined"

The immediate code generated by minimongo to be eval'ed is:

_func = (function(f,literals){return function(doc){return (f._matches(doc["list"], function(x){return (function(x){return f._matches_plus(x,function(x){return x===42;});})(x["foo"]);}));};})

DDP mishandles non-JSON objects: Mongo ObjectIds, Dates, etc

Calls to update() on pre-existing mongodb records which use ObjectId() for their _id are ignored. _Mongo.prototype.update passes the string representation of the ObjectId() to collection.update().

As a result, update() doesn't match any record. This doesn't raise any error - the update is silently ignored by the server, and the change reverted on the client.

Not sure what should be changed, but at the minimum it would be nice to be able to debug this more easily.

In my case, I've converted the _ids in my database to strings:

db.applications_hackers.find({}).forEach(function(app){
    db.applications_hackers.remove({_id:app._id}); 
    app._id = app._id.toString(); 
    db.applications_hackers.insert(app); 
});

Empty pages rendered with no error report

There are several situations where the page rendered is totally empty and no error report can be seen neither on the server console nor on the client side. There should be some error reporting system, e.g. like in the Play! framework.

Inserting records in meteor mongo sets _id incorrectly

Inserting a record in the mongodb from the client and from the server behave differently - when inserting from the server (meteor mongo command line), records are inserted, but "_ID" is set incorrectly (e.g. ObjectId("4fa92fc8ce209ad0aece0f67") rather than "4fa92fc8-ce20-9ad0-aece0f67"

This causes the record to not be updatable by the meteor API

For example, I have these two entries....
{ "name" : "Steve O", "score" : 30, "_id" : "8bdbd325-607c-4363-b5f7-f9beadd9d581" }
{ "_id" : ObjectId("4fa92fc8ce209ad0aece0f67"), "name" : "Rich Gautier", "score" : 25 }

They were both added to the Leaderboard app, but the second one was added from the 'meteor mongo' command line - note the _id...This record is not updateable from within the Leaderboard app, since the meteor API doesn't seem to understand the ObjectId(...) "_id" field.

The first entry was done from Chrome Javascript developer console from the app page, and the leaderboard app can correctly change the score.

Both were inserted with the same syntax ....insert({name:"name",score:##})

Either one can be deleted correctly with a remove({name:"name"}) from either server or client.
The 'incorrect' one correctly displays the score in the leaderboard app - it just can't be updated by the meteor leaderboard implementation.

Provide a way to have async Meteor.method return values

Currently only straight thru method definitions are possible. Perhaps support a results callback or 'future' or 'pending' function as a return value from Meteor.method definitions. I had to roll my own using the fibers-promise package...it worked, but it'd be nice if the API already supported it.

HTML prerendering

I wanted to fix pre-rendering however due to the lack of documentation on packages I'm really struggling stabbing in the dark.

It seems all I need is in the "packages/templating/html_scanner.js" to just change the .js into the body that doesn't actually get populated here. However the Meteor.ui and handlebars classes are not available here and I can't seem to work out how to add them in.

Some hints how to do this even if through a hack would be very welcome as I am struggling to get a grasp of how these files are fetched and it seems to me that these classes should be available here.

using animation to update elements

This might be possible, but I haven't figured out how yet. One of the things we often do in our applications is run an animation between two views. A good example of this is in iOS moving from one screen to the next. The first screen slides out to the left and the replacing screen slides in from the right. Is this currently possible (easily) in meteor?

I would love, for example, to just be able to define that a given chunk is going to animate with the chunk that is replacing it.

Include all JS events in Template eventmaps

This code doesn't work in Meteor, making me deeply unhappy.

Template.templateName.events = {
'loadeddata audio' : function (e) {
// something
}
};

C'mon guys. Cheer me up.

Error deploying

I deployed my app. It was doing just fine, but I changed the data model a bit and wanted to refresh the db, so I did a deploy --delete and now I cannot deploy to the same name again... Error deploying application: Error creating application.

Add ability to add classes to <html>

It would be useful to be able to inject html before or modify the outermost element. Alternatively, just have a meteor setting/flag to specifically address conditional styling.

The desired result is to use IE conditional comments to add styles to the outer element for cleaner, cross browser styling. See:

http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

This is a technique used in popular html frameworks like HTML5 Boilerplate, ZURB Foundation, etc.

Currently meteor does not allow us to access on affect the tag that is generated (at least that I've found so far) preventing this technique from supporting older IE browsers.

*.js files in "tests" directory not loaded into client

If I have file in a tests directory inside of client, they don't get loaded.

e.g. if you have

client/
+-> tests/
|   +-> foo_test.js
+-> foo.js

Then foo.js will get loaded, but foo_test.js won't.

If I rename the tests directory to test, then foo_test.js does get loaded - so it looks like the tests directory is getting special cased somewhere.

Is there some way of running the environment so that this folder is not excluded?

Ideally, the tests would be packaged in development, but not in production (e.g. deploy/bundle would strip them out).

Windows support?

Running curl install.meteor.com | sh on Windows suggest that support for Windows has been planned (gives message: "Sorry, this OS is not supported yet.").

I'm adding an issue to track progress on this!

Timestamps trigger template renders with {} instead of actual timestamp

Template.conversation.events =
  'keyup #newMessage > textarea': (e) ->
    textarea = e.target
    if e.keyCode is 13
      [message, textarea.value] = [textarea.value, ""]
      Messages.insert
        message: message
        timestamp: new Date
        from: Session.get("me")
        to: Session.get("it")

Template.conversation.messages = ->
  me = Session.get("me")
  it = Session.get("it")
  if not (me and it)
    return

  profiles =
    me: Profiles.findOne(_id: me)
    it: Profiles.findOne(_id: it)

  relevant = $or: [{from: me, to: it}, {from: it, to: me}]
  messages = Messages.find relevant, {sort: {timestamp: -1}}
  messages.map (message) ->
    message.profile = if message.from == me then profiles.me else profiles.it
    # WEIRDNESS HERE
    if typeof message.timestamp isnt "object"
      message.humanTime = humaneDate(message.timestamp).toLowerCase()
    else
      # So apparently this gets called once with timestamp === {}, then again
      # with the real timestamp.
      console.log "weird message timestamp :/"
      console.log message
      message.humanTime = "just now"
    return message

You can see this on the deployed site:

  1. watch JS console
  2. type "lvh" in your name box
  3. select "View" for the remaining profile (ewa)
  4. type in a message and press RET
  5. observe

The Template.conversation.messages function gets called twice in rapid succession:

  1. with timestamp: {}
  2. with the actual date, in string format

I have no idea if this applies to things that aren't Dates.

v0.3.4 event selectors just broke when I upgraded

After upgrading my app no longer responds to any of my click events. I assumed for an hour it was something I had done and tried to fix it, but this is really stumping me. I'll try to replicate my problem in a little example app and post it here.

I was using currentTarget to get the element that had been clicked on. That worked with v0.3.3 but it doesn't work now, if I use srcElement then it does what I was expecting. I should probably just make another template and trigger with this and avoid these kinds of problems in the future.

Use camel case instead of underscore names

The convention in Javascript is to use camel case for identifiers. I know this doesn't affect functionality or anything, but it does enhance developer happiness and productivity if all libraries and APIs predictively use the same coding style.

Any chance Meteor can use camel case for its API?

Need a way to bind listeners to reactive DOM changes

It is necessary to be able to bind listeners to data-driven reactive changes in the DOM. I'd propose beforechange, afterchange and one to completely overwrite the change handler entirely for that subscription.

This would allow for animating DOM changes, as well as other custom DOM manipulations. Thoughts?

npm package

Is it possible to create an npm package for Meteor?
So we can easily install, assuming that node/npm and mongo are already installed. Thanks!

why underscore notation on code base?

I just saw the screencast from meteor and installed it, and notice that you guys are using snake case notation all over the code base... Why that? Since the Javascript standart is to use camel case notation instead... Can look like a small thing but overall it's a huge no no on my point of view... When mixing the JS code from Meteor with any other javascript frameworks (even default Javascript API) will create a mess with different code standarts...

So, why using snake case notation and not the JS community (and standard API) camel case code?

(I posted that on Stack Overflow before, but I thing here is a better place for this discussion)

edit: changed from "underscore" to "snake case" to use correct naming

Add official support for Mac

Not sure if you guys have any Mac users, but node and mongo are very very easy to get running on a mac with Homebrew. I would like to get a Homebrew formula put together that just installs the Meteor framework in some location (without mongo or node), and just use the mongo and node versions provided by Homebrew.

Is this something that you guys would be interested in supporting? I think the main thing that I'd need is instructions on how to install Meteor if Node and Mongo are already installed.

Attaching a blur event to a template does not work

As of d4e2bd6 (fix events to properly target top-level elements) adding a blur event to a template does not work on the latest Chrome Beta, Version 20.0.1123.4 dev. Specifically, the event handler is never added.
The following code snippet from packages/liveui/liveui.js#L372 is called, however the callback function it contains is not ever called.

$.event.add(elt, event, function(evt) {
  if (selector) {
    // target must match selector
    var target = evt.target;
    // use element's parentNode as a "context"; any elements
    // referenced in the selector must be proper descendents
    // of the context.
    var results = $(elt.parentNode).find(selector);
    if (! _.contains(results, target))
      return;
  }
  callback.call(event_data, evt);
});

It's possible this is a jQuery bug, however the $.event.add method is not part of the public API so I'm not sure what the behaviour is meant to be. The one thing that I did notice whilst debugging was that the 'focusout' event was considered by jQuery whilst attaching the blur event. Maybe something is going on there?
In any case, using $(document).on('blur', selector, handle) worked perfectly, so it is obviously possible with jQuery.

Follow consistent naming conventions

The Meteor API mixes underscore_separated and camelCase variable naming. There's Meteor.is_client, context.on_validate... but then this.onStop, Meteor.ui.listChunk etc.

Camelcase should be used everywhere, as that's the dominant convention in JavaScript.

space in file name of static asset breaks page loading

To replicate:

% meteor create "foo with spaces"
foo with spaces: created.

To run your new app:
   cd foo with spaces
   meteor

% cd foo\ with\ spaces 
% meteor
[[[[[ ~/honeycomb/tmp/foo with spaces ]]]]]

Running on: http://localhost:3000/

The go hit localhost:3000 in a web browser. The page doesn't load and this comes up on the console:

/usr/local/meteor/lib/node_modules/gzippo/lib/staticGzip.js:51
                if (err) throw err;
                 ^
Error: ENOENT, no such file or directory '/Users/nim/honeycomb/tmp/foo with spaces/.meteor/local/build/static/foo%20with%20spaces.css'
Exited with code: 1

Not sure where the %20 -> space translation should happen, but it isn't happening right now.

Adding smart packages?

I would really like to contribute smart packages for stylus and jade, but I didn't want to jump in without really knowing how they work. So my questions are:

  1. Are there any sort of docs for how to create a meteor smart package, or does anyone have suggestions etc?
  2. Are you guys accepting pull requests with new smart packages?

DB documents with integer fields silently dropped

When a document from a DB collection contains an integer value, the document isn't sent to the client (it doesn't appear at all in the answer from the server after the client sends a subscribe request):

{ "_id" : "96b3dc6b-7897-4612-94b2-6eb1348b2298",  "length" : 6193 }

Converting it to a string fixes the problem:

{ "_id" : "96b3dc6b-7897-4612-94b2-6eb1348b2298",  "length" : "6193" }

The NOTES document in the minimongo indicate that integers aren't supported, so I suppose this is normal, but maybe worth a warning in the meantime - the issue can be pretty hard to isolate.

Website Background

I take great issue with the background of your current website. C'mon. You can do better. It looks like cheap wallpaper. Meteor is a flaming fireball. It's bad ass. The meteor website should cut like a knife. It should be made of glass, titanium and awesomeness, not a hawaiian t-shirt.

(Please.)

Unable to deploy to meteor.com subdomains

[root@localhost example]# meteor deploy -P example.meteor.com
New Password: 
Confirm Password: 
Deploying to example.meteor.com.  Bundling ... uploading ...
Error deploying application: undefined
[root@localhost example]#

Running on CentOS 6 in an Oracle VirtualBox VM

Add a changelog

Now that versions are starting to bump, it'd be a good idea to add a changelog in the repo (perhaps as HISTORY.md) or in the docs, or both.

No Support for spaces in paths (when running examples locally)

I installed meteor and pulled down the examples as described on the example pages and was able to run them. I didn't want to leave the folders in my user directory though, so I moved them into "~/Documents/Meteor Projects/." Then they wouldn't run though ("No such file or directory"). I renamed the containing folder to "MeteorProjects" and then they would run again. It would be nice to have support for spaces in paths.

Meteor.methods.addMiddleware and Meteor.methods.myMethod.addMiddleware

Dreaming of middleware for Meteor.methods (thinking of express.js's route middleware http://expressjs.com/guide.html#route-middleware). Tried to implement this as an external library but my JS isn't good enough to figure out the metaprogramming needed to hijack all the relavent parts of meteor. Maybe I'll follow this up with a pull request but wanted to see if this made people smile or cry:

https://gist.github.com/2552208

Peace!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.