Skip to content

Commit 2ce5acb

Browse files
committed
fix(backend): fix "publishMod: filePath not right" bug
1 parent 2341b6a commit 2ce5acb

File tree

7 files changed

+251
-181
lines changed

7 files changed

+251
-181
lines changed

defaults/meta3d-commonlib/lib/bs/.bsdeps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ src\log 0x1.a5a64897c2f18p+30
1818
src\copy 0x1.a5a64897c0e59p+30
1919
src\contract 0x1.a5a64897bfdf9p+30
2020
===
21-
D:\Github\Meta3D\node_modules\rescript\win32\rescript.exe 0x1.a5f1af36a0345p+30
21+
D:\Github\Meta3D\node_modules\rescript\win32\rescript.exe 0x1.a5f1b7893686ep+30
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#Start(124519631)
2-
#Done(124519643)
1+
#Start(125039636)
2+
#Done(125039642)

doc/1.3.1.org

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1057,13 +1057,24 @@ set language cn/en
10571057

10581058

10591059

1060-
* TODO run test
1060+
* DONE run test
10611061

10621062
test editor:
1063+
version is undefined?
1064+
1065+
test en editor
1066+
10631067
is public
10641068

10651069

10661070

1071+
* TODO handle cloudbase
1072+
1073+
1074+
* TODO 电脑清理
1075+
1076+
1077+
10671078
* TODO deploy editor to online
10681079
deploy meta3d to online
10691080

packages/engine-whole/protocols/extension_protocols/meta3d-engine-whole-protocol/lib/bs/.bsdeps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ src 0x1.98faf8fc55ffep+30
66
src\state 0x1.98faf8fc5705ep+30
77
src\service 0x1.98faf8fc54f9fp+30
88
===
9-
D:\Github\Meta3D\node_modules\rescript\win32\rescript.exe 0x1.a5f1af36a0345p+30
9+
D:\Github\Meta3D\node_modules\rescript\win32\rescript.exe 0x1.a5f1b7893686ep+30
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#Start(124520151)
2-
#Done(124520151)
1+
#Start(125040174)
2+
#Done(125040174)

platform/backend-cloudbase/src/Main.js

