Skip to content

Commit ee32629

Browse files
author
Ives van Hoorne
committed
Set default babel config for Vue
1 parent f8defb6 commit ee32629

File tree

8 files changed

+243
-214
lines changed

8 files changed

+243
-214
lines changed
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// @flow
2-
import { react, vue, svelte, preact } from 'common/templates';
2+
import { react, vue, svelte, preact, reactTs } from 'common/templates';
33

44
import reactPreset from './presets/create-react-app';
55
import reactTsPreset from './presets/create-react-app-typescript';
@@ -10,16 +10,16 @@ import sveltePreset from './presets/svelte';
1010
export default function getPreset(template: string) {
1111
switch (template) {
1212
case react.name:
13-
return reactPreset;
14-
case reactTsPreset.name:
15-
return reactTsPreset;
13+
return reactPreset();
14+
case reactTs.name:
15+
return reactTsPreset();
1616
case vue.name:
17-
return vuePreset;
17+
return vuePreset();
1818
case preact.name:
19-
return preactPreset;
19+
return preactPreset();
2020
case svelte.name:
21-
return sveltePreset;
21+
return sveltePreset();
2222
default:
23-
return reactPreset;
23+
return reactPreset();
2424
}
2525
}

packages/app/src/sandbox/eval/presets/create-react-app-typescript/index.js

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,33 @@ import jsonTranspiler from '../../transpilers/json';
66
import rawTranspiler from '../../transpilers/raw';
77
import babelTranspiler from '../../transpilers/babel';
88

9-
const preset = new Preset('create-react-app-typescript', [
10-
'web.ts',
11-
'ts',
12-
'json',
13-
'web.tsx',
14-
'tsx',
15-
'js',
16-
]);
17-
18-
preset.registerTranspiler(module => /\.css$/.test(module.path), [
19-
{ transpiler: stylesTranspiler },
20-
]);
21-
22-
preset.registerTranspiler(module => /\.tsx?$/.test(module.path), [
23-
{ transpiler: typescriptTranspiler },
24-
]);
25-
26-
preset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
27-
{ transpiler: babelTranspiler },
28-
]);
29-
30-
preset.registerTranspiler(module => /\.json$/.test(module.path), [
31-
{ transpiler: jsonTranspiler },
32-
]);
33-
34-
preset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
35-
36-
export default preset;
9+
export default function initialize() {
10+
const preset = new Preset('create-react-app-typescript', [
11+
'web.ts',
12+
'ts',
13+
'json',
14+
'web.tsx',
15+
'tsx',
16+
'js',
17+
]);
18+
19+
preset.registerTranspiler(module => /\.css$/.test(module.path), [
20+
{ transpiler: stylesTranspiler },
21+
]);
22+
23+
preset.registerTranspiler(module => /\.tsx?$/.test(module.path), [
24+
{ transpiler: typescriptTranspiler },
25+
]);
26+
27+
preset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
28+
{ transpiler: babelTranspiler },
29+
]);
30+
31+
preset.registerTranspiler(module => /\.json$/.test(module.path), [
32+
{ transpiler: jsonTranspiler },
33+
]);
34+
35+
preset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
36+
37+
return preset;
38+
}

packages/app/src/sandbox/eval/presets/create-react-app/index.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,27 @@ import babelTranspiler from '../../transpilers/babel';
55
import jsonTranspiler from '../../transpilers/json';
66
import rawTranspiler from '../../transpilers/raw';
77

8-
const preset = new Preset(
9-
'create-react-app',
10-
['web.js', 'js', 'json', 'web.jsx', 'jsx'],
11-
{},
12-
{ hasDotEnv: true }
13-
);
8+
export default function initialize() {
9+
const preset = new Preset(
10+
'create-react-app',
11+
['web.js', 'js', 'json', 'web.jsx', 'jsx'],
12+
{},
13+
{ hasDotEnv: true }
14+
);
1415

15-
preset.registerTranspiler(module => /\.css$/.test(module.path), [
16-
{ transpiler: stylesTranspiler },
17-
]);
16+
preset.registerTranspiler(module => /\.css$/.test(module.path), [
17+
{ transpiler: stylesTranspiler },
18+
]);
1819

19-
preset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
20-
{ transpiler: babelTranspiler },
21-
]);
20+
preset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
21+
{ transpiler: babelTranspiler },
22+
]);
2223

