forked from quasarframework/quasar
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjs-transform.js
More file actions
executable file
·30 lines (25 loc) · 900 Bytes
/
js-transform.js
File metadata and controls
executable file
·30 lines (25 loc) · 900 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import importTransformation from 'quasar/dist/transforms/import-transformation.js'
export const importQuasarRegex = /import\s*\{([\w,\s]+)\}\s*from\s*['"]{1}quasar['"]{1};?/
export const jsTransformRegex = /\.[jt]sx?$/
export function jsTransform (code) {
return code.replace(
importQuasarRegex,
(_, match) => match.split(',')
.map(identifier => {
const id = identifier.trim()
// might be an empty entry like below
// (notice useQuasar is followed by a comma)
// import { QTable, useQuasar, } from 'quasar'
if (id === '') {
return ''
}
const data = id.split(' as ')
const importName = data[0].trim()
const importAs = data[1] !== void 0
? data[1].trim()
: importName
return `import ${importAs} from '${importTransformation(importName)}';`
})
.join('')
)
}