Lines changed: 88 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -354,23 +354,46 @@ let _getLocalEnvData = () => {
354354
env: "meta3d-local-9gacdhjl439cff76" // 此处填入您的环境ID
355355
};
356356
};
357-
let _setModData = (app, collectionName, key, data) => {
357+
// let _setModData = (app: any, collectionName, key, data) => {
358+
// const db = getDatabase()
359+
// return db.collection(collectionName)
360+
// .doc(key)
361+
// .get()
362+
// .then(res => {
363+
// let currentVersion = "0.0.0";
364+
// if (res.data && res.data.length > 0) {
365+
// currentVersion = res.data[0].version;
366+
// }
367+
// // 简单递增:直接分割、递增、重组
368+
// const [major, minor, patch] = currentVersion.split('.').map(Number);
369+
// const newVersion = `${major}.${minor}.${patch + 1}`;
370+
// return db.collection(collectionName)
371+
// .doc(key)
372+
// .set({
373+
// ...data,
374+
// key: key,
375+
// version: newVersion
376+
// });
377+
// })
378+
// .catch((err) => {
379+
// // 如果文档不存在,创建新文档
380+
// if (err.code === 'DATABASE_DOC_NOT_EXIST') {
381+
// return db.collection(collectionName)
382+
// .doc(key)
383+
// .set({
384+
// ...data,
385+
// key: key,
386+
// version: "0.0.1", // 初始版本
387+
// });
388+
// }
389+
// throw err;
390+
// });
391+
// }
392+
let _setModData = (collectionName, key, data, version) => {
358393
const db = (0, BackendService_1.getDatabase)();
359394
return db.collection(collectionName)
360395
.doc(key)
361-
.get()
362-
.then(res => {
363-
let currentVersion = "0.0.0";
364-
if (res.data && res.data.length > 0) {
365-
currentVersion = res.data[0].version;
366-
}
367-
// 简单递增:直接分割、递增、重组
368-
const [major, minor, patch] = currentVersion.split('.').map(Number);
369-
const newVersion = `${major}.${minor}.${patch + 1}`;
370-
return db.collection(collectionName)
371-
.doc(key)
372-
.set(Object.assign(Object.assign({}, data), { key: key, version: newVersion }));
373-
})
396+
.set(Object.assign(Object.assign({}, data), { key: key, version: version }))
374397
.catch((err) => {
375398
// 如果文档不存在,创建新文档
376399
if (err.code === 'DATABASE_DOC_NOT_EXIST') {
@@ -410,53 +433,53 @@ packageJson, readmeContent, distFileContent, assetFileData, iconBase64) => {
410433
// })
411434
return initFunc().map(backendInstance => [backendInstance, JSON.parse(packageJson), readmeContent])
412435
.flatMap(([backendInstance, packageJson, readmeContent]) => {
413-
// _defineWindow()
414-
let modJson = packageJson.mod;
415-
let fileName = packageJson.name + "_" + packageJson.version;
416-
let filePath = _getFileDirname() + "/" + fileName + ".arrayBuffer";
417-
let [assetFileJson, imageFiles, soundFiles, glbFiles] = _readAllAssets(assetFileData, modJson.protocolName, packageJson.name);
418-
return uploadFileFunc(_ => { },
419-
// backendInstance,
420-
filePath, generateFunc(distFileContent, assetFileJson, imageFiles.concat(soundFiles).concat(glbFiles)), fileName).flatMap((uploadData) => {
421-
let fileID = getFileIDFunc(uploadData, filePath);
422-
// let packageData = _convertToExtensionOrContributePackageData(packageJson, account)
423-
let key = (0, meta3d_backend_cloudbase_1.handleKeyToLowercase)(packageJson.name);
424-
let data = {
425-
// protocolName: packageData.protocol.name,
426-
// protocolVersion: packageData.protocol.version,
427-
name: packageJson.name,
428-
// version: packageJson.version,
429-
protocolName: modJson.protocolName,
430-
// protocolVersion: modJson.protocolVersion,
431-
author: modJson.author,
432-
// category: modJson.category,
433-
displayName_cn: (0, NullableUtils_1.getWithDefault)(modJson.displayName_cn, modJson.displayName_en),
434-
displayName_en: (0, NullableUtils_1.getWithDefault)(modJson.displayName_en, modJson.displayName_cn),
435-
repoLink: modJson.repoLink,
436-
// description_cn: getWithDefault(modJson.description_cn, modJson.description_en),
437-
// description_en: getWithDefault(modJson.description_en, modJson.description_cn),
438-
description: readmeContent,
439-
// icon: map(icon => {
440-
// return _readBase64(icon)
441-
// }, modJson.icon),
442-
icon: iconBase64,
443-
lastPublishTime: moment.now(),
444-
isPublic: modJson.isPublic,
445-
dependentMods: (0, NullableUtils_1.getWithDefault)(modJson.dependentMods, []),
446-
fileID,
447-
// key: handleKeyToLowercase(account)
448-
key,
449-
};
450-
// return fromPromise(
451-
// addModDataFunc(
452-
// backendInstance,
453-
// // _getPublishedCollectionName(fileType),
454-
// "publishedmods",
455-
// data
456-
// )
457-
// )
458-
let collectionName = "publishedmods";
459-
return (0, most_1.fromPromise)(getModDataFunc(backendInstance, collectionName, key).then(currentData => {
436+
let key = (0, meta3d_backend_cloudbase_1.handleKeyToLowercase)(packageJson.name);
437+
const collectionName = "publishedmods";
438+
return (0, most_1.fromPromise)(getModDataFunc(backendInstance, collectionName, key))
439+
.flatMap((currentData) => {
440+
let currentVersion = "0.0.0";
441+
if (!(0, NullableUtils_1.isNullable)(currentData)) {
442+
currentVersion = (0, NullableUtils_1.getExn)(currentData).version;
443+
}
444+
const [major, minor, patch] = currentVersion.split('.').map(Number);
445+
let packageVersion = `${major}.${minor}.${patch + 1}`;
446+
// _defineWindow()
447+
let modJson = packageJson.mod;
448+
// let fileName = packageJson.name + "_" + packageJson.version
449+
let fileName = packageJson.name + "_" + packageVersion;
450+
let filePath = _getFileDirname() + "/" + fileName + ".arrayBuffer";
451+
let [assetFileJson, imageFiles, soundFiles, glbFiles] = _readAllAssets(assetFileData, modJson.protocolName, packageJson.name);
452+
return uploadFileFunc(_ => { },
453+
// backendInstance,
454+
filePath, generateFunc(distFileContent, assetFileJson, imageFiles.concat(soundFiles).concat(glbFiles)), fileName).flatMap((uploadData) => {
455+
let fileID = getFileIDFunc(uploadData, filePath);
456+
// let packageData = _convertToExtensionOrContributePackageData(packageJson, account)
457+
let data = {
458+
// protocolName: packageData.protocol.name,
459+
// protocolVersion: packageData.protocol.version,
460+
name: packageJson.name,
461+
// version: packageJson.version,
462+
protocolName: modJson.protocolName,
463+
// protocolVersion: modJson.protocolVersion,
464+
author: modJson.author,
465+
// category: modJson.category,
466+
displayName_cn: (0, NullableUtils_1.getWithDefault)(modJson.displayName_cn, modJson.displayName_en),
467+
displayName_en: (0, NullableUtils_1.getWithDefault)(modJson.displayName_en, modJson.displayName_cn),
468+
repoLink: modJson.repoLink,
469+
// description_cn: getWithDefault(modJson.description_cn, modJson.description_en),
470+
// description_en: getWithDefault(modJson.description_en, modJson.description_cn),
471+
description: readmeContent,
472+
// icon: map(icon => {
473+
// return _readBase64(icon)
474+
// }, modJson.icon),
475+
icon: iconBase64,
476+
lastPublishTime: moment.now(),
477+
isPublic: modJson.isPublic,
478+
dependentMods: (0, NullableUtils_1.getWithDefault)(modJson.dependentMods, []),
479+
fileID,
480+
// key: handleKeyToLowercase(account)
481+
key,
482+
};
460483
if ((0, NullableUtils_1.isNullable)(currentData)) {
461484
data = Object.assign(Object.assign({}, data), { subscribe: 0, visit: 0 });
462485
}
@@ -465,10 +488,12 @@ packageJson, readmeContent, distFileContent, assetFileData, iconBase64) => {
465488
delete data._id;
466489
delete data._openid;
467490
}
468-
return setModDataFunc(backendInstance, collectionName, key, data);
469-
}));
491+
return (0, most_1.fromPromise)(setModDataFunc(collectionName, key, data, packageVersion));
492+
});
470493
});
471494
});
495+
// .flatMap(([backendInstance, packageJson, readmeContent]) => {
496+
// })
472497
// .drain()
473498
// .then(_ => {
474499
// logFunc("publish success")

0 commit comments

Comments
 (0)