1313 * See the License for the specific language governing permissions and
1414 * limitations under the License.
1515 */
16- import fs from 'node:fs' ;
1716import { SfCommand , Flags } from '@salesforce/sf-plugins-core' ;
1817import { Connection , Logger , Messages , SfProject } from '@salesforce/core' ;
1918import { Platform } from '@salesforce/lwc-dev-mobile-core' ;
20- import { expDev , SitesLocalDevOptions , setupDev } from '@lwrjs/api' ;
2119import open from 'open' ;
2220import { PromptUtils } from '../../../shared/promptUtils.js' ;
2321import { ExperienceSite } from '../../../shared/experience/expSite.js' ;
@@ -41,18 +39,6 @@ export default class LightningDevSite extends SfCommand<void> {
4139 char : 'n' ,
4240 } ) ,
4341 'target-org' : Flags . requiredOrg ( ) ,
44- 'get-latest' : Flags . boolean ( {
45- summary : messages . getMessage ( 'flags.get-latest.summary' ) ,
46- char : 'l' ,
47- } ) ,
48- guest : Flags . boolean ( {
49- summary : messages . getMessage ( 'flags.guest.summary' ) ,
50- default : false ,
51- } ) ,
52- ssr : Flags . boolean ( {
53- summary : messages . getMessage ( 'flags.ssr.summary' ) ,
54- default : false ,
55- } ) ,
5642 'api-version' : Flags . orgApiVersion ( ) ,
5743 } ;
5844
@@ -61,10 +47,7 @@ export default class LightningDevSite extends SfCommand<void> {
6147
6248 try {
6349 const org = flags [ 'target-org' ] ;
64- const getLatest = flags [ 'get-latest' ] ;
6550 const apiVersion = flags [ 'api-version' ] ;
66- const guest = flags . guest ;
67- const ssr = flags . ssr ;
6851 let siteName = flags . name ;
6952
7053 const connection = org . getConnection ( apiVersion ) ;
@@ -81,76 +64,13 @@ export default class LightningDevSite extends SfCommand<void> {
8164
8265 const selectedSite = new ExperienceSite ( org , siteName ) ;
8366
84- if ( ! ssr ) {
85- return await this . openPreviewUrl ( selectedSite , connection ) ;
86- }
87- await this . serveSSRSite ( selectedSite , getLatest , siteName , guest ) ;
67+ return await this . openPreviewUrl ( selectedSite , connection ) ;
8868 } catch ( e ) {
8969 this . spinner . stop ( 'failed.' ) ;
9070 this . log ( 'Local Development setup failed' , e ) ;
9171 }
9272 }
9373
94- private async serveSSRSite (
95- selectedSite : ExperienceSite ,
96- getLatest : boolean ,
97- siteName : string ,
98- guest : boolean ,
99- ) : Promise < void > {
100- let siteZip : string | undefined ;
101-
102- // If the site is not setup / is not based on the current release / or get-latest is requested ->
103- // generate and download a new site bundle from the org based on latest builder metadata
104- if ( ! selectedSite . isSiteSetup ( ) || getLatest ) {
105- const startTime = Date . now ( ) ;
106- this . log ( `[local-dev] Initializing: ${ siteName } ` ) ;
107- this . spinner . start ( '[local-dev] Downloading site (this may take a few minutes)' ) ;
108- siteZip = await selectedSite . downloadSite ( ) ;
109-
110- // delete oldSitePath recursive
111- const oldSitePath = selectedSite . getExtractDirectory ( ) ;
112- if ( fs . existsSync ( oldSitePath ) ) {
113- fs . rmSync ( oldSitePath , { recursive : true } ) ;
114- }
115- const endTime = Date . now ( ) ;
116- const duration = ( endTime - startTime ) / 1000 ; // Convert to seconds
117- this . spinner . stop ( 'done.' ) ;
118- this . log ( `[local-dev] Site setup completed in ${ duration . toFixed ( 2 ) } seconds.` ) ;
119- }
120-
121- this . log ( `[local-dev] launching browser preview for: ${ siteName } ` ) ;
122-
123- // Establish a valid access token for this site
124- const authToken = guest ? '' : await selectedSite . setupAuth ( ) ;
125-
126- // Start the dev server
127- const port = parseInt ( process . env . PORT ?? '3000' , 10 ) ;
128-
129- // Internal vs external mode
130- const internalProject = ! fs . existsSync ( 'sfdx-project.json' ) && fs . existsSync ( 'lwr.config.json' ) ;
131- const logLevel = process . env . LOG_LEVEL ?? 'error' ;
132-
133- const startupParams : SitesLocalDevOptions = {
134- sfCLI : ! internalProject ,
135- authToken,
136- open : process . env . OPEN_BROWSER === 'false' ? false : true ,
137- port,
138- logLevel,
139- mode : 'dev' ,
140- siteZip,
141- siteDir : selectedSite . getSiteDirectory ( ) ,
142- } ;
143-
144- // Environment variable used to setup the site rather than setup & start server
145- if ( process . env . SETUP_ONLY === 'true' ) {
146- await setupDev ( startupParams ) ;
147- this . log ( '[local-dev] setup complete!' ) ;
148- } else {
149- await expDev ( startupParams ) ;
150- this . log ( '[local-dev] watching for file changes... (CTRL-C to stop)' ) ;
151- }
152- }
153-
15474 private async openPreviewUrl ( selectedSite : ExperienceSite , connection : Connection ) : Promise < void > {
15575 let sfdxProjectRootPath = '' ;
15676 try {
0 commit comments