Skip to content

Commit

Permalink
add flux v2.0.3 with git autoupdate, close #5080
Browse files Browse the repository at this point in the history
  • Loading branch information
maruilian11 authored and PeterDaveHello committed Jul 25, 2015
1 parent 8bb9656 commit fc918b8
Show file tree
Hide file tree
Showing 3 changed files with 356 additions and 0 deletions.
308 changes: 308 additions & 0 deletions ajax/libs/flux/2.0.3/Flux.js
@@ -0,0 +1,308 @@
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Flux = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
/**
* Copyright (c) 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/

module.exports.Dispatcher = require('./lib/Dispatcher')

},{"./lib/Dispatcher":2}],2:[function(require,module,exports){
/**
* Copyright (c) 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule Dispatcher
* @typechecks
* @preventMunge
*/

'use strict';

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

var invariant = require('./invariant');

var _prefix = 'ID_';

/**
* Dispatcher is used to broadcast payloads to registered callbacks. This is
* different from generic pub-sub systems in two ways:
*
* 1) Callbacks are not subscribed to particular events. Every payload is
* dispatched to every registered callback.
* 2) Callbacks can be deferred in whole or part until other callbacks have
* been executed.
*
* For example, consider this hypothetical flight destination form, which
* selects a default city when a country is selected:
*
* var flightDispatcher = new Dispatcher();
*
* // Keeps track of which country is selected
* var CountryStore = {country: null};
*
* // Keeps track of which city is selected
* var CityStore = {city: null};
*
* // Keeps track of the base flight price of the selected city
* var FlightPriceStore = {price: null}
*
* When a user changes the selected city, we dispatch the payload:
*
* flightDispatcher.dispatch({
* actionType: 'city-update',
* selectedCity: 'paris'
* });
*
* This payload is digested by `CityStore`:
*
* flightDispatcher.register(function(payload) {
* if (payload.actionType === 'city-update') {
* CityStore.city = payload.selectedCity;
* }
* });
*
* When the user selects a country, we dispatch the payload:
*
* flightDispatcher.dispatch({
* actionType: 'country-update',
* selectedCountry: 'australia'
* });
*
* This payload is digested by both stores:
*
* CountryStore.dispatchToken = flightDispatcher.register(function(payload) {
* if (payload.actionType === 'country-update') {
* CountryStore.country = payload.selectedCountry;
* }
* });
*
* When the callback to update `CountryStore` is registered, we save a reference
* to the returned token. Using this token with `waitFor()`, we can guarantee
* that `CountryStore` is updated before the callback that updates `CityStore`
* needs to query its data.
*
* CityStore.dispatchToken = flightDispatcher.register(function(payload) {
* if (payload.actionType === 'country-update') {
* // `CountryStore.country` may not be updated.
* flightDispatcher.waitFor([CountryStore.dispatchToken]);
* // `CountryStore.country` is now guaranteed to be updated.
*
* // Select the default city for the new country
* CityStore.city = getDefaultCityForCountry(CountryStore.country);
* }
* });
*
* The usage of `waitFor()` can be chained, for example:
*
* FlightPriceStore.dispatchToken =
* flightDispatcher.register(function(payload) {
* switch (payload.actionType) {
* case 'country-update':
* case 'city-update':
* flightDispatcher.waitFor([CityStore.dispatchToken]);
* FlightPriceStore.price =
* getFlightPriceStore(CountryStore.country, CityStore.city);
* break;
* }
* });
*
* The `country-update` payload will be guaranteed to invoke the stores'
* registered callbacks in order: `CountryStore`, `CityStore`, then
* `FlightPriceStore`.
*/

