Exemple #1
0
module.exports = function(source){

  var result;
  var transform = '';

  this.cacheable && this.cacheable();

  var filepath = loaderUtils.getRemainingRequest(this).replace(/^!/, "");
  var query = loaderUtils.parseQuery(this.query);

  if(query.split){
    var chunks = source.split(/\n*?\/\/ react: (\w+)\s*\n/);
    chunks.shift();
    if(!chunks.length) return single();

    for(var i=0; i < chunks.length-1; i += 2){
      transform += "exports['" + chunks[i] + "'] = " + jade.compile(chunks[i+1], {filename: filepath}).toString() + ";\n";
    }
    result = transform;
  } else {
    result = transform + "module.exports= " + jade.compile(source, {filename: filepath}).toString();
  }

  // hoist requires
  result = uglify.parse(result);
  result.figure_out_scope();
  result = result.transform(new Hoister());
  result = result.print_to_string({
    beautify: true,
    comments: true,
    indent_level: 2
  });
  return "var React = require('react');\n" + result;

}
Exemple #2
0
module.exports = function(source){
  
  var transform = "var React = require('react');\n";
  
  this.cacheable && this.cacheable();
  
  var filepath = loaderUtils.getRemainingRequest(this).replace(/^!/, "");
  var query = loaderUtils.parseQuery(this.query);
  
  if(query.split){
    var chunks = source.split(/\n*?\/\/ react: (\w+)\s*\n/);
    chunks.shift();
    if(!chunks.length) return single();

    for(var i=0; i < chunks.length-1; i += 2){
      transform += "exports['" + chunks[i] + "'] = " + jade.compile(chunks[i+1], {filename: filepath}).toString() + ";\n";
    }
    return transform;
  }
  
  return single();
  
  function single(){
    return transform + "module.exports= " + jade.compile(source, {filename: filepath}).toString();
  }
  
}
Exemple #3
0
'use strict';

var assert = require('assert');
var React = require('react');
var ReactDOM= require('react-dom/server');
var jade = require('react-jade');

var test = /^\<div id\=\"container\".*\>Some Text\<\/div\>$/;

var templateA = jade`
#container Some Text
`;
assert(test.test(ReactDOM.renderToString(templateA())));

var templateB = jade.compile('#container Some Text');
assert(test.test(ReactDOM.renderToString(templateB())));
Exemple #4
0
 function single(){
   return transform + "module.exports= " + jade.compile(source, {filename: filepath}).toString();
 }