From 13e365a629e5899a9d3aaafce90fb263ca02012a Mon Sep 17 00:00:00 2001
From: luyangang
Date: Tue, 26 Dec 2023 00:09:01 -0800
Subject: [PATCH 1/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controller/material-center/block.ts | 19 ++++---
app/extend/helper.ts | 42 ++++++++++++++-
app/service/cnpm.ts | 2 +-
app/service/material-center/Block.ts | 16 ++----
app/service/material-center/blockBuilder.ts | 53 +++++++++----------
.../material-center/vueBlockBuilder.ts | 2 +-
config/config.default.ts | 4 +-
package.json | 4 +-
8 files changed, 86 insertions(+), 56 deletions(-)
diff --git a/app/controller/material-center/block.ts b/app/controller/material-center/block.ts
index 21355ce..c2e2428 100644
--- a/app/controller/material-center/block.ts
+++ b/app/controller/material-center/block.ts
@@ -124,10 +124,10 @@ export default class BlockController extends Controller {
createParam.tags = createParam.tags.filter((tag) => !!tag);
}
// 处理区块截图
- if (createParam.screenshot) {
- const url = await this.service.materialCenter.block.handleScreenshot(createParam);
- createParam.screenshot = url;
- }
+ // if (createParam.screenshot) {
+ // const url = await this.service.materialCenter.block.handleScreenshot(createParam);
+ // createParam.screenshot = url;
+ // }
this.ctx.body = await this.service.materialCenter.block.create(createParam);
}
@@ -155,8 +155,8 @@ export default class BlockController extends Controller {
}
// 处理区块截图
if (updateParam.screenshot && updateParam.label) {
- const url = await this.service.materialCenter.block.handleScreenshot(updateParam);
- updateParam.screenshot = url;
+ //const url = await this.service.materialCenter.block.handleScreenshot(updateParam);
+ updateParam.screenshot = '';
} else {
// 不更新 screenshot, 避免screenshot为空字符串覆盖上次值
delete updateParam.screenshot;
@@ -166,14 +166,16 @@ export default class BlockController extends Controller {
async delete() {
const { id } = this.ctx.params;
- const { obs } = this.service;
+ //const { obs } = this.service;
const res = await this.service.materialCenter.block.delete({ id });
// 批量删除obs资源
+ /*
const { label } = res.data;
const keyObjs: Array = await obs.list(label, 'block');
if (keyObjs.length > 0) {
await obs.delete({ Objects: keyObjs });
}
+ */
this.ctx.body = res;
}
async build() {
@@ -196,7 +198,8 @@ export default class BlockController extends Controller {
throwApiError('', Number(E_ErrorCode.BadRequest), E_MaterialErrorCode.CM205);
}
// 处理区块截图
- block.screenshot = await materialCenter.block.handleScreenshot(block);
+ // block.screenshot = await materialCenter.block.handleScreenshot(block);
+ block.screenshot = '';
// 更新i18n 信息
block.i18n = await materialCenter.block.getBlockI18n(id);
// 如果有未完成的任务直接返回该任务信息
diff --git a/app/extend/helper.ts b/app/extend/helper.ts
index dc52e03..7bca1ee 100644
--- a/app/extend/helper.ts
+++ b/app/extend/helper.ts
@@ -10,6 +10,7 @@
*
*/
import { Context } from 'egg';
+import spawn from "cross-spawn"
import { I_ErrorData, I_Response, I_DataUnnecessary } from '../lib/interface';
import { I_UpdateAppParam } from '../interface/app-center/app';
import { E_ErrorCode, E_MaterialErrorCode } from '../lib/enum';
@@ -231,5 +232,44 @@ module.exports = {
}
});
return result;
- }
+ },
+
+ async execCommand (command,options) {
+ const [cmd, ...params] = command.split(' ')
+ return new Promise((resolve, reject) => {
+ const task = spawn(cmd, params, { ...options })
+ let stderr = ''
+ task.on('close', (code) => {
+ if (code === 0) {
+ return resolve(`succeed exec command: ${command}`)
+ }
+ return reject(new Error(stderr.trim()))
+ })
+ task.on('error', reject)
+ task.stderr?.on('data', (chunk) => {
+ stderr += chunk.toString()
+ })
+ task.stdout?.pipe(process.stdout)
+ task.stderr?.pipe(process.stderr)
+ })
+ },
+
+ async execCommandWithCatch (commands,options,messagePrefix) {
+ try {
+ for(const command of commands ){
+ await this.ctx.helper.execCommand(command, options)
+ }
+ return {
+ isSuccess: true,
+ message: `${messagePrefix}: success`
+ }
+ } catch (error: any) {
+ const message = `${messagePrefix} error: ${error.message || error}`
+ return {
+ isSuccess: false,
+ message: message
+ }
+ }
+ },
+
};
diff --git a/app/service/cnpm.ts b/app/service/cnpm.ts
index fec0562..e8d5dc5 100644
--- a/app/service/cnpm.ts
+++ b/app/service/cnpm.ts
@@ -31,5 +31,5 @@ export default class CnpmService extends Service {
const commands = ['npm publish --access=public'];
return this.ctx.helper.execCommandWithCatch(commands, { cwd: packagePath }, 'publish cnpm');
}
-
+
}
diff --git a/app/service/material-center/Block.ts b/app/service/material-center/Block.ts
index a67dfcd..6fa6595 100644
--- a/app/service/material-center/Block.ts
+++ b/app/service/material-center/Block.ts
@@ -12,9 +12,8 @@
import * as fs from 'fs-extra';
import * as qs from 'querystring';
import DataService from '../dataService';
-import { E_ErrorCode, E_i18Belongs, E_MaterialErrorCode, E_Method } from '../../lib/enum';
+import { E_i18Belongs, E_Method } from '../../lib/enum';
import { I_Response } from '../../lib/interface';
-import { ApiError } from '../../lib/ApiError';
import { I_CreateBlock, I_UpdateBlock } from '../../interface/material-center/block';
export default class BlockService extends DataService {
@@ -54,17 +53,10 @@ export default class BlockService extends DataService {
});
}
async delete({ id }) {
- const materials: I_Response = await this.query({
- url: `${this.base}/${id}/materials`
+ return this.query({
+ url: `${this.base}/${id}`,
+ method: E_Method.Delete
});
- if (materials.data?.count > 0) {
- throw new ApiError('', E_ErrorCode.BadRequest, E_MaterialErrorCode.CM203);
- } else {
- return this.query({
- url: `${this.base}/${id}`,
- method: E_Method.Delete
- });
- }
}
getBlocks(param) {
diff --git a/app/service/material-center/blockBuilder.ts b/app/service/material-center/blockBuilder.ts
index fc99071..01e1bca 100644
--- a/app/service/material-center/blockBuilder.ts
+++ b/app/service/material-center/blockBuilder.ts
@@ -14,7 +14,6 @@ import fs from 'fs-extra'
import { Service } from 'egg';
import { E_TASK_STATUS } from '../../lib/enum'
import {glob} from 'glob'
-
export default class BlockBuilder extends Service{
unpkgBaseUrl = 'https://npm.onmicrosoft.cn'
pkgName
@@ -22,10 +21,11 @@ export default class BlockBuilder extends Service{
// 将服务分为两种,一种是BuildService , 一种是操作数据库的DataService
async start(blockId, taskId, body) {
+ const {task} = this.ctx.service
this.ctx.logger.info('开始区块构建', blockId, taskId)
// 查询区块数据
const { data: block } = await this.service.materialCenter.block.findById(blockId)
- await this.service.task.update({
+ await task.update({
id: taskId,
progress: 'generating code',
taskStatus: E_TASK_STATUS.RUNNING
@@ -38,18 +38,12 @@ export default class BlockBuilder extends Service{
needToSave
} = body
- await this.service.task.update({
- id: taskId,
- progress: 'generating code',
- taskStatus: E_TASK_STATUS.RUNNING
- })
-
const modifiedBlock = { ...block, ...others, id: blockId, version: blockVersion }
try {
// 调用DSL转换方法生成代码
const sourceCode = await this.translate(modifiedBlock, { content })
- await this.service.task.update({
+ await task.update({
id: taskId,
progress: 'generating code completed',
progress_percent: 10
@@ -123,9 +117,10 @@ export default class BlockBuilder extends Service{
if (needToSave) {
blockData.content = content
}
-
- await this.service.BlockService.update(blockData)
- await this.service.task.update({
+
+ await this.service.materialCenter.block.update(blockData)
+ const {task} = this.ctx.service
+ await task.update({
id: taskId,
progress_percent: 100,
taskResult: JSON.stringify({ result: 'block building completed' }),
@@ -135,6 +130,7 @@ export default class BlockBuilder extends Service{
// 错误处理统一方法
async afterBuildFailed(blockId, taskId, error) {
+ const {task} = this.ctx.service
this.ctx.logger.error(`build block ${blockId} error:`, error)
const buildInfo = { result: false, message: error.message, endTime: new Date().toLocaleString() }
@@ -142,7 +138,7 @@ export default class BlockBuilder extends Service{
id: blockId,
last_build_info: buildInfo
})
- await this.service.task.update({
+ await task.update({
id: taskId,
taskStatus: E_TASK_STATUS.STOPPED,
taskResult: JSON.stringify({ result: error.message })
@@ -150,24 +146,22 @@ export default class BlockBuilder extends Service{
}
async buildWebComponent(sourceCode, block, taskId, version) {
- const { framework = 'Vue', label } = block
- const BuildService = {
- Vue: this.service.materialCenter.vueBlockBuilder
- }
+ const { label } = block
// 初始化构建目录
- const service = new BuildService[framework]()
+ const service = this.service.materialCenter.vueBlockBuilder
+ const {task} = this.ctx.service
try {
- await this.service.task.update({ id: taskId, progress: 'installing deps' })
+ await task.update({ id: taskId, progress: 'installing deps' })
await service.init()
- await this.service.task.update({ id: taskId, progress: 'deps installed', progress_percent: 40 })
- const config = await service.readConfig()
+ await task.update({ id: taskId, progress: 'deps installed', progress_percent: 40 })
+ const config: any = await service.readConfig()
// 写入口文件
if (service.writeEntryFile) {
await service.writeEntryFile(block, config.path, version)
}
// 注入代码
await service.injectCodeFile(sourceCode, config.path)
- await this.service.task.update({ id: taskId, progress: 'code injected', progress_percent: 50 })
+ await task.update({ id: taskId, progress: 'code injected', progress_percent: 50 })
// 写配置
const className = this.kebabToPascalCase(label)
config.data = {
@@ -179,14 +173,14 @@ export default class BlockBuilder extends Service{
componentPath: sourceCode.find((c) => c.type === 'Block')?.filePath ?? '' // 指定block路径
}
}
- await this.service.task.update({ id: taskId, progress: 'write config', progress_percent: 55 })
+ await task.update({ id: taskId, progress: 'write config', progress_percent: 55 })
await service.writeConfig(JSON.stringify(config, null, 2))
- await this.service.task.update({ id: taskId, progress: 'building', progress_percent: 60 })
+ await task.update({ id: taskId, progress: 'building', progress_percent: 60 })
// 清理dist目录
service.clearDist()
// 构建
await service.build()
- await this.service.task.update({ id: taskId, progress: 'building completed', progress_percent: 80 })
+ await task.update({ id: taskId, progress: 'building completed', progress_percent: 80 })
// 返回静态资源输出路径
const distPath = service.getDist()
// 转换config.umd.min.js配置文件为 bundle.json
@@ -194,7 +188,7 @@ export default class BlockBuilder extends Service{
// 发布区块到 npm
const filesPath = await this.publish(distPath, block, version)
// 获取构建原料版本
- const versions = service.getBuildInfo([BuildService[framework].baseNpm])
+ const versions = service.getBuildInfo([service.baseNpm])
return { filesPath, versions }
} finally {
await service.clear()
@@ -237,7 +231,7 @@ export default class BlockBuilder extends Service{
blocksData = innerBlocks.data.map(({ content, label }) => ({ content, label })).filter((b) => b.label !== label)
}
- const { generateCode } = require('@opentiny/lowcode-dsl-vue')
+ const { generateCode } = require('@opentiny/tiny-engine-dsl-vue')
const result = generateCode({ pageInfo: { schema: content, name: label }, blocksData })
return result
}
@@ -294,11 +288,12 @@ export default class BlockBuilder extends Service{
async publishPackage(folder, blockInfo, version) {
const pkgJson = this.generatePackageJson(blockInfo, version)
await fs.writeJson(path.resolve(folder, './package.json'), pkgJson)
- const loginInRes = await this.service.cnpmService.loginInNpm(folder)
+ const { cnpm } = this.ctx.service;
+ const loginInRes = await cnpm.loginInNpm(folder)
if (!loginInRes.isSuccess) {
return loginInRes
}
- return this.service.cnpmService.publishCnpm(folder)
+ return cnpm.publishCnpm(folder)
}
// 生成npm 包的package.json
diff --git a/app/service/material-center/vueBlockBuilder.ts b/app/service/material-center/vueBlockBuilder.ts
index aaccea3..c64d8f1 100644
--- a/app/service/material-center/vueBlockBuilder.ts
+++ b/app/service/material-center/vueBlockBuilder.ts
@@ -123,7 +123,7 @@ export default class VueBlockBuilder extends Service{
// 获取tgz路径
async findTgz(dir) {
const fileList = await fs.readdir(dir)
- return fileList.find((file) => /^opentiny-tiny-engine-block-build-*\.tgz$/.test(file)) || '' //TODO 这里匹配的是包tgz文件的名称,择机替换为opentiny的
+ return fileList.find((file) => /^opentiny-tiny-engine-block-build-0.*\.tgz$/.test(file)) || '' //TODO 这里匹配的是包tgz文件的名称,择机替换为opentiny的
}
// 执行命令
diff --git a/config/config.default.ts b/config/config.default.ts
index b18bb29..1552bef 100644
--- a/config/config.default.ts
+++ b/config/config.default.ts
@@ -277,13 +277,13 @@ export default (appInfo) => {
};
};
- config.cnpmRegistryOptions = [
+ config.npmRegistryOptions = [
'--registry=https://registry.npmjs.org/',
];
config.buildground = '/tmp/buildground';
config.baseNpm = '@opentiny/tiny-engine-block-build';
- config.authToken = process.env.NPM_AUTH_TOKEN; // 替换为自己的npm token
+ config.authToken = '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'; // 替换为自己的npm token
config.registry = 'registry.npmjs.org/';
return config;
diff --git a/package.json b/package.json
index bc644e9..1e67558 100644
--- a/package.json
+++ b/package.json
@@ -29,8 +29,8 @@
},
"dependencies": {
"@opentiny/tiny-engine-block-build": "^0.0.1-alpha.0",
- "@opentiny/tiny-engine-dsl-vue": "^1.0.3-alpha.0",
- "@opentiny/tiny-engine-transform": "^1.0.0",
+ "@opentiny/tiny-engine-dsl-vue": "~1.0.1",
+ "@opentiny/tiny-engine-transform": "^1.0.0-alpha.1",
"compressing": "^1.7.0",
"egg": "^3.17.5",
"egg-amqplib": "^2.0.5",
--
Gitee
From a3d495c3e2c482c1a5d30e3ae3f52b0c5d425f8a Mon Sep 17 00:00:00 2001
From: luyangang
Date: Tue, 26 Dec 2023 00:17:44 -0800
Subject: [PATCH 2/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/config.default.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config/config.default.ts b/config/config.default.ts
index 1552bef..c80860c 100644
--- a/config/config.default.ts
+++ b/config/config.default.ts
@@ -283,7 +283,7 @@ export default (appInfo) => {
config.buildground = '/tmp/buildground';
config.baseNpm = '@opentiny/tiny-engine-block-build';
- config.authToken = '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'; // 替换为自己的npm token
+ config.authToken = process.env.NPM_AUTH_TOKEN; // 替换为自己的npm token
config.registry = 'registry.npmjs.org/';
return config;
--
Gitee
From 12611a0955d8e742a9b89ef438f16bc0c273bea6 Mon Sep 17 00:00:00 2001
From: luyangang
Date: Tue, 26 Dec 2023 19:34:54 -0800
Subject: [PATCH 3/9] =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=8A=B6=E6=80=81?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controller/app-center/apps.ts | 27 ++++++++++++++++++++++++++-
app/router/appCenter/base.ts | 1 +
app/service/cnpm.ts | 1 -
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/app/controller/app-center/apps.ts b/app/controller/app-center/apps.ts
index c7fd630..b038ab9 100644
--- a/app/controller/app-center/apps.ts
+++ b/app/controller/app-center/apps.ts
@@ -12,7 +12,7 @@
import { Controller } from 'egg';
import { I_Response } from '../../lib/interface';
import { E_CanvasEditorState, E_ErrorCode, } from '../../lib/enum';
-import { publishAppRule } from '../../validate/app-center/app';
+import { publishAppRule, updateAppRule } from '../../validate/app-center/app';
const i18nRule = {
id: {
@@ -37,6 +37,31 @@ class AppsController extends Controller {
this.ctx.body = await apps.getAppById(id);
}
+ /**
+ * @router get /api/apps/update/:id 路径
+ * @summary 应用修改
+ * @description 修改应用
+ */
+ async update() {
+ const { id } = this.ctx.params;
+ const { body } = this.ctx.request;
+ const updateParam = this.ctx.helper.pickObject({ id, ...body }, [
+ 'platform',
+ 'obs_url',
+ 'created_at',
+ 'updated_at',
+ 'createdBy',
+ 'updatedBy',
+ 'tenant',
+ 'platform_history',
+ 'framework',
+ 'data_hash'
+ ], false)
+ const { apps } = this.ctx.service.appCenter;
+ this.ctx.validate(updateAppRule, updateParam);
+ this.ctx.body = await apps.updateApp(updateParam);
+ }
+
/**
* @router get /api/apps/i18n/:id 路径
diff --git a/app/router/appCenter/base.ts b/app/router/appCenter/base.ts
index 39e99a6..c406442 100644
--- a/app/router/appCenter/base.ts
+++ b/app/router/appCenter/base.ts
@@ -24,6 +24,7 @@ export default (app: Application) => {
// 应用管理
subRouter.get('/apps/detail/:id', controller.appCenter.apps.detail);
+ subRouter.post('/apps/update/:id', controller.appCenter.apps.update);
// 关联应用信息,主要是apps下block-histories
subRouter.get('/apps/associate', controller.appCenter.apps.associate);
diff --git a/app/service/cnpm.ts b/app/service/cnpm.ts
index e8d5dc5..1cef34d 100644
--- a/app/service/cnpm.ts
+++ b/app/service/cnpm.ts
@@ -19,7 +19,6 @@ export default class CnpmService extends Service {
async loginInNpm(packagePath) {
const commands = [
'npm config set strict-ssl false',
- 'npm config set always-auth true',
`npm config set registry https://${this.registry}`,
`npm config set //${this.registry}:_authToken=${this.authToken}`,
`npm whoami --registry https://${this.registry}`
--
Gitee
From 2d6bb7675105917393c05ae337e2f6978e96e3ce Mon Sep 17 00:00:00 2001
From: luyangang
Date: Wed, 27 Dec 2023 00:21:16 -0800
Subject: [PATCH 4/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.js | 4 +---
app/service/material-center/blockBuilder.ts | 2 +-
app/tiny-engine-transform/.eslintrc.js | 1 -
app/tiny-engine-transform/package.json | 1 -
4 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
index ef8f8f9..e1ad78e 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,7 +1,5 @@
module.exports = {
- extends: [
- '@cloud/eslint-config-cbc/typescript'
- ],
+
parserOptions: {
// recommend to use another config file like tsconfig.eslint.json and extends tsconfig.json in it.
// because you may be need to lint test/**/*.test.ts but no need to emit to js.
diff --git a/app/service/material-center/blockBuilder.ts b/app/service/material-center/blockBuilder.ts
index 01e1bca..1e93e45 100644
--- a/app/service/material-center/blockBuilder.ts
+++ b/app/service/material-center/blockBuilder.ts
@@ -57,7 +57,7 @@ export default class BlockBuilder extends Service{
const buildResult = { result: true, versions, endTime: new Date().toLocaleString() }
const buildInfo = {
- buildResult,
+ ...buildResult,
message,
filesPath,
taskId
diff --git a/app/tiny-engine-transform/.eslintrc.js b/app/tiny-engine-transform/.eslintrc.js
index 39ad05e..7fee4f0 100644
--- a/app/tiny-engine-transform/.eslintrc.js
+++ b/app/tiny-engine-transform/.eslintrc.js
@@ -1,5 +1,4 @@
module.exports = {
- extends: ['@cloud/eslint-config-cbc/typescript'],
parserOptions: {
// recommend to use another config file like tsconfig.eslint.json and extends tsconfig.json in it.
// because you may be need to lint test/**/*.test.ts but no need to emit to js.
diff --git a/app/tiny-engine-transform/package.json b/app/tiny-engine-transform/package.json
index c52ed18..3820987 100644
--- a/app/tiny-engine-transform/package.json
+++ b/app/tiny-engine-transform/package.json
@@ -17,7 +17,6 @@
"author": "",
"license": "ISC",
"devDependencies": {
- "@cloud/eslint-config-cbc": "^1.7.9",
"@types/node": "^12.20.16",
"@typescript-eslint/eslint-plugin": "^5.35.1",
"@typescript-eslint/parser": "^5.35.1",
--
Gitee
From 79a1d1078308f5526dab4f13d75ab645d4801a85 Mon Sep 17 00:00:00 2001
From: luyangang
Date: Wed, 27 Dec 2023 23:46:14 -0800
Subject: [PATCH 5/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83?=
=?UTF-8?q?=E5=8F=98=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/config.default.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/config/config.default.ts b/config/config.default.ts
index c80860c..942614a 100644
--- a/config/config.default.ts
+++ b/config/config.default.ts
@@ -285,6 +285,8 @@ export default (appInfo) => {
config.baseNpm = '@opentiny/tiny-engine-block-build';
config.authToken = process.env.NPM_AUTH_TOKEN; // 替换为自己的npm token
config.registry = 'registry.npmjs.org/';
+ config.projectName = process.env.GIT_REPO; // 应用发布git仓库地址
+ config.gitBranch = process.env.GIT_BRANCH; // 应用发布git代码默认提交分支
return config;
};
--
Gitee
From 28db95c234d792b7e72274474c8005fa3044506a Mon Sep 17 00:00:00 2001
From: luyangang
Date: Wed, 27 Dec 2023 23:46:43 -0800
Subject: [PATCH 6/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83?=
=?UTF-8?q?=E5=8F=98=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/service/app-center/publish.ts | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/app/service/app-center/publish.ts b/app/service/app-center/publish.ts
index 135f86f..9cb8099 100644
--- a/app/service/app-center/publish.ts
+++ b/app/service/app-center/publish.ts
@@ -46,9 +46,8 @@ class PublishApp extends DataServcice {
try {
await generate.init(appId);
-
- const appInfo = await this.service.appCenter.apps.getAppById(Number(appId));
- const { project_name, branch } = appInfo.data || {};
+ const project_name = this.config.projectName;
+ const branch = this.config.gitBranch;
const git_branch = this.bodyParam.branch || branch;
const canCreateNewBranch = this.bodyParam.canCreateNewBranch || false;
--
Gitee
From a50be685c68ef08d7373c0735f03f6cec8e5eb63 Mon Sep 17 00:00:00 2001
From: luyangang
Date: Thu, 28 Dec 2023 01:06:08 -0800
Subject: [PATCH 7/9] update package.json
---
README.zh-CN.md | 2 +-
package.json | 22 ++++++++++++++++++----
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 47f1ea9..081a86c 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -4,7 +4,7 @@
-TinyEngine低代码引擎使能开发者定制低代码平台,支持在线实时构建低码平台,支持二次开发或集成低码平台能力
+TinyEngine低代码引擎能使开发者定制低代码平台,支持在线实时构建低码平台,支持二次开发或集成低码平台能力
[English](README.md) | 简体中文
diff --git a/package.json b/package.json
index 1e67558..bb8785f 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,13 @@
{
"name": "tiny-engine-webservice",
"version": "1.0.0",
- "description": "",
+ "description": "tiny-engine-webservice is a restful API responsible for providing data services, code generation services, and code release services to the front end. It does not directly operate on the database, and data operations request interfaces from tiny-engine-data-center",
+ "homepage": "https://opentiny.design/tiny-engine",
+ "keywords": [
+ "node.js",
+ "tiny-engine-webservice",
+ "lowcode"
+ ],
"private": true,
"egg": {
"typescript": true,
@@ -20,6 +26,16 @@
"lint": "eslint . --ext .ts --fix",
"clean": "ets clean"
},
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/opentiny/tiny-engine-webservice",
+ "directory": ""
+ },
+ "bugs": {
+ "url": "https://github.com/opentiny/tiny-engine-webservice/issues"
+ },
+ "author": "OpenTiny Team",
+ "license": "MIT",
"nyc": {
"check-coverage": false,
"lines": 60,
@@ -80,7 +96,5 @@
},
"eslintIgnore": [
"coverage"
- ],
- "author": "",
- "license": "MIT"
+ ]
}
--
Gitee
From 060b9cea71b2ae4324ff5ff44979d527d424efdc Mon Sep 17 00:00:00 2001
From: luyangang
Date: Thu, 28 Dec 2023 01:10:17 -0800
Subject: [PATCH 8/9] update package.json
---
package.json | 4 ----
1 file changed, 4 deletions(-)
diff --git a/package.json b/package.json
index bb8785f..dc99f26 100644
--- a/package.json
+++ b/package.json
@@ -90,10 +90,6 @@
"engines": {
"node": ">=8.9.0"
},
- "repository": {
- "type": "git",
- "url": ""
- },
"eslintIgnore": [
"coverage"
]
--
Gitee
From 4a0ec129e1a1ab3e01df60d7d597e6654a5d74df Mon Sep 17 00:00:00 2001
From: luyangang
Date: Thu, 28 Dec 2023 19:38:41 -0800
Subject: [PATCH 9/9] =?UTF-8?q?git=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.en-US.md | 6 ++----
README.md | 5 ++---
README.zh-CN.md | 5 ++---
app/service/app-center/publish.ts | 6 +++---
config/config.default.ts | 3 +++
5 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/README.en-US.md b/README.en-US.md
index b0b6146..2204c5b 100644
--- a/README.en-US.md
+++ b/README.en-US.md
@@ -117,10 +117,8 @@ Dependencies required for installation
```
$ npm install
```
-Modifying the Local Development Configuration File
-* In the config.local.ts file in the config folder of the tiny-engine-webservice root directory, modify the config.dataCenter configuration to the database service configuration.
-* In the config.default.ts file in the config folder of the tiny-engine-webservice root directory, modify the OBS configuration to the cloud storage service configuration and modify the config.amqplib configuration to the MQ service configuration. (You do not need to delete the related configuration and code.) Modify config.aiChat to your own AI big model service configuration.
-
+Local development configuration
+*https://opentiny.design/tiny-engine#/help -center/course/backend/51
Start a project
```
$ npm run dev
diff --git a/README.md b/README.md
index b0b6146..e8dcd64 100644
--- a/README.md
+++ b/README.md
@@ -117,9 +117,8 @@ Dependencies required for installation
```
$ npm install
```
-Modifying the Local Development Configuration File
-* In the config.local.ts file in the config folder of the tiny-engine-webservice root directory, modify the config.dataCenter configuration to the database service configuration.
-* In the config.default.ts file in the config folder of the tiny-engine-webservice root directory, modify the OBS configuration to the cloud storage service configuration and modify the config.amqplib configuration to the MQ service configuration. (You do not need to delete the related configuration and code.) Modify config.aiChat to your own AI big model service configuration.
+Local development configuration
+*https://opentiny.design/tiny-engine#/help -center/course/backend/51
Start a project
```
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 081a86c..f8849b5 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -117,9 +117,8 @@
```
$ npm install
```
-本地开发配置文件修改
-* tiny-engine-webservice 根目录config文件夹下config.local.ts 文件中,修改config.dataCenter配置为自己数据库服务配置
-* tiny-engine-webservice 根目录config文件夹下config.default.ts 文件中 修改相关obs配置为自己的云存储服务配置,修改config.amqplib为自己的mq服务配置(不用可删除相关配置及代码),修改config.aiChat为自己的ai大模型服务配置
+本地开发配置
+* https://opentiny.design/tiny-engine#/help-center/course/backend/51
启动项目
```
diff --git a/app/service/app-center/publish.ts b/app/service/app-center/publish.ts
index 9cb8099..0941b31 100644
--- a/app/service/app-center/publish.ts
+++ b/app/service/app-center/publish.ts
@@ -35,9 +35,9 @@ class PublishApp extends DataServcice {
private getUserInfo(): { username: string; email: string; userToken: string } {
return {
- username: this.ctx.session.user?.uid,
- email: this.ctx.session.user?.email,
- userToken: this.bodyParam?.gitUserToken || ''
+ username: this.config.userName,
+ email: this.config.email,
+ userToken: this.config.userToken || ''
};
}
diff --git a/config/config.default.ts b/config/config.default.ts
index 942614a..e768bb3 100644
--- a/config/config.default.ts
+++ b/config/config.default.ts
@@ -287,6 +287,9 @@ export default (appInfo) => {
config.registry = 'registry.npmjs.org/';
config.projectName = process.env.GIT_REPO; // 应用发布git仓库地址
config.gitBranch = process.env.GIT_BRANCH; // 应用发布git代码默认提交分支
+ config.userName = process.env.GIT_USERNAME;
+ config.userToken = process.env.GIT_USER_TOKEN;
+ config.email = process.env.GIT_EMAIL;
return config;
};
--
Gitee