Skip to content

Commit 8596623

Browse files
committed
feat: incremental sync
1 parent b3bd81d commit 8596623

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

src/extensions/default/Phoenix/serverSync.js

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,42 @@ define(function (require, exports, module) {
146146
previewURL = null;
147147
}
148148

149-
function _projectFileChanged(target, entry, added, removed) {
150-
console.log("sync: change", entry, added, removed);
149+
async function _collectFiles(dirEntry) {
150+
let allFiles = [];
151+
return new Promise((resolve, reject)=>{
152+
dirEntry.getContents(async (err,fsEntries)=>{
153+
if(err){
154+
reject(err);
155+
}
156+
for(let fsEntry of fsEntries){
157+
if(fsEntry.isDirectory){
158+
let contentFiles = await _collectFiles(fsEntry);
159+
allFiles.push(...contentFiles);
160+
} else {
161+
allFiles.push(fsEntry);
162+
}
163+
}
164+
});
165+
resolve(allFiles);
166+
});
151167
}
152168

153-
function _projectFileRenamed(target, oldName, newName) {
154-
console.log("sync: rename", oldName, newName);
169+
async function _projectFileChanged(target, entry, added, removed) {
170+
if(!syncEnabled){
171+
return;
172+
}
173+
if(entry){
174+
let fileList = [];
175+
if(entry.isDirectory){
176+
fileList = await _collectFiles(entry);
177+
} else {
178+
fileList = [entry];
179+
}
180+
_setSyncInProgress();
181+
_uploadFiles(fileList, ()=>{
182+
_setSyncComplete();
183+
});
184+
}
155185
}
156186

157187
function _setSyncInProgress() {
@@ -263,7 +293,6 @@ define(function (require, exports, module) {
263293
_setupUserContext();
264294
ProjectManager.on(ProjectManager.EVENT_PROJECT_OPEN, _projectOpened);
265295
ProjectManager.on(ProjectManager.EVENT_PROJECT_FILE_CHANGED, _projectFileChanged);
266-
ProjectManager.on(ProjectManager.EVENT_PROJECT_FILE_RENAMED, _projectFileRenamed);
267296
};
268297

269298
ExtensionUtils.loadStyleSheet(module, "styles.css");

0 commit comments

Comments
 (0)