Skip to content
This repository was archived by the owner on Oct 1, 2020. It is now read-only.

Commit 24d7f96

Browse files
committed
add support for cjsx
1 parent 5d03b04 commit 24d7f96

File tree

4 files changed

+39
-7
lines changed

4 files changed

+39
-7
lines changed

src/rig-mime-types.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ import mimeTypes from 'mime-types';
33

44
const typesToRig = {
55
'text/typescript': 'ts',
6-
'text/jade': 'jade'
6+
'text/jade': 'jade',
7+
'text/cjsx': 'cjsx'
78
};
89

910

1011
/**
1112
* Adds MIME types for types not in the mime-types package
12-
*
13+
*
1314
* @private
14-
*/
15+
*/
1516
export function init() {
1617
_.each(Object.keys(typesToRig), (type) => {
1718
let ext = typesToRig[type];

test/compiler-valid-invalid.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,17 @@ import mimeTypes from 'mime-types';
88

99
const pfs = pify(fs);
1010

11+
const d = require('debug')('electron-compile:compiler-valid-invalid');
12+
1113
let allFixtureFiles = _.filter(
1214
fs.readdirSync(path.join(__dirname, '..', 'test', 'fixtures')),
1315
(x) => x.match(/invalid\./i));
14-
16+
1517
let mimeTypesToTest = _.reduce(allFixtureFiles, (acc,x) => {
1618
if (global.compilersByMimeType[mimeTypes.lookup(x) || '__nope__']) {
1719
acc.push(mimeTypes.lookup(x));
1820
}
19-
21+
2022
return acc;
2123
}, []);
2224

@@ -27,7 +29,7 @@ const expectedMimeTypeSpecialCases = {
2729

2830
for (let mimeType of mimeTypesToTest) {
2931
let klass = global.compilersByMimeType[mimeType];
30-
32+
3133
describe(`The ${klass.name} class for ${mimeType}`, function() {
3234
beforeEach(function() {
3335
this.fixture = new klass();
@@ -47,7 +49,8 @@ for (let mimeType of mimeTypesToTest) {
4749

4850
let result = await this.fixture.compile(source, input, ctx);
4951
let expectedMimeType = expectedMimeTypeSpecialCases[mimeType] || 'application/javascript';
50-
52+
53+
d(result.code);
5154
expect(result.mimeType).to.equal(expectedMimeType);
5255

5356
// NB: Jade doesn't do source maps

test/fixtures/invalid.cjsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# @cjsx React.DOM
2+
3+
React = require('react')
4+
5+
Car = React.createClass
6+
render: ->
7+
Vehicle doors={$$$} locked={isLocked()} data-colour="red" on>
8+
<Parts.FrontSeat
9+
<Parts.BackSeat
10+
<p className="seat">Which seat can I take? {@props?.seat or 'none'}</p>
11+
</Vehicle>
12+
13+
React.renderComponent <Car seat="front, obvs" />,
14+
document.getElementById 'container'

test/fixtures/valid.cjsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# @cjsx React.DOM
2+
3+
React = require('react')
4+
5+
Car = React.createClass
6+
render: ->
7+
<Vehicle doors={4} locked={isLocked()} data-colour="red" on>
8+
<Parts.FrontSeat />
9+
<Parts.BackSeat />
10+
<p className="seat">Which seat can I take? {@props?.seat or 'none'}</p>
11+
</Vehicle>
12+
13+
React.renderComponent <Car seat="front, obvs" />,
14+
document.getElementById 'container'

0 commit comments

Comments
 (0)