mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
* Run 'prettier' on the v15.6 branch This is an easy fix and I'd like this branch to be as similar to master (v16.0) as possible. * `npm install --save-dev prettier && yarn prettier` Checking in the updated `package.json` and `yarn.lock` for the 15.6 branch. Oddly, running `yarn prettier` updated more files. I thought the previous commit had covered all `prettier` syntax updates. Will commit the new changes in a separate commit. * Ran prettier More syntax updates to get `prettier` checks passing on the `15.6-dev` branch, and eventually, on 15-stable. * Tweak eslint ignore comments to get linter passing Something with running `prettier` moves or changes these comments in a way that they were no longer being applied. We tweaked them so that both 'prettier' and 'eslint' pass.
89 lines
2.5 KiB
JavaScript
89 lines
2.5 KiB
JavaScript
/**
|
|
* Copyright 2015-present, 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 ReactFragment
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var ReactChildren = require('ReactChildren');
|
|
var ReactElement = require('ReactElement');
|
|
|
|
var emptyFunction = require('emptyFunction');
|
|
var invariant = require('invariant');
|
|
var warning = require('warning');
|
|
|
|
/**
|
|
* We used to allow keyed objects to serve as a collection of ReactElements,
|
|
* or nested sets. This allowed us a way to explicitly key a set or fragment of
|
|
* components. This is now being replaced with an opaque data structure.
|
|
* The upgrade path is to call React.addons.createFragment({ key: value }) to
|
|
* create a keyed fragment. The resulting data structure is an array.
|
|
*/
|
|
|
|
var numericPropertyRegex = /^\d+$/;
|
|
|
|
var warnedAboutNumeric = false;
|
|
|
|
var ReactFragment = {
|
|
/**
|
|
* Wrap a keyed object in an opaque proxy that warns you if you access any
|
|
* of its properties.
|
|
* See https://facebook.github.io/react/docs/create-fragment.html
|
|
*/
|
|
create: function(object) {
|
|
if (typeof object !== 'object' || !object || Array.isArray(object)) {
|
|
warning(
|
|
false,
|
|
'React.addons.createFragment only accepts a single object. Got: %s',
|
|
object,
|
|
);
|
|
return object;
|
|
}
|
|
if (ReactElement.isValidElement(object)) {
|
|
warning(
|
|
false,
|
|
'React.addons.createFragment does not accept a ReactElement ' +
|
|
'without a wrapper object.',
|
|
);
|
|
return object;
|
|
}
|
|
|
|
invariant(
|
|
object.nodeType !== 1,
|
|
'React.addons.createFragment(...): Encountered an invalid child; DOM ' +
|
|
'elements are not valid children of React components.',
|
|
);
|
|
|
|
var result = [];
|
|
|
|
for (var key in object) {
|
|
if (__DEV__) {
|
|
if (!warnedAboutNumeric && numericPropertyRegex.test(key)) {
|
|
warning(
|
|
false,
|
|
'React.addons.createFragment(...): Child objects should have ' +
|
|
'non-numeric keys so ordering is preserved.',
|
|
);
|
|
warnedAboutNumeric = true;
|
|
}
|
|
}
|
|
ReactChildren.mapIntoWithKeyPrefixInternal(
|
|
object[key],
|
|
result,
|
|
key,
|
|
emptyFunction.thatReturnsArgument,
|
|
);
|
|
}
|
|
|
|
return result;
|
|
},
|
|
};
|
|
|
|
module.exports = ReactFragment;
|