1515 */
1616
1717import process from 'node:process' ;
18- import type { LWCServer , ServerConfig , Workspace } from '@lwc/lwc- dev-server ' ;
18+ import type { LWCServer , ServerConfig , Workspace } from '@lwc/sfdx-local- dev-dist ' ;
1919import { Connection , Lifecycle , Logger , SfProject } from '@salesforce/core' ;
2020import { SSLCertificateData } from '@salesforce/lwc-dev-mobile-core' ;
2121import { glob } from 'glob' ;
22- import { loadLwcDevServer } from '../shared/dependencyLoader.js' ;
22+ import { loadLwcModule } from '../shared/dependencyLoader.js' ;
2323import {
2424 ConfigUtils ,
2525 LOCAL_DEV_SERVER_DEFAULT_HTTP_PORT ,
@@ -50,25 +50,30 @@ async function createLWCServerConfig(
5050 httpsPort : LOCAL_DEV_SERVER_DEFAULT_HTTP_PORT + 1 ,
5151 } ;
5252
53+ const resolvedWorkspace : Workspace = ( workspace ??
54+ ( await ConfigUtils . getLocalDevServerWorkspace ( ) ) ??
55+ LOCAL_DEV_SERVER_DEFAULT_WORKSPACE ) as Workspace ;
56+
5357 const serverConfig : ServerConfig = {
5458 rootDir,
5559 // use custom port if any is provided, or fetch from config file (if any), otherwise use the default port
5660 port : ports . httpPort ,
5761 paths : namespacePaths ,
5862 // use custom workspace if any is provided, or fetch from config file (if any), otherwise use the default workspace
59- workspace : workspace ?? ( await ConfigUtils . getLocalDevServerWorkspace ( ) ) ?? LOCAL_DEV_SERVER_DEFAULT_WORKSPACE ,
63+ workspace : resolvedWorkspace ,
6064 identityToken : token ,
61- lifecycle : Lifecycle . getInstance ( ) ,
65+ lifecycle : Lifecycle . getInstance ( ) as unknown as ServerConfig [ 'lifecycle' ] ,
6266 clientType,
6367 namespace : typeof namespace === 'string' && namespace . trim ( ) . length > 0 ? namespace . trim ( ) : undefined ,
6468 } ;
6569
6670 if ( certData ?. pemCertificate && certData . pemPrivateKey ) {
67- serverConfig . https = {
71+ const httpsConfig : ServerConfig [ ' https' ] = {
6872 cert : certData . pemCertificate ,
6973 key : certData . pemPrivateKey ,
7074 port : ports . httpsPort ,
7175 } ;
76+ serverConfig . https = httpsConfig ;
7277 }
7378
7479 return serverConfig ;
@@ -87,18 +92,25 @@ export async function startLWCServer(
8792 const orgApiVersion = connection . version ;
8893 logger . trace ( `Starting LWC server for org API version: ${ orgApiVersion } ` ) ;
8994
90- const lwcDevServerModule = await loadLwcDevServer ( orgApiVersion ) ;
95+ const lwcDevServerModule = await loadLwcModule ( orgApiVersion ) ;
9196
92- const config = await createLWCServerConfig ( rootDir , token , clientType , serverPorts , certData , workspace ) ;
97+ const config : ServerConfig = await createLWCServerConfig (
98+ rootDir ,
99+ token ,
100+ clientType ,
101+ serverPorts ,
102+ certData ,
103+ workspace ,
104+ ) ;
93105
94106 logger . trace ( `Starting LWC Dev Server with config: ${ JSON . stringify ( config ) } ` ) ;
95- let lwcDevServer = ( await lwcDevServerModule . startLwcDevServer ( config , logger ) ) as LWCServer | null ;
107+ const lwcDevServerResult = await lwcDevServerModule . startLwcDevServer ( config , logger ) ;
108+ const lwcDevServer = lwcDevServerResult as LWCServer ;
96109
97110 const cleanup = ( ) : void => {
98111 if ( lwcDevServer ) {
99112 logger . trace ( 'Stopping LWC Dev Server' ) ;
100113 lwcDevServer . stopServer ( ) ;
101- lwcDevServer = null ;
102114 }
103115 } ;
104116
@@ -108,5 +120,5 @@ export async function startLWCServer(
108120 'SIGTERM' , // when a user kills the process
109121 ] . forEach ( ( signal ) => process . on ( signal , cleanup ) ) ;
110122
111- return lwcDevServer as LWCServer ;
123+ return lwcDevServer ;
112124}
0 commit comments