Skip to content

Commit 10d31d4

Browse files
committed
fix: exclude platform specific files that are not appropriate for the provided platform
1 parent def94a8 commit 10d31d4

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

lib/services/livesync/playground/preview-app-files-service.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export class PreviewAppFilesService implements IPreviewAppFilesService {
1313
private $logger: ILogger,
1414
private $platformsData: IPlatformsData,
1515
private $projectDataService: IProjectDataService,
16-
private $projectFilesManager: IProjectFilesManager
16+
private $projectFilesManager: IProjectFilesManager,
17+
private $projectFilesProvider: IProjectFilesProvider
1718
) { }
1819

1920
public getInitialFilesPayload(data: IPreviewAppLiveSyncData, platform: string, deviceId?: string): FilesPayload {
@@ -34,20 +35,29 @@ export class PreviewAppFilesService implements IPreviewAppFilesService {
3435

3536
this.$logger.trace(`Sending ${filesToTransfer.join("\n")}.`);
3637

37-
const rootFilesDir = this.getRootFilesDir(data, platform);
38-
const payloadsToSync = _.map(filesToTransfer, file => this.createFilePayload(file, rootFilesDir, PreviewSdkEventNames.CHANGE_EVENT_NAME));
39-
const payloadsToRemove = _.map(filesToRemove, file => this.createFilePayload(file, rootFilesDir, PreviewSdkEventNames.UNLINK_EVENT_NAME));
40-
const payloads = payloadsToSync.concat(payloadsToRemove);
38+
const files = this.createFilePayloads(data, platform, filesToTransfer, filesToRemove);
4139

4240
return {
43-
files: payloads,
44-
platform: platform,
41+
files,
42+
platform,
4543
hmrMode: data.useHotModuleReload ? 1 : 0,
4644
deviceId
4745
};
4846
}
4947

50-
private createFilePayload(file: string, rootFilesDir: string, event: string): FilePayload {
48+
private createFilePayloads(data: IPreviewAppLiveSyncData, platform: string, filesToTransfer: string[], filesToRemove: string[]): FilePayload[] {
49+
const rootFilesDir = this.getRootFilesDir(data, platform);
50+
const payloadsToSync = _.filter(filesToTransfer, file => {
51+
const fileInfo = this.$projectFilesProvider.getProjectFileInfo(file, platform, {});
52+
return fileInfo && fileInfo.shouldIncludeFile;
53+
})
54+
.map(file => this.createFilePayload(file, platform, rootFilesDir, PreviewSdkEventNames.CHANGE_EVENT_NAME));
55+
const payloadsToRemove = _.map(filesToRemove, file => this.createFilePayload(file, platform, rootFilesDir, PreviewSdkEventNames.UNLINK_EVENT_NAME));
56+
const payloads = payloadsToSync.concat(payloadsToRemove);
57+
return payloads;
58+
}
59+
60+
private createFilePayload(file: string, platform: string, rootFilesDir: string, event: string): FilePayload {
5161
let fileContents = "";
5262
let binary = false;
5363

0 commit comments

Comments
 (0)