1
- const glob = require ( 'glob' ) ;
2
- const fs = require ( 'fs-extra' ) ;
3
- const path = require ( 'path' ) ;
4
- const postcss = require ( 'postcss' ) ;
5
- const postcssConfig = require ( '../postcss.config' ) ;
6
- const filesystemTools = require ( 'gluegun/filesystem' ) ;
7
- const stringTools = require ( 'gluegun/strings' ) ;
8
- const printTools = require ( 'gluegun/print' ) ;
9
- const commandLineArgs = require ( 'command-line-args' ) ;
10
- const ora = require ( 'ora' ) ;
11
- const compileCommand = require ( '@builder.io/mitosis-cli/dist/commands/compile' ) ;
1
+ import compileCommand from '@builder.io/mitosis-cli/dist/commands/compile.js' ;
2
+ import commandLineArgs from 'command-line-args' ;
3
+ import fs from 'fs-extra' ;
4
+ import glob from 'glob' ;
5
+ import filesystemTools from 'gluegun/filesystem.js' ;
6
+ import printTools from 'gluegun/print.js' ;
7
+ import stringTools from 'gluegun/strings.js' ;
8
+ import ora from 'ora' ;
9
+ import path from 'path' ;
10
+ import postcss from 'postcss' ;
12
11
13
12
const DEFAULT_OPTIONS = {
14
13
elements : 'src/**/*.lite.tsx' ,
@@ -17,6 +16,7 @@ const DEFAULT_OPTIONS = {
17
16
target : '' ,
18
17
extension : '' ,
19
18
state : '' ,
19
+ api : '' ,
20
20
styles : '' ,
21
21
customReplace : ( outFile , isFirstCompilation ) => null
22
22
} ;
@@ -85,7 +85,9 @@ async function compile(defaultOptions) {
85
85
. map ( ( fileName ) => {
86
86
const file = path . parse ( fileName ) ;
87
87
const name = file . name . replace ( '.lite' , '' ) ;
88
- return `export { default as ${ pascalName ( name ) } } from './${ file . dir . replace ( 'src/' , '' ) } ';` ;
88
+ return `export { default as ${ pascalName ( name ) } } from './${ file . dir
89
+ . replace ( / \\ / g, '/' )
90
+ . replace ( 'src/' , '' ) } ';`;
89
91
} )
90
92
. join ( '\n' ) ;
91
93
}
@@ -94,6 +96,7 @@ async function compile(defaultOptions) {
94
96
const indexResult = indexData
95
97
// Export only needed components
96
98
. replace ( / ( \/ \/ I n i t C o m p o n e n t s ) ( .+ ?) ( \/ \/ E n d C o m p o n e n t s ) / s, `$1\n${ fileExports } \n$3` )
99
+ // Set the current platform
97
100
. replace ( / P l a t f o r m .D e f a u l t / g, `Platform.${ pascalName ( options . target ) } ` ) ;
98
101
99
102
fs . writeFileSync ( `${ outPath } /src/index.ts` , indexResult , 'utf8' ) ;
@@ -103,13 +106,17 @@ async function compile(defaultOptions) {
103
106
const file = path . parse ( filepath ) ;
104
107
const outFile = `${ outPath } /${ file . dir } /${ file . name . replace ( '.lite' , '' ) } .${ options . extension } ` ;
105
108
109
+ let to = options . target === 'webcomponents' ? 'webcomponent' : options . target ;
110
+ to = to === 'vue' ? 'vue3' : to ;
111
+
106
112
await compileCommand . run ( {
107
113
parameters : {
108
114
options : {
109
115
from : 'mitosis' ,
110
- to : options . target === 'webcomponents' ? 'webcomponent' : options . target ,
116
+ to,
111
117
out : outFile ,
112
118
force : true ,
119
+ api : options . api ,
113
120
state : options . state ,
114
121
styles : options . styles
115
122
} ,
@@ -135,6 +142,8 @@ async function compile(defaultOptions) {
135
142
}
136
143
137
144
async function compileCssFileForOutputSrc ( outFile ) {
145
+ const postcssConfig = ( await import ( '../postcss.config.cjs' ) ) . default ;
146
+
138
147
const name = outFile . replace ( / \. .* / , '.css' ) ;
139
148
const data = fs . readFileSync ( name , 'utf8' ) ;
140
149
const result = await postcss ( postcssConfig . plugins ) . process ( data , { from : name , to : name } ) ;
@@ -144,19 +153,21 @@ async function compile(defaultOptions) {
144
153
for ( const fileName of files ) {
145
154
const file = path . parse ( fileName ) ;
146
155
const isFirstCompilation = ! fs . existsSync ( `${ outPath } /src` ) || options . isDev ;
156
+ const name = file . name . replace ( '.lite' , '' ) ;
157
+ const namePascal = pascalName ( name ) ;
147
158
148
159
spinner . text = fileName ;
149
160
150
161
copyBasicFilesOnFirstCompilation ( isFirstCompilation , fileName ) ;
151
162
const { outFile } = await compileMitosisComponent ( fileName ) ;
152
163
replacePropertiesFromCompiledFiles ( outFile ) ;
153
- options . customReplace ( { file, outFile, outPath, isFirstCompilation } ) ;
164
+ options . customReplace ( { name , pascalName : namePascal , file, outFile, outPath, isFirstCompilation } ) ;
154
165
await compileCssFileForOutputSrc ( outFile ) ;
155
166
156
167
spinner . stop ( ) ;
157
168
}
158
169
}
159
170
160
- module . exports = {
171
+ export default {
161
172
compile
162
173
} ;
0 commit comments