1 | var loaderUtils = require("loader-utils");
|
2 |
|
3 | module.exports = function() {};
|
4 | module.exports.pitch = function(remainingRequest) {
|
5 | this.cacheable && this.cacheable();
|
6 | var query = loaderUtils.parseQuery(this.query);
|
7 | var moduleRequest = "!!" + remainingRequest;
|
8 |
|
9 | return [
|
10 | 'var React = require("react");',
|
11 | 'var component;',
|
12 | 'var desc = {',
|
13 | ' loadComponent: function(callback) {',
|
14 | ' if(!component) {',
|
15 | ' require.ensure([], function() {',
|
16 | ' component = require(' + loaderUtils.stringifyRequest(this, moduleRequest) + ');',
|
17 | ' if(callback) callback(component);',
|
18 | ' }' + (query.name ? ', ' + JSON.stringify(query.name) : '') + ');',
|
19 | ' } else if(callback) callback(component);',
|
20 | ' return component;',
|
21 | ' },',
|
22 | '};',
|
23 | 'var mixinReactProxy = require(' + loaderUtils.stringifyRequest(this, require.resolve("./mixinReactProxy")) + ');',
|
24 | 'mixinReactProxy(React, desc);',
|
25 | 'module.exports = React.createClass(desc);',
|
26 | 'module.exports.Mixin = desc;'
|
27 | ].join("\n");
|
28 | };
|