23-
preset.registerTranspiler(module => /\.json$/.test(module.path), [
24-
{ transpiler: jsonTranspiler },
25-
]);
24+
preset.registerTranspiler(module => /\.json$/.test(module.path), [
25+
{ transpiler: jsonTranspiler },
26+
]);
2627

27-
preset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
28+
preset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
2829

29-
export default preset;
30+
return preset;
31+
}

packages/app/src/sandbox/eval/presets/preact-cli/index.js

Lines changed: 76 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -10,89 +10,91 @@ import asyncTranspiler from './transpilers/async';
1010

1111
import Preset from '../';
1212

13-
const preactPreset = new Preset(
14-
'preact-cli',
15-
['js', 'jsx', 'ts', 'tsx', 'json', 'less', 'scss', 'sass', 'styl', 'css'],
16-
{
17-
preact$: 'preact',
18-
// preact-compat aliases for supporting React dependencies:
19-
react: 'preact-compat',
20-
'react-dom': 'preact-compat',
21-
'create-react-class': 'preact-compat/lib/create-react-class',
22-
'react-addons-css-transition-group': 'preact-css-transition-group',
23-
}
24-
);
13+
export default function initialize() {
14+
const preactPreset = new Preset(
15+
'preact-cli',
16+
['js', 'jsx', 'ts', 'tsx', 'json', 'less', 'scss', 'sass', 'styl', 'css'],
17+
{
18+
preact$: 'preact',
19+
// preact-compat aliases for supporting React dependencies:
20+
react: 'preact-compat',
21+
'react-dom': 'preact-compat',
22+
'create-react-class': 'preact-compat/lib/create-react-class',
23+
'react-addons-css-transition-group': 'preact-css-transition-group',
24+
}
25+
);
2526

26-
preactPreset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
27-
{
28-
transpiler: babelTranspiler,
29-
options: {
30-
presets: [
31-
// babel preset env starts with latest, then drops rules.
32-
// We don't have env, so we just support latest
33-
'latest',
34-
'stage-1',
35-
],
36-
plugins: [
37-
'transform-object-assign',
38-
'transform-decorators-legacy',
39-
['transform-react-jsx', { pragma: 'h' }],
40-
[
41-
'jsx-pragmatic',
42-
{
43-
module: 'preact',
44-
export: 'h',
45-
import: 'h',
46-
},
27+
preactPreset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
28+
{
29+
transpiler: babelTranspiler,
30+
options: {
31+
presets: [
32+
// babel preset env starts with latest, then drops rules.
33+
// We don't have env, so we just support latest
34+
'latest',
35+
'stage-1',
36+
],
37+
plugins: [
38+
'transform-object-assign',
39+
'transform-decorators-legacy',
40+
['transform-react-jsx', { pragma: 'h' }],
41+
[
42+
'jsx-pragmatic',
43+
{
44+
module: 'preact',
45+
export: 'h',
46+
import: 'h',
47+
},
48+
],
4749
],
48-
],
50+
},
4951
},
50-
},
51-
]);
52+
]);
5253

53-
// For these routes we need to enable css modules
54-
const cssModulesPaths = [
55-
'/src/components',
56-
'/components',
57-
'/src/routes',
58-
'/routes',
59-
];
54+
// For these routes we need to enable css modules
55+
const cssModulesPaths = [
56+
'/src/components',
57+
'/components',
58+
'/src/routes',
59+
'/routes',
60+
];
6061

61-
const cssModulesRegex = extension =>
62-
new RegExp(`^(${cssModulesPaths.join('|')})\\/.*\\.${extension}$`);
62+
const cssModulesRegex = extension =>
63+
new RegExp(`^(${cssModulesPaths.join('|')})\\/.*\\.${extension}$`);
6364

64-
const cssTypes = {
65-
css: [],
66-
's[a|c]ss': [{ transpiler: sassTranspiler }],
67-
less: [{ transpiler: lessTranspiler }],
68-
styl: [{ transpiler: stylusTranspiler }],
69-
};
65+
const cssTypes = {
66+
css: [],
67+
's[a|c]ss': [{ transpiler: sassTranspiler }],
68+
less: [{ transpiler: lessTranspiler }],
69+
styl: [{ transpiler: stylusTranspiler }],
70+
};
7071

71-
Object.keys(cssTypes).forEach(cssType => {
72-
preactPreset.registerTranspiler(
73-
module => cssModulesRegex(cssType).test(module.path),
74-
[
75-
...cssTypes[cssType],
76-
{ transpiler: stylesTranspiler, options: { module: true } },
77-
]
78-
);
72+
Object.keys(cssTypes).forEach(cssType => {
73+
preactPreset.registerTranspiler(
74+
module => cssModulesRegex(cssType).test(module.path),
75+
[
76+
...cssTypes[cssType],
77+
{ transpiler: stylesTranspiler, options: { module: true } },
78+
]
79+
);
7980

80-
preactPreset.registerTranspiler(
81-
module => new RegExp(`\\.${cssType}$`).test(module.path),
82-
[...cssTypes[cssType], { transpiler: stylesTranspiler }]
83-
);
84-
});
81+
preactPreset.registerTranspiler(
82+
module => new RegExp(`\\.${cssType}$`).test(module.path),
83+
[...cssTypes[cssType], { transpiler: stylesTranspiler }]
84+
);
85+
});
8586

86-
preactPreset.registerTranspiler(module => /\.json/.test(module.path), [
87-
{ transpiler: jsonTranspiler },
88-
]);
87+
preactPreset.registerTranspiler(module => /\.json/.test(module.path), [
88+
{ transpiler: jsonTranspiler },
89+
]);
8990

90-
// Support for !async statements
91-
preactPreset.registerTranspiler(
92-
() => false /* never load without explicit statement */,
93-
[{ transpiler: asyncTranspiler }]
94-
);
91+
// Support for !async statements
92+
preactPreset.registerTranspiler(
93+
() => false /* never load without explicit statement */,
94+
[{ transpiler: asyncTranspiler }]
95+
);
9596

96-
preactPreset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
97+
preactPreset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
9798

98-
export default preactPreset;
99+
return preactPreset;
100+
}

packages/app/src/sandbox/eval/presets/svelte/index.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,23 @@ import svelteTranspiler from '../../transpilers/svelte';
55

66
import Preset from '../';
77

8-
const sveltePreset = new Preset('svelte', ['js', 'jsx'], {});
8+
export default function initialize() {
9+
const sveltePreset = new Preset('svelte', ['js', 'jsx'], {});
910

10-
sveltePreset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
11-
{ transpiler: babelTranspiler },
12-
]);
11+
sveltePreset.registerTranspiler(module => /\.jsx?$/.test(module.path), [
12+
{ transpiler: babelTranspiler },
13+
]);
1314

14-
sveltePreset.registerTranspiler(module => /\.html$/.test(module.path), [
15-
{ transpiler: svelteTranspiler },
16-
{ transpiler: babelTranspiler },
17-
]);
15+
sveltePreset.registerTranspiler(module => /\.html$/.test(module.path), [
16+
{ transpiler: svelteTranspiler },
17+
{ transpiler: babelTranspiler },
18+
]);
1819

19-
sveltePreset.registerTranspiler(module => /\.json/.test(module.path), [
20-
{ transpiler: jsonTranspiler },
21-
]);
20+
sveltePreset.registerTranspiler(module => /\.json/.test(module.path), [
21+
{ transpiler: jsonTranspiler },
22+
]);
2223

23-
sveltePreset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
24+
sveltePreset.registerTranspiler(() => true, [{ transpiler: rawTranspiler }]);
2425

25-
export default sveltePreset;
26+
return sveltePreset;
27+
}

0 commit comments

Comments
 (0)