react 0.7.1 → 0.10.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -231
- package/addons.js +1 -0
- package/lib/AutoFocusMixin.js +32 -0
- package/lib/CSSCore.js +115 -0
- package/lib/CSSProperty.js +121 -0
- package/lib/CSSPropertyOperations.js +97 -0
- package/lib/ChangeEventPlugin.js +387 -0
- package/lib/ClientReactRootIndex.js +30 -0
- package/lib/CompositionEventPlugin.js +260 -0
- package/lib/DOMChildrenOperations.js +171 -0
- package/lib/DOMProperty.js +270 -0
- package/lib/DOMPropertyOperations.js +181 -0
- package/lib/Danger.js +187 -0
- package/lib/DefaultDOMPropertyConfig.js +196 -0
- package/lib/DefaultEventPluginOrder.js +44 -0
- package/lib/EnterLeaveEventPlugin.js +145 -0
- package/lib/EventConstants.js +76 -0
- package/lib/EventListener.js +69 -0
- package/lib/EventPluginHub.js +295 -0
- package/lib/EventPluginRegistry.js +281 -0
- package/lib/EventPluginUtils.js +214 -0
- package/lib/EventPropagators.js +143 -0
- package/lib/ExecutionEnvironment.js +44 -0
- package/lib/LinkedStateMixin.js +46 -0
- package/lib/LinkedValueUtils.js +160 -0
- package/lib/MobileSafariClickEventPlugin.js +63 -0
- package/lib/PooledClass.js +119 -0
- package/lib/React.js +97 -0
- package/lib/ReactBrowserComponentMixin.js +42 -0
- package/lib/ReactCSSTransitionGroup.js +65 -0
- package/lib/ReactCSSTransitionGroupChild.js +138 -0
- package/lib/ReactChildren.js +132 -0
- package/lib/ReactComponent.js +595 -0
- package/lib/ReactComponentBrowserEnvironment.js +124 -0
- package/lib/ReactCompositeComponent.js +1587 -0
- package/lib/ReactContext.js +67 -0
- package/lib/ReactCurrentOwner.js +39 -0
- package/lib/ReactDOM.js +207 -0
- package/lib/ReactDOMButton.js +69 -0
- package/lib/ReactDOMComponent.js +416 -0
- package/lib/ReactDOMForm.js +62 -0
- package/lib/ReactDOMIDOperations.js +218 -0
- package/lib/ReactDOMImg.js +61 -0
- package/lib/ReactDOMInput.js +182 -0
- package/lib/ReactDOMOption.js +55 -0
- package/lib/ReactDOMSelect.js +180 -0
- package/lib/ReactDOMSelection.js +189 -0
- package/lib/ReactDOMTextarea.js +144 -0
- package/lib/ReactDefaultBatchingStrategy.js +75 -0
- package/lib/ReactDefaultInjection.js +125 -0
- package/lib/ReactDefaultPerf.js +244 -0
- package/lib/ReactDefaultPerfAnalysis.js +199 -0
- package/lib/ReactErrorUtils.js +37 -0
- package/lib/ReactEventEmitter.js +339 -0
- package/lib/ReactEventEmitterMixin.js +57 -0
- package/lib/ReactEventTopLevelCallback.js +149 -0
- package/lib/ReactInjection.js +43 -0
- package/lib/ReactInputSelection.js +141 -0
- package/lib/ReactInstanceHandles.js +338 -0
- package/lib/ReactLink.js +54 -0
- package/lib/ReactMarkupChecksum.js +53 -0
- package/lib/ReactMount.js +649 -0
- package/lib/ReactMountReady.js +95 -0
- package/lib/ReactMultiChild.js +432 -0
- package/lib/ReactMultiChildUpdateTypes.js +38 -0
- package/lib/ReactOwner.js +159 -0
- package/lib/ReactPerf.js +85 -0
- package/lib/ReactPropTransferer.js +147 -0
- package/lib/ReactPropTypeLocationNames.js +31 -0
- package/lib/ReactPropTypeLocations.js +29 -0
- package/lib/ReactPropTypes.js +359 -0
- package/lib/ReactPutListenerQueue.js +61 -0
- package/lib/ReactReconcileTransaction.js +182 -0
- package/lib/ReactRootIndex.js +36 -0
- package/lib/ReactServerRendering.js +89 -0
- package/lib/ReactServerRenderingTransaction.js +116 -0
- package/lib/ReactStateSetters.js +111 -0
- package/lib/ReactTestUtils.js +394 -0
- package/lib/ReactTextComponent.js +121 -0
- package/lib/ReactTransitionChildMapping.js +106 -0
- package/lib/ReactTransitionEvents.js +97 -0
- package/lib/ReactTransitionGroup.js +187 -0
- package/lib/ReactUpdates.js +148 -0
- package/lib/ReactWithAddons.js +53 -0
- package/lib/SelectEventPlugin.js +200 -0
- package/lib/ServerReactRootIndex.js +36 -0
- package/lib/SimpleEventPlugin.js +413 -0
- package/lib/SyntheticClipboardEvent.js +51 -0
- package/lib/SyntheticCompositionEvent.js +51 -0
- package/lib/SyntheticDragEvent.js +44 -0
- package/lib/SyntheticEvent.js +164 -0
- package/lib/SyntheticFocusEvent.js +44 -0
- package/lib/SyntheticKeyboardEvent.js +58 -0
- package/lib/SyntheticMouseEvent.js +85 -0
- package/lib/SyntheticTouchEvent.js +50 -0
- package/lib/SyntheticUIEvent.js +45 -0
- package/lib/SyntheticWheelEvent.js +66 -0
- package/lib/Transaction.js +276 -0
- package/lib/ViewportMetrics.js +37 -0
- package/lib/accumulate.js +54 -0
- package/lib/adler32.js +39 -0
- package/lib/cloneWithProps.js +59 -0
- package/lib/containsNode.js +49 -0
- package/lib/copyProperties.js +54 -0
- package/lib/createArrayFrom.js +91 -0
- package/lib/createFullPageComponent.js +63 -0
- package/lib/createNodesFromMarkup.js +93 -0
- package/lib/createObjectFrom.js +61 -0
- package/lib/cx.js +44 -0
- package/lib/dangerousStyleValue.js +57 -0
- package/lib/emptyFunction.js +43 -0
- package/lib/emptyObject.js +27 -0
- package/lib/escapeTextForBrowser.js +47 -0
- package/lib/flattenChildren.js +57 -0
- package/lib/focusNode.js +33 -0
- package/lib/forEachAccumulated.js +36 -0
- package/lib/getActiveElement.js +34 -0
- package/lib/getEventKey.js +85 -0
- package/lib/getEventTarget.js +36 -0
- package/lib/getMarkupWrap.js +118 -0
- package/lib/getNodeForCharacterOffset.js +80 -0
- package/lib/getReactRootElementInContainer.js +40 -0
- package/lib/getTextContentAccessor.js +42 -0
- package/lib/getUnboundedScrollPosition.js +45 -0
- package/lib/hyphenate.js +35 -0
- package/lib/instantiateReactComponent.js +70 -0
- package/lib/invariant.js +62 -0
- package/lib/isEventSupported.js +70 -0
- package/lib/isNode.js +33 -0
- package/lib/isTextInputElement.js +49 -0
- package/lib/isTextNode.js +30 -0
- package/lib/joinClasses.js +44 -0
- package/lib/keyMirror.js +58 -0
- package/lib/keyOf.js +41 -0
- package/lib/memoizeStringOnly.js +39 -0
- package/lib/merge.js +37 -0
- package/lib/mergeHelpers.js +136 -0
- package/lib/mergeInto.js +45 -0
- package/lib/mixInto.js +34 -0
- package/lib/monitorCodeUse.js +37 -0
- package/lib/objMap.js +47 -0
- package/lib/objMapKeyVal.js +47 -0
- package/lib/onlyChild.js +43 -0
- package/lib/performanceNow.js +42 -0
- package/lib/shallowEqual.js +49 -0
- package/lib/shouldUpdateReactComponent.js +61 -0
- package/lib/toArray.js +75 -0
- package/lib/traverseAllChildren.js +190 -0
- package/lib/update.js +159 -0
- package/lib/warning.js +48 -0
- package/package.json +33 -31
- package/react.js +1 -0
- package/.npmignore +0 -7
- package/.travis.yml +0 -7
- package/Jakefile.js +0 -39
- package/LICENSE +0 -19
- package/browser-test/dist.html +0 -90
- package/browser-test/index.html +0 -86
- package/browser-test/min.html +0 -90
- package/dist/react.js +0 -3141
- package/dist/react.min.js +0 -22
- package/doc/advanced.md +0 -175
- package/doc/color-def.graffle +0 -938
- package/doc/color-def.png +0 -0
- package/doc/simple.dot +0 -25
- package/doc/simple.png +0 -0
- package/examples/longer-example.js +0 -41
- package/examples/simple.js +0 -45
- package/examples/using-ast-directly.js +0 -30
- package/examples/using-events1.js +0 -79
- package/examples/using-log-events.js +0 -43
- package/lib/base-task.js +0 -120
- package/lib/cb-task.js +0 -84
- package/lib/core.js +0 -138
- package/lib/dsl.js +0 -138
- package/lib/error.js +0 -55
- package/lib/event-collector.js +0 -81
- package/lib/event-manager.js +0 -89
- package/lib/eventemitter.js +0 -20
- package/lib/finalcb-first-task.js +0 -68
- package/lib/finalcb-task.js +0 -65
- package/lib/id.js +0 -22
- package/lib/input-parser.js +0 -56
- package/lib/log-events.js +0 -101
- package/lib/parse.js +0 -41
- package/lib/promise-resolve.js +0 -50
- package/lib/promise-task.js +0 -93
- package/lib/react.js +0 -59
- package/lib/ret-task.js +0 -71
- package/lib/sprintf.js +0 -18
- package/lib/status.js +0 -14
- package/lib/task.js +0 -251
- package/lib/track-tasks.js +0 -74
- package/lib/validate.js +0 -159
- package/lib/vcon.js +0 -113
- package/lib/when-task.js +0 -84
- package/src/dist.build.requirejs +0 -20
- package/test/ast.mocha.js +0 -136
- package/test/cb-task.mocha.js +0 -220
- package/test/core-deferred.mocha.js +0 -143
- package/test/core-when.mocha.js +0 -96
- package/test/core.mocha.js +0 -589
- package/test/dsl.mocha.js +0 -352
- package/test/event-manager.mocha.js +0 -119
- package/test/exec-options.mocha.js +0 -48
- package/test/finalcb-task.mocha.js +0 -58
- package/test/input-parser.mocha.js +0 -86
- package/test/log-events.mocha.js +0 -88
- package/test/mocha.opts +0 -2
- package/test/module-use.mocha.js +0 -164
- package/test/promise-auto-resolve.mocha.js +0 -68
- package/test/ret-task.mocha.js +0 -220
- package/test/task.mocha.js +0 -42
- package/test/validate-cb-task.mocha.js +0 -100
- package/test/validate-ret-task.mocha.js +0 -110
- package/test/validate.mocha.js +0 -324
- package/test/vcon.mocha.js +0 -193
- package/vendor/chai/chai.js +0 -4251
- package/vendor/jquery/jquery-1.7.1.js +0 -9266
- package/vendor/jquery/jquery-1.7.1.min.js +0 -4
- package/vendor/node/util.js +0 -531
- package/vendor/requirejs/require.js +0 -2045
- package/vendor/requirejs/require.min.js +0 -36
package/lib/keyOf.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule keyOf
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Allows extraction of a minified key. Let's the build system minify keys
|
|
21
|
+
* without loosing the ability to dynamically use key strings as values
|
|
22
|
+
* themselves. Pass in an object with a single key/val pair and it will return
|
|
23
|
+
* you the string key of that single record. Suppose you want to grab the
|
|
24
|
+
* value for a key 'className' inside of an object. Key/val minification may
|
|
25
|
+
* have aliased that key to be 'xa12'. keyOf({className: null}) will return
|
|
26
|
+
* 'xa12' in that case. Resolve keys you want to use once at startup time, then
|
|
27
|
+
* reuse those resolutions.
|
|
28
|
+
*/
|
|
29
|
+
var keyOf = function(oneKeyObj) {
|
|
30
|
+
var key;
|
|
31
|
+
for (key in oneKeyObj) {
|
|
32
|
+
if (!oneKeyObj.hasOwnProperty(key)) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
return key;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
module.exports = keyOf;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule memoizeStringOnly
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Memoizes the return value of a function that accepts one string argument.
|
|
24
|
+
*
|
|
25
|
+
* @param {function} callback
|
|
26
|
+
* @return {function}
|
|
27
|
+
*/
|
|
28
|
+
function memoizeStringOnly(callback) {
|
|
29
|
+
var cache = {};
|
|
30
|
+
return function(string) {
|
|
31
|
+
if (cache.hasOwnProperty(string)) {
|
|
32
|
+
return cache[string];
|
|
33
|
+
} else {
|
|
34
|
+
return cache[string] = callback.call(this, string);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = memoizeStringOnly;
|
package/lib/merge.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule merge
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
var mergeInto = require("./mergeInto");
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Shallow merges two structures into a return value, without mutating either.
|
|
25
|
+
*
|
|
26
|
+
* @param {?object} one Optional object with properties to merge from.
|
|
27
|
+
* @param {?object} two Optional object with properties to merge from.
|
|
28
|
+
* @return {object} The shallow extension of one by two.
|
|
29
|
+
*/
|
|
30
|
+
var merge = function(one, two) {
|
|
31
|
+
var result = {};
|
|
32
|
+
mergeInto(result, one);
|
|
33
|
+
mergeInto(result, two);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
module.exports = merge;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule mergeHelpers
|
|
17
|
+
*
|
|
18
|
+
* requiresPolyfills: Array.isArray
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
"use strict";
|
|
22
|
+
|
|
23
|
+
var invariant = require("./invariant");
|
|
24
|
+
var keyMirror = require("./keyMirror");
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Maximum number of levels to traverse. Will catch circular structures.
|
|
28
|
+
* @const
|
|
29
|
+
*/
|
|
30
|
+
var MAX_MERGE_DEPTH = 36;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* We won't worry about edge cases like new String('x') or new Boolean(true).
|
|
34
|
+
* Functions are considered terminals, and arrays are not.
|
|
35
|
+
* @param {*} o The item/object/value to test.
|
|
36
|
+
* @return {boolean} true iff the argument is a terminal.
|
|
37
|
+
*/
|
|
38
|
+
var isTerminal = function(o) {
|
|
39
|
+
return typeof o !== 'object' || o === null;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var mergeHelpers = {
|
|
43
|
+
|
|
44
|
+
MAX_MERGE_DEPTH: MAX_MERGE_DEPTH,
|
|
45
|
+
|
|
46
|
+
isTerminal: isTerminal,
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Converts null/undefined values into empty object.
|
|
50
|
+
*
|
|
51
|
+
* @param {?Object=} arg Argument to be normalized (nullable optional)
|
|
52
|
+
* @return {!Object}
|
|
53
|
+
*/
|
|
54
|
+
normalizeMergeArg: function(arg) {
|
|
55
|
+
return arg === undefined || arg === null ? {} : arg;
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* If merging Arrays, a merge strategy *must* be supplied. If not, it is
|
|
60
|
+
* likely the caller's fault. If this function is ever called with anything
|
|
61
|
+
* but `one` and `two` being `Array`s, it is the fault of the merge utilities.
|
|
62
|
+
*
|
|
63
|
+
* @param {*} one Array to merge into.
|
|
64
|
+
* @param {*} two Array to merge from.
|
|
65
|
+
*/
|
|
66
|
+
checkMergeArrayArgs: function(one, two) {
|
|
67
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
68
|
+
Array.isArray(one) && Array.isArray(two),
|
|
69
|
+
'Tried to merge arrays, instead got %s and %s.',
|
|
70
|
+
one,
|
|
71
|
+
two
|
|
72
|
+
) : invariant(Array.isArray(one) && Array.isArray(two)));
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param {*} one Object to merge into.
|
|
77
|
+
* @param {*} two Object to merge from.
|
|
78
|
+
*/
|
|
79
|
+
checkMergeObjectArgs: function(one, two) {
|
|
80
|
+
mergeHelpers.checkMergeObjectArg(one);
|
|
81
|
+
mergeHelpers.checkMergeObjectArg(two);
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @param {*} arg
|
|
86
|
+
*/
|
|
87
|
+
checkMergeObjectArg: function(arg) {
|
|
88
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
89
|
+
!isTerminal(arg) && !Array.isArray(arg),
|
|
90
|
+
'Tried to merge an object, instead got %s.',
|
|
91
|
+
arg
|
|
92
|
+
) : invariant(!isTerminal(arg) && !Array.isArray(arg)));
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Checks that a merge was not given a circular object or an object that had
|
|
97
|
+
* too great of depth.
|
|
98
|
+
*
|
|
99
|
+
* @param {number} Level of recursion to validate against maximum.
|
|
100
|
+
*/
|
|
101
|
+
checkMergeLevel: function(level) {
|
|
102
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
103
|
+
level < MAX_MERGE_DEPTH,
|
|
104
|
+
'Maximum deep merge depth exceeded. You may be attempting to merge ' +
|
|
105
|
+
'circular structures in an unsupported way.'
|
|
106
|
+
) : invariant(level < MAX_MERGE_DEPTH));
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Checks that the supplied merge strategy is valid.
|
|
111
|
+
*
|
|
112
|
+
* @param {string} Array merge strategy.
|
|
113
|
+
*/
|
|
114
|
+
checkArrayStrategy: function(strategy) {
|
|
115
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
116
|
+
strategy === undefined || strategy in mergeHelpers.ArrayStrategies,
|
|
117
|
+
'You must provide an array strategy to deep merge functions to ' +
|
|
118
|
+
'instruct the deep merge how to resolve merging two arrays.'
|
|
119
|
+
) : invariant(strategy === undefined || strategy in mergeHelpers.ArrayStrategies));
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Set of possible behaviors of merge algorithms when encountering two Arrays
|
|
124
|
+
* that must be merged together.
|
|
125
|
+
* - `clobber`: The left `Array` is ignored.
|
|
126
|
+
* - `indexByIndex`: The result is achieved by recursively deep merging at
|
|
127
|
+
* each index. (not yet supported.)
|
|
128
|
+
*/
|
|
129
|
+
ArrayStrategies: keyMirror({
|
|
130
|
+
Clobber: true,
|
|
131
|
+
IndexByIndex: true
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
module.exports = mergeHelpers;
|
package/lib/mergeInto.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule mergeInto
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
var mergeHelpers = require("./mergeHelpers");
|
|
23
|
+
|
|
24
|
+
var checkMergeObjectArg = mergeHelpers.checkMergeObjectArg;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Shallow merges two structures by mutating the first parameter.
|
|
28
|
+
*
|
|
29
|
+
* @param {object} one Object to be merged into.
|
|
30
|
+
* @param {?object} two Optional object with properties to merge from.
|
|
31
|
+
*/
|
|
32
|
+
function mergeInto(one, two) {
|
|
33
|
+
checkMergeObjectArg(one);
|
|
34
|
+
if (two != null) {
|
|
35
|
+
checkMergeObjectArg(two);
|
|
36
|
+
for (var key in two) {
|
|
37
|
+
if (!two.hasOwnProperty(key)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
one[key] = two[key];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = mergeInto;
|
package/lib/mixInto.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule mixInto
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Simply copies properties to the prototype.
|
|
23
|
+
*/
|
|
24
|
+
var mixInto = function(constructor, methodBag) {
|
|
25
|
+
var methodName;
|
|
26
|
+
for (methodName in methodBag) {
|
|
27
|
+
if (!methodBag.hasOwnProperty(methodName)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
constructor.prototype[methodName] = methodBag[methodName];
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
module.exports = mixInto;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule monitorCodeUse
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
var invariant = require("./invariant");
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Provides open-source compatible instrumentation for monitoring certain API
|
|
25
|
+
* uses before we're ready to issue a warning or refactor. It accepts an event
|
|
26
|
+
* name which may only contain the characters [a-z0-9_] and an optional data
|
|
27
|
+
* object with further information.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
function monitorCodeUse(eventName, data) {
|
|
31
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
32
|
+
eventName && !/[^a-z0-9_]/.test(eventName),
|
|
33
|
+
'You must provide an eventName using only the characters [a-z0-9_]'
|
|
34
|
+
) : invariant(eventName && !/[^a-z0-9_]/.test(eventName)));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = monitorCodeUse;
|
package/lib/objMap.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule objMap
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* For each key/value pair, invokes callback func and constructs a resulting
|
|
23
|
+
* object which contains, for every key in obj, values that are the result of
|
|
24
|
+
* of invoking the function:
|
|
25
|
+
*
|
|
26
|
+
* func(value, key, iteration)
|
|
27
|
+
*
|
|
28
|
+
* @param {?object} obj Object to map keys over
|
|
29
|
+
* @param {function} func Invoked for each key/val pair.
|
|
30
|
+
* @param {?*} context
|
|
31
|
+
* @return {?object} Result of mapping or null if obj is falsey
|
|
32
|
+
*/
|
|
33
|
+
function objMap(obj, func, context) {
|
|
34
|
+
if (!obj) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
var i = 0;
|
|
38
|
+
var ret = {};
|
|
39
|
+
for (var key in obj) {
|
|
40
|
+
if (obj.hasOwnProperty(key)) {
|
|
41
|
+
ret[key] = func.call(context, obj[key], key, i++);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ret;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = objMap;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule objMapKeyVal
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Behaves the same as `objMap` but invokes func with the key first, and value
|
|
23
|
+
* second. Use `objMap` unless you need this special case.
|
|
24
|
+
* Invokes func as:
|
|
25
|
+
*
|
|
26
|
+
* func(key, value, iteration)
|
|
27
|
+
*
|
|
28
|
+
* @param {?object} obj Object to map keys over
|
|
29
|
+
* @param {!function} func Invoked for each key/val pair.
|
|
30
|
+
* @param {?*} context
|
|
31
|
+
* @return {?object} Result of mapping or null if obj is falsey
|
|
32
|
+
*/
|
|
33
|
+
function objMapKeyVal(obj, func, context) {
|
|
34
|
+
if (!obj) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
var i = 0;
|
|
38
|
+
var ret = {};
|
|
39
|
+
for (var key in obj) {
|
|
40
|
+
if (obj.hasOwnProperty(key)) {
|
|
41
|
+
ret[key] = func.call(context, key, obj[key], i++);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ret;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = objMapKeyVal;
|