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 { OrgUtils } from '../../../shared/orgUtils.js' ;
2321import { PromptUtils } from '../../../shared/promptUtils.js' ;
@@ -41,28 +39,13 @@ 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 } ;
5743
5844 public async run ( ) : Promise < void > {
5945 const { flags } = await this . parse ( LightningDevSite ) ;
6046
6147 try {
6248 const org = flags [ 'target-org' ] ;
63- const getLatest = flags [ 'get-latest' ] ;
64- const guest = flags . guest ;
65- const ssr = flags . ssr ;
6649 let siteName = flags . name ;
6750
6851 const connection = org . getConnection ( undefined ) ;
@@ -82,76 +65,13 @@ export default class LightningDevSite extends SfCommand<void> {
8265
8366 const selectedSite = new ExperienceSite ( org , siteName ) ;
8467
85- if ( ! ssr ) {
86- return await this . openPreviewUrl ( selectedSite , connection ) ;
87- }
88- await this . serveSSRSite ( selectedSite , getLatest , siteName , guest ) ;
68+ return await this . openPreviewUrl ( selectedSite , connection ) ;
8969 } catch ( e ) {
9070 this . spinner . stop ( 'failed.' ) ;
9171 this . log ( 'Local Development setup failed' , e ) ;
9272 }
9373 }
9474
95- private async serveSSRSite (
96- selectedSite : ExperienceSite ,
97- getLatest : boolean ,
98- siteName : string ,
99- guest : boolean
100- ) : Promise < void > {
101- let siteZip : string | undefined ;
102-
103- // If the site is not setup / is not based on the current release / or get-latest is requested ->
104- // generate and download a new site bundle from the org based on latest builder metadata
105- if ( ! selectedSite . isSiteSetup ( ) || getLatest ) {
106- const startTime = Date . now ( ) ;
107- this . log ( `[local-dev] Initializing: ${ siteName } ` ) ;
108- this . spinner . start ( '[local-dev] Downloading site (this may take a few minutes)' ) ;
109- siteZip = await selectedSite . downloadSite ( ) ;
110-
111- // delete oldSitePath recursive
112- const oldSitePath = selectedSite . getExtractDirectory ( ) ;
113- if ( fs . existsSync ( oldSitePath ) ) {
114- fs . rmSync ( oldSitePath , { recursive : true } ) ;
115- }
116- const endTime = Date . now ( ) ;
117- const duration = ( endTime - startTime ) / 1000 ; // Convert to seconds
118- this . spinner . stop ( 'done.' ) ;
119- this . log ( `[local-dev] Site setup completed in ${ duration . toFixed ( 2 ) } seconds.` ) ;
120- }
121-
122- this . log ( `[local-dev] launching browser preview for: ${ siteName } ` ) ;
123-
124- // Establish a valid access token for this site
125- const authToken = guest ? '' : await selectedSite . setupAuth ( ) ;
126-
127- // Start the dev server
128- const port = parseInt ( process . env . PORT ?? '3000' , 10 ) ;
129-
130- // Internal vs external mode
131- const internalProject = ! fs . existsSync ( 'sfdx-project.json' ) && fs . existsSync ( 'lwr.config.json' ) ;
132- const logLevel = process . env . LOG_LEVEL ?? 'error' ;
133-
134- const startupParams : SitesLocalDevOptions = {
135- sfCLI : ! internalProject ,
136- authToken,
137- open : process . env . OPEN_BROWSER === 'false' ? false : true ,
138- port,
139- logLevel,
140- mode : 'dev' ,
141- siteZip,
142- siteDir : selectedSite . getSiteDirectory ( ) ,
143- } ;
144-
145- // Environment variable used to setup the site rather than setup & start server
146- if ( process . env . SETUP_ONLY === 'true' ) {
147- await setupDev ( startupParams ) ;
148- this . log ( '[local-dev] setup complete!' ) ;
149- } else {
150- await expDev ( startupParams ) ;
151- this . log ( '[local-dev] watching for file changes... (CTRL-C to stop)' ) ;
152- }
153- }
154-
15575 private async openPreviewUrl ( selectedSite : ExperienceSite , connection : Connection ) : Promise < void > {
15676 let sfdxProjectRootPath = '' ;
15777 try {
0 commit comments