var Dispatcher = (function () {
function Dispatcher() {
_classCallCheck(this, Dispatcher);

this._lastID = 1;
this._callbacks = {};
this._isPending = {};
this._isHandled = {};
this._isDispatching = false;
this._pendingPayload = null;
}

/**
* Registers a callback to be invoked with every dispatched payload. Returns
* a token that can be used with `waitFor()`.
*
* @param {function} callback
* @return {string}
*/

Dispatcher.prototype.register = function register(callback) {
var id = _prefix + this._lastID++;
this._callbacks[id] = callback;
return id;
};

/**
* Removes a callback based on its token.
*
* @param {string} id
*/

Dispatcher.prototype.unregister = function unregister(id) {
invariant(this._callbacks[id], 'Dispatcher.unregister(...): `%s` does not map to a registered callback.', id);
delete this._callbacks[id];
};

/**
* Waits for the callbacks specified to be invoked before continuing execution
* of the current callback. This method should only be used by a callback in
* response to a dispatched payload.
*
* @param {array<string>} ids
*/

Dispatcher.prototype.waitFor = function waitFor(ids) {
invariant(this._isDispatching, 'Dispatcher.waitFor(...): Must be invoked while dispatching.');
for (var ii = 0; ii < ids.length; ii++) {
var id = ids[ii];
if (this._isPending[id]) {
invariant(this._isHandled[id], 'Dispatcher.waitFor(...): Circular dependency detected while ' + 'waiting for `%s`.', id);
continue;
}
invariant(this._callbacks[id], 'Dispatcher.waitFor(...): `%s` does not map to a registered callback.', id);
this._invokeCallback(id);
}
};

/**
* Dispatches a payload to all registered callbacks.
*
* @param {object} payload
*/

Dispatcher.prototype.dispatch = function dispatch(payload) {
invariant(!this._isDispatching, 'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.');
this._startDispatching(payload);
try {
for (var id in this._callbacks) {
if (this._isPending[id]) {
continue;
}
this._invokeCallback(id);
}
} finally {
this._stopDispatching();
}
};

/**
* Is this Dispatcher currently dispatching.
*
* @return {boolean}
*/

Dispatcher.prototype.isDispatching = function isDispatching() {
return this._isDispatching;
};

/**
* Call the callback stored with the given id. Also do some internal
* bookkeeping.
*
* @param {string} id
* @internal
*/

Dispatcher.prototype._invokeCallback = function _invokeCallback(id) {
this._isPending[id] = true;
this._callbacks[id](this._pendingPayload);
this._isHandled[id] = true;
};

/**
* Set up bookkeeping needed when dispatching.
*
* @param {object} payload
* @internal
*/

Dispatcher.prototype._startDispatching = function _startDispatching(payload) {
for (var id in this._callbacks) {
this._isPending[id] = false;
this._isHandled[id] = false;
}
this._pendingPayload = payload;
this._isDispatching = true;
};

/**
* Clear bookkeeping used for dispatching.
*
* @internal
*/

Dispatcher.prototype._stopDispatching = function _stopDispatching() {
this._pendingPayload = null;
this._isDispatching = false;
};

return Dispatcher;
})();

module.exports = Dispatcher;
},{"./invariant":3}],3:[function(require,module,exports){
/**
* Copyright (c) 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule invariant
*/

'use strict';

/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/

var invariant = function (condition, format, a, b, c, d, e, f) {
if (false) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
}

if (!condition) {
var error;
if (format === undefined) {
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () {
return args[argIndex++];
}));
}

error.framesToPop = 1; // we don't care about invariant's own frame
throw error;
}
};

module.exports = invariant;
},{}]},{},[1])(1)
});
1 change: 1 addition & 0 deletions ajax/libs/flux/2.0.3/Flux.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 47 additions & 0 deletions ajax/libs/flux/package.json
@@ -0,0 +1,47 @@
{
"name": "flux",
"version": "2.0.3",
"description": "An application architecture based on a unidirectional data flow",
"filename": "Flux.min.js",
"keywords": [
"flux",
"react",
"facebook",
"dispatcher"
],
"homepage": "http://facebook.github.io/flux/",
"bugs": "https://github.com/facebook/flux/issues",
"files": [
"index.js",
"lib/",
"LICENSE",
"PATENTS"
],
"main": "index.js",
"jest": {
"rootDir": "src",
"scriptPreprocessor": "../node_modules/babel-jest"
},
"repository": {
"type": "git",
"url": "https://github.com/facebook/flux"
},
"author": "Facebook",
"contributors": [
"Jing Chen <jingc@fb.com>",
"Bill Fisher <fisherwebdev@gmail.com>",
"Paul O'Shannessy <paul@oshanessy.com>"
],
"license": "BSD-3-Clause",
"requiredFiles": [
"Flux.min.js"
],
"autoupdate": {
"source": "git",
"target": "git://github.com/facebook/flux.git",
"basePath": "dist",
"files": [
"**/*"
]
}
}

0 comments on commit fc918b8

Please sign in to comment.