Skip to content

Commit c25e3a5

Browse files
committed
Put UMD IIFE around 'react-dom-factories'
**what is the change?:** Adds an Immediately Invoked Function Expression around the body of the 'react-dom-factories' module, such that it will make the module available via 'require', or via AMD, or via the global scope, depending on what is supported. **why make this change?:** Trying to find the simplest way possible to make this ready for `npm publish`. **test plan:** WIP **issue:** #9398
1 parent 619c2e5 commit c25e3a5

File tree

1 file changed

+179
-146
lines changed

1 file changed

+179
-146
lines changed
Lines changed: 179 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,188 @@
11
'use strict';
22

3-
var React = require('React');
4-
53
/**
6-
* Create a factory that creates HTML tag elements.
4+
* Copyright 2015-present, Facebook, Inc.
5+
* All rights reserved.
76
*
8-
* @private
7+
* This source code is licensed under the BSD-style license found in the
8+
* LICENSE file in the root directory of this source tree. An additional grant
9+
* of patent rights can be found in the PATENTS file in the same directory.
910
*/
10-
var createDOMFactory = React.createFactory;
1111

12-
/**
13-
* Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
14-
*
15-
* @public
16-
*/
17-
var ReactDOMFactories = {
18-
a: createDOMFactory('a'),
19-
abbr: createDOMFactory('abbr'),
20-
address: createDOMFactory('address'),
21-
area: createDOMFactory('area'),
22-
article: createDOMFactory('article'),
23-
aside: createDOMFactory('aside'),
24-
audio: createDOMFactory('audio'),
25-
b: createDOMFactory('b'),
26-
base: createDOMFactory('base'),
27-
bdi: createDOMFactory('bdi'),
28-
bdo: createDOMFactory('bdo'),
29-
big: createDOMFactory('big'),
30-
blockquote: createDOMFactory('blockquote'),
31-
body: createDOMFactory('body'),
32-
br: createDOMFactory('br'),
33-
button: createDOMFactory('button'),
34-
canvas: createDOMFactory('canvas'),
35-
caption: createDOMFactory('caption'),
36-
cite: createDOMFactory('cite'),
37-
code: createDOMFactory('code'),
38-
col: createDOMFactory('col'),
39-
colgroup: createDOMFactory('colgroup'),
40-
data: createDOMFactory('data'),
41-
datalist: createDOMFactory('datalist'),
42-
dd: createDOMFactory('dd'),
43-
del: createDOMFactory('del'),
44-
details: createDOMFactory('details'),
45-
dfn: createDOMFactory('dfn'),
46-
dialog: createDOMFactory('dialog'),
47-
div: createDOMFactory('div'),
48-
dl: createDOMFactory('dl'),
49-
dt: createDOMFactory('dt'),
50-
em: createDOMFactory('em'),
51-
embed: createDOMFactory('embed'),
52-
fieldset: createDOMFactory('fieldset'),
53-
figcaption: createDOMFactory('figcaption'),
54-
figure: createDOMFactory('figure'),
55-
footer: createDOMFactory('footer'),
56-
form: createDOMFactory('form'),
57-
h1: createDOMFactory('h1'),
58-
h2: createDOMFactory('h2'),
59-
h3: createDOMFactory('h3'),
60-
h4: createDOMFactory('h4'),
61-
h5: createDOMFactory('h5'),
62-
h6: createDOMFactory('h6'),
63-
head: createDOMFactory('head'),
64-
header: createDOMFactory('header'),
65-
hgroup: createDOMFactory('hgroup'),
66-
hr: createDOMFactory('hr'),
67-
html: createDOMFactory('html'),
68-
i: createDOMFactory('i'),
69-
iframe: createDOMFactory('iframe'),
70-
img: createDOMFactory('img'),
71-
input: createDOMFactory('input'),
72-
ins: createDOMFactory('ins'),
73-
kbd: createDOMFactory('kbd'),
74-
keygen: createDOMFactory('keygen'),
75-
label: createDOMFactory('label'),
76-
legend: createDOMFactory('legend'),
77-
li: createDOMFactory('li'),
78-
link: createDOMFactory('link'),
79-
main: createDOMFactory('main'),
80-
map: createDOMFactory('map'),
81-
mark: createDOMFactory('mark'),
82-
menu: createDOMFactory('menu'),
83-
menuitem: createDOMFactory('menuitem'),
84-
meta: createDOMFactory('meta'),
85-
meter: createDOMFactory('meter'),
86-
nav: createDOMFactory('nav'),
87-
noscript: createDOMFactory('noscript'),
88-
object: createDOMFactory('object'),
89-
ol: createDOMFactory('ol'),
90-
optgroup: createDOMFactory('optgroup'),
91-
option: createDOMFactory('option'),
92-
output: createDOMFactory('output'),
93-
p: createDOMFactory('p'),
94-
param: createDOMFactory('param'),
95-
picture: createDOMFactory('picture'),
96-
pre: createDOMFactory('pre'),
97-
progress: createDOMFactory('progress'),
98-
q: createDOMFactory('q'),
99-
rp: createDOMFactory('rp'),
100-
rt: createDOMFactory('rt'),
101-
ruby: createDOMFactory('ruby'),
102-
s: createDOMFactory('s'),
103-
samp: createDOMFactory('samp'),
104-
script: createDOMFactory('script'),
105-
section: createDOMFactory('section'),
106-
select: createDOMFactory('select'),
107-
small: createDOMFactory('small'),
108-
source: createDOMFactory('source'),
109-
span: createDOMFactory('span'),
110-
strong: createDOMFactory('strong'),
111-
style: createDOMFactory('style'),
112-
sub: createDOMFactory('sub'),
113-
summary: createDOMFactory('summary'),
114-
sup: createDOMFactory('sup'),
115-
table: createDOMFactory('table'),
116-
tbody: createDOMFactory('tbody'),
117-
td: createDOMFactory('td'),
118-
textarea: createDOMFactory('textarea'),
119-
tfoot: createDOMFactory('tfoot'),
120-
th: createDOMFactory('th'),
121-
thead: createDOMFactory('thead'),
122-
time: createDOMFactory('time'),
123-
title: createDOMFactory('title'),
124-
tr: createDOMFactory('tr'),
125-
track: createDOMFactory('track'),
126-
u: createDOMFactory('u'),
127-
ul: createDOMFactory('ul'),
128-
var: createDOMFactory('var'),
129-
video: createDOMFactory('video'),
130-
wbr: createDOMFactory('wbr'),
12+
(function(f) {
13+
if (typeof exports === "object" && typeof module !== "undefined") {
14+
module.exports = f(require("react"));
15+
} else if (typeof define === "function" && define.amd) {
16+
define(["react"], f);
17+
} else {
18+
var g;
19+
if (typeof window !== "undefined") {
20+
g = window;
21+
} else if (typeof global !== "undefined") {
22+
g = global;
23+
} else if (typeof self !== "undefined") {
24+
g = self;
25+
} else {
26+
g = this;
27+
}
28+
29+
if (typeof g.React === "undefined") {
30+
throw Error("React module should be required before reactDOMFactories");
31+
}
32+
33+
g.ReactDOMFactories = f(g.React);
34+
}
35+
})(function(React) {
36+
/**
37+
* Create a factory that creates HTML tag elements.
38+
*/
39+
var createDOMFactory = React.createFactory;
40+
41+
/**
42+
* Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
43+
*/
44+
var ReactDOMFactories = {
45+
a: createDOMFactory('a'),
46+
abbr: createDOMFactory('abbr'),
47+
address: createDOMFactory('address'),
48+
area: createDOMFactory('area'),
49+
article: createDOMFactory('article'),
50+
aside: createDOMFactory('aside'),
51+
audio: createDOMFactory('audio'),
52+
b: createDOMFactory('b'),
53+
base: createDOMFactory('base'),
54+
bdi: createDOMFactory('bdi'),
55+
bdo: createDOMFactory('bdo'),
56+
big: createDOMFactory('big'),
57+
blockquote: createDOMFactory('blockquote'),
58+
body: createDOMFactory('body'),
59+
br: createDOMFactory('br'),
60+
button: createDOMFactory('button'),
61+
canvas: createDOMFactory('canvas'),
62+
caption: createDOMFactory('caption'),
63+
cite: createDOMFactory('cite'),
64+
code: createDOMFactory('code'),
65+
col: createDOMFactory('col'),
66+
colgroup: createDOMFactory('colgroup'),
67+
data: createDOMFactory('data'),
68+
datalist: createDOMFactory('datalist'),
69+
dd: createDOMFactory('dd'),
70+
del: createDOMFactory('del'),
71+
details: createDOMFactory('details'),
72+
dfn: createDOMFactory('dfn'),
73+
dialog: createDOMFactory('dialog'),
74+
div: createDOMFactory('div'),
75+
dl: createDOMFactory('dl'),
76+
dt: createDOMFactory('dt'),
77+
em: createDOMFactory('em'),
78+
embed: createDOMFactory('embed'),
79+
fieldset: createDOMFactory('fieldset'),
80+
figcaption: createDOMFactory('figcaption'),
81+
figure: createDOMFactory('figure'),
82+
footer: createDOMFactory('footer'),
83+
form: createDOMFactory('form'),
84+
h1: createDOMFactory('h1'),
85+
h2: createDOMFactory('h2'),
86+
h3: createDOMFactory('h3'),
87+
h4: createDOMFactory('h4'),
88+
h5: createDOMFactory('h5'),
89+
h6: createDOMFactory('h6'),
90+
head: createDOMFactory('head'),
91+
header: createDOMFactory('header'),
92+
hgroup: createDOMFactory('hgroup'),
93+
hr: createDOMFactory('hr'),
94+
html: createDOMFactory('html'),
95+
i: createDOMFactory('i'),
96+
iframe: createDOMFactory('iframe'),
97+
img: createDOMFactory('img'),
98+
input: createDOMFactory('input'),
99+
ins: createDOMFactory('ins'),
100+
kbd: createDOMFactory('kbd'),
101+
keygen: createDOMFactory('keygen'),
102+
label: createDOMFactory('label'),
103+
legend: createDOMFactory('legend'),
104+
li: createDOMFactory('li'),
105+
link: createDOMFactory('link'),
106+
main: createDOMFactory('main'),
107+
map: createDOMFactory('map'),
108+
mark: createDOMFactory('mark'),
109+
menu: createDOMFactory('menu'),
110+
menuitem: createDOMFactory('menuitem'),
111+
meta: createDOMFactory('meta'),
112+
meter: createDOMFactory('meter'),
113+
nav: createDOMFactory('nav'),
114+
noscript: createDOMFactory('noscript'),
115+
object: createDOMFactory('object'),
116+
ol: createDOMFactory('ol'),
117+
optgroup: createDOMFactory('optgroup'),
118+
option: createDOMFactory('option'),
119+
output: createDOMFactory('output'),
120+
p: createDOMFactory('p'),
121+
param: createDOMFactory('param'),
122+
picture: createDOMFactory('picture'),
123+
pre: createDOMFactory('pre'),
124+
progress: createDOMFactory('progress'),
125+
q: createDOMFactory('q'),
126+
rp: createDOMFactory('rp'),
127+
rt: createDOMFactory('rt'),
128+
ruby: createDOMFactory('ruby'),
129+
s: createDOMFactory('s'),
130+
samp: createDOMFactory('samp'),
131+
script: createDOMFactory('script'),
132+
section: createDOMFactory('section'),
133+
select: createDOMFactory('select'),
134+
small: createDOMFactory('small'),
135+
source: createDOMFactory('source'),
136+
span: createDOMFactory('span'),
137+
strong: createDOMFactory('strong'),
138+
style: createDOMFactory('style'),
139+
sub: createDOMFactory('sub'),
140+
summary: createDOMFactory('summary'),
141+
sup: createDOMFactory('sup'),
142+
table: createDOMFactory('table'),
143+
tbody: createDOMFactory('tbody'),
144+
td: createDOMFactory('td'),
145+
textarea: createDOMFactory('textarea'),
146+
tfoot: createDOMFactory('tfoot'),
147+
th: createDOMFactory('th'),
148+
thead: createDOMFactory('thead'),
149+
time: createDOMFactory('time'),
150+
title: createDOMFactory('title'),
151+
tr: createDOMFactory('tr'),
152+
track: createDOMFactory('track'),
153+
u: createDOMFactory('u'),
154+
ul: createDOMFactory('ul'),
155+
var: createDOMFactory('var'),
156+
video: createDOMFactory('video'),
157+
wbr: createDOMFactory('wbr'),
131158

132-
// SVG
133-
circle: createDOMFactory('circle'),
134-
clipPath: createDOMFactory('clipPath'),
135-
defs: createDOMFactory('defs'),
136-
ellipse: createDOMFactory('ellipse'),
137-
g: createDOMFactory('g'),
138-
image: createDOMFactory('image'),
139-
line: createDOMFactory('line'),
140-
linearGradient: createDOMFactory('linearGradient'),
141-
mask: createDOMFactory('mask'),
142-
path: createDOMFactory('path'),
143-
pattern: createDOMFactory('pattern'),
144-
polygon: createDOMFactory('polygon'),
145-
polyline: createDOMFactory('polyline'),
146-
radialGradient: createDOMFactory('radialGradient'),
147-
rect: createDOMFactory('rect'),
148-
stop: createDOMFactory('stop'),
149-
svg: createDOMFactory('svg'),
150-
text: createDOMFactory('text'),
151-
tspan: createDOMFactory('tspan'),
152-
};
159+
// SVG
160+
circle: createDOMFactory('circle'),
161+
clipPath: createDOMFactory('clipPath'),
162+
defs: createDOMFactory('defs'),
163+
ellipse: createDOMFactory('ellipse'),
164+
g: createDOMFactory('g'),
165+
image: createDOMFactory('image'),
166+
line: createDOMFactory('line'),
167+
linearGradient: createDOMFactory('linearGradient'),
168+
mask: createDOMFactory('mask'),
169+
path: createDOMFactory('path'),
170+
pattern: createDOMFactory('pattern'),
171+
polygon: createDOMFactory('polygon'),
172+
polyline: createDOMFactory('polyline'),
173+
radialGradient: createDOMFactory('radialGradient'),
174+
rect: createDOMFactory('rect'),
175+
stop: createDOMFactory('stop'),
176+
svg: createDOMFactory('svg'),
177+
text: createDOMFactory('text'),
178+
tspan: createDOMFactory('tspan'),
179+
};
153180

154-
module.exports = ReactDOMFactories;
181+
// due to wrapper and conditionals at the top, this will either become
182+
// `module.exports ReactDOMFactories` if that is available,
183+
// otherwise it will be defined via `define(["react"], ReactDOMFactories)`
184+
// if that is available,
185+
// otherwise it will be defined as global variable.
186+
return ReactDOMFactories;
187+
});
155188

0 commit comments

Comments
 (0)