Skip to content

Commit 3e35f32

Browse files
authored
Merge pull request #528 from data-driven-forms/clean-up-transform-plugins
Clean up babel transform plugin setup.
2 parents 6cb6ee5 + 7ae0f62 commit 3e35f32

File tree

1 file changed

+78
-178
lines changed

1 file changed

+78
-178
lines changed

packages/common/babel.config.js

Lines changed: 78 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ const createSuirCJSTransform = (env = 'commonjs') => [
4949
} else {
5050
throw new Error(`File with importName ${importName} does not exist`);
5151
}
52-
5352
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
5453
res = res.replace(/^\//, '');
5554
return res;
@@ -61,204 +60,105 @@ const createSuirCJSTransform = (env = 'commonjs') => [
6160
`semantic-ui-react-${env}`
6261
];
6362

64-
const createMuiLabTransform = (env) => [
63+
const createMuiTransform = (env) => [
6564
'transform-imports',
6665
{
6766
'@material-ui/lab': {
6867
transform: (importName) => (env ? `@material-ui/lab/${env}/${importName}` : `@material-ui/lab/${importName}`),
6968
preventFullImport: false,
7069
skipDefaultConversion: false
70+
},
71+
'@material-ui/core': {
72+
transform: (importName) => env ? `@material-ui/core/${env}/${importName}` : `@material-ui/core/${importName}`,
73+
preventFullImport: false,
74+
skipDefaultConversion: false
7175
}
7276
},
73-
`MUI-LAB-${env || 'CJS'}`
77+
`MUI-${env || 'commonjs'}`
7478
];
7579

80+
const createPfReactTransform = (env) => [
81+
'transform-imports',
82+
{
83+
'@patternfly/react-core': {
84+
transform: (importName) => {
85+
let res;
86+
const files = glob.sync(
87+
path.resolve(__dirname, `../../node_modules/@patternfly/react-core/dist/${env}/**/${mapper[importName] || importName}.js`)
88+
);
89+
if (files.length > 0) {
90+
res = files[0];
91+
} else {
92+
throw new Error(`File with importName ${importName} does not exist`);
93+
}
94+
95+
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
96+
res = res.replace(/^\//, '');
97+
return res;
98+
},
99+
preventFullImport: false,
100+
skipDefaultConversion: true
101+
},
102+
'@patternfly/react-icons': {
103+
transform: (importName) =>
104+
`@patternfly/react-icons/dist/${env}/icons/${importName
105+
.split(/(?=[A-Z])/)
106+
.join('-')
107+
.toLowerCase()}`,
108+
preventFullImport: true
109+
},
110+
'patternfly-react': {
111+
transform: (importName) => {
112+
let res;
113+
const files = glob.sync(path.resolve(__dirname, `../../node_modules/patternfly-react/dist/${env}/**/${importName}.js`));
114+
if (files.length > 0) {
115+
res = files[0];
116+
} else {
117+
throw new Error(`File with importName ${importName} does not exist`);
118+
}
119+
120+
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
121+
res = res.replace(/^\//, '');
122+
return res;
123+
},
124+
preventFullImport: false,
125+
skipDefaultConversion: false
126+
}
127+
},
128+
`pf-react-${env}`
129+
]
130+
131+
const createBluePrintTransform = (env) => [
132+
'transform-imports',
133+
{
134+
'@blueprintjs/core': {
135+
transform: (importName) =>
136+
`@blueprintjs/core/lib/${env}/${blueprintMapper[importName] ||
137+
`components/${pascalToKebabCase(importName)}/${pascaltoCamelCase(importName)}`}.js`,
138+
preventFullImport: false,
139+
skipDefaultConversion: true
140+
}
141+
},
142+
`BLUEPRINT-${env}`
143+
]
144+
76145
module.exports = {
77146
extends: '../../babel.config.js',
78147
env: {
79148
cjs: {
80149
plugins: [
81150
createSuirCJSTransform('commonjs'),
82-
createMuiLabTransform(),
83-
[
84-
'transform-imports',
85-
{
86-
'@patternfly/react-core': {
87-
transform: (importName) => {
88-
let res;
89-
const files = glob.sync(
90-
path.resolve(__dirname, `../../node_modules/@patternfly/react-core/dist/js/**/${mapper[importName] || importName}.js`)
91-
);
92-
if (files.length > 0) {
93-
res = files[0];
94-
} else {
95-
throw new Error(`File with importName ${importName} does not exist`);
96-
}
97-
98-
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
99-
res = res.replace(/^\//, '');
100-
return res;
101-
},
102-
preventFullImport: false,
103-
skipDefaultConversion: true
104-
}
105-
},
106-
'react-core-CJS'
107-
],
108-
[
109-
'transform-imports',
110-
{
111-
'@patternfly/react-icons': {
112-
transform: (importName) =>
113-
`@patternfly/react-icons/dist/js/icons/${importName
114-
.split(/(?=[A-Z])/)
115-
.join('-')
116-
.toLowerCase()}`,
117-
preventFullImport: true
118-
}
119-
},
120-
'react-icons-CJS'
121-
],
122-
[
123-
'transform-imports',
124-
{
125-
'patternfly-react': {
126-
transform: (importName) => {
127-
let res;
128-
const files = glob.sync(path.resolve(__dirname, `../../node_modules/patternfly-react/dist/js/**/${importName}.js`));
129-
if (files.length > 0) {
130-
res = files[0];
131-
} else {
132-
throw new Error(`File with importName ${importName} does not exist`);
133-
}
134-
135-
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
136-
res = res.replace(/^\//, '');
137-
return res;
138-
},
139-
preventFullImport: false,
140-
skipDefaultConversion: false
141-
}
142-
},
143-
'pf3-react-CJS'
144-
],
145-
[
146-
'transform-imports',
147-
{
148-
'@material-ui/core': {
149-
transform: (importName) => `@material-ui/core/${importName}`,
150-
preventFullImport: false,
151-
skipDefaultConversion: false
152-
}
153-
},
154-
'MUI-CJS'
155-
],
156-
[
157-
'transform-imports',
158-
{
159-
'@blueprintjs/core': {
160-
transform: (importName) =>
161-
`@blueprintjs/core/lib/cjs/${blueprintMapper[importName] ||
162-
`components/${pascalToKebabCase(importName)}/${pascaltoCamelCase(importName)}`}.js`,
163-
preventFullImport: false,
164-
skipDefaultConversion: true
165-
}
166-
},
167-
'BLUEPRINT-CJS'
168-
]
151+
createMuiTransform(),
152+
createPfReactTransform('js'),
153+
createBluePrintTransform('cjs')
169154
]
170155
},
171156
esm: {
172157
plugins: [
173158
createSuirCJSTransform('es'),
174-
createMuiLabTransform('esm'),
175-
[
176-
'transform-imports',
177-
{
178-
'@patternfly/react-core': {
179-
transform: (importName) => {
180-
let res;
181-
const files = glob.sync(
182-
path.resolve(__dirname, `../../node_modules/@patternfly/react-core/dist/esm/**/${mapper[importName] || importName}.js`)
183-
);
184-
if (files.length > 0) {
185-
res = files[0];
186-
} else {
187-
throw new Error(`File with importName ${importName} does not exist`);
188-
}
189-
190-
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
191-
res = res.replace(/^\//, '');
192-
return res;
193-
},
194-
preventFullImport: false,
195-
skipDefaultConversion: true
196-
}
197-
},
198-
'react-core-ESM'
199-
],
200-
201-
[
202-
'transform-imports',
203-
{
204-
'@patternfly/react-icons': {
205-
transform: (importName) =>
206-
`@patternfly/react-icons/dist/esm/icons/${importName
207-
.split(/(?=[A-Z])/)
208-
.join('-')
209-
.toLowerCase()}`,
210-
preventFullImport: true
211-
}
212-
},
213-
'react-icons-ESM'
214-
],
215-
[
216-
'transform-imports',
217-
{
218-
'patternfly-react': {
219-
transform: (importName) => {
220-
let res;
221-
const files = glob.sync(path.resolve(__dirname, `../../node_modules/patternfly-react/dist/esm/**/${importName}.js`));
222-
if (files.length > 0) {
223-
res = files[0];
224-
} else {
225-
throw new Error(`File with importName ${importName} does not exist`);
226-
}
227-
228-
res = res.replace(path.resolve(__dirname, '../../node_modules/'), '');
229-
res = res.replace(/^\//, '');
230-
return res;
231-
},
232-
preventFullImport: false,
233-
skipDefaultConversion: false
234-
}
235-
},
236-
'pf3-react-ESM'
237-
],
238-
[
239-
'transform-imports',
240-
{
241-
'@material-ui/core': {
242-
transform: (importName) => `@material-ui/core/esm/${importName}`,
243-
preventFullImport: false,
244-
skipDefaultConversion: false
245-
}
246-
},
247-
'MUI-ESM'
248-
],
249-
[
250-
'transform-imports',
251-
{
252-
'@blueprintjs/core': {
253-
transform: (importName) =>
254-
`@blueprintjs/core/lib/esm/${blueprintMapper[importName] ||
255-
`components/${pascalToKebabCase(importName)}/${pascaltoCamelCase(importName)}`}.js`,
256-
preventFullImport: false,
257-
skipDefaultConversion: true
258-
}
259-
},
260-
'BLUEPRINT-CJS'
261-
]
159+
createMuiTransform('esm'),
160+
createPfReactTransform('esm'),
161+
createBluePrintTransform('esm')
262162
]
263163
}
264164
}

0 commit comments

Comments
 (0)