chore: remove useless templates (#330)

This commit is contained in:
tecvan
2025-07-30 17:51:07 +08:00
committed by GitHub
parent ce521dae8a
commit cacdba67cd
54 changed files with 59 additions and 1208 deletions

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type {
IPlugin,
IHooks,
@@ -56,7 +56,7 @@ export default class SelectTeamPlugin implements IPlugin {
projectFolderPrompt.default = (answers) => {
// 文件夹名去除scope如 @coze-arch/foo -> foo
const folderDir = answers.packageName.split('/').slice(-1)[0];
return `packages/${answers.team}/${folderDir}`
return `frontend/packages/${answers.team}/${folderDir}`;
}
});
}

View File

@@ -13,8 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IPlugin, IHooks, IPromptsHookParams } from 'rush-init-project-plugin';
import type {
IPlugin,
IHooks,
IPromptsHookParams,
} from 'rush-init-project-plugin';
// FIXME:
// 按照 https://github.com/bytemate/rush-plugins/blob/main/rush-plugins/rush-init-project-plugin/docs/init_project_configuration.md
// 一文的指引,无法正确 resolve 到对应模块,暂时没找到解决方案,故此处先用相对路径引用
@@ -24,27 +28,34 @@ import { exec } from './utils';
export default class SetDefaultAuthorPlugin implements IPlugin {
private readonly logger = createLog({
prefix: SetDefaultAuthorPlugin.name
prefix: SetDefaultAuthorPlugin.name,
});
apply(hooks: IHooks): void {
hooks.prompts.tap(SetDefaultAuthorPlugin.name, async (prompts: IPromptsHookParams) => {
const prompAuthorEmail = prompts.promptQueue.find((r) => r.name === 'authorName');
if (prompAuthorEmail) {
const userEmail = String(await exec(this.logger, 'git', ['config', '--get', 'user.email']));
Object.assign(prompAuthorEmail, {
default() {
return userEmail;
},
validate(author: string) {
return /@bytedance\.com$/.test(author);
}
});
hooks.prompts.tap(
SetDefaultAuthorPlugin.name,
async (prompts: IPromptsHookParams) => {
const prompAuthorEmail = prompts.promptQueue.find(
r => r.name === 'authorName',
);
if (prompAuthorEmail) {
const userEmail = String(
await exec(this.logger, 'git', ['config', '--get', 'user.email']),
);
Object.assign(prompAuthorEmail, {
default() {
return userEmail;
},
validate(author: string) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(author);
},
});
hooks.answers.tap("authorPrefix", (answers) => {
answers.authorPrefix = userEmail.split('@')?.[0] ?? '';
});
}
});
hooks.answers.tap('authorPrefix', answers => {
answers.authorPrefix = userEmail.split('@')?.[0] ?? '';
});
}
},
);
}
}

View File

@@ -1,32 +0,0 @@
/*
* Copyright 2025 coze-dev Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IHooks, IPlugin, IPromptsHookParams } from 'rush-init-project-plugin';
import { parseCommandLineArguments } from './utils/parse-args';
export default class FornaxPlugin implements IPlugin {
apply(hooks: IHooks): void {
hooks.answers.tap('FornaxPlugin', (answers) => {
if(answers.template === 'fornax-child-app') {
if(answers.packageName.startsWith('@flow-devops/fornax-')) {
answers.childAppName = answers.packageName.replace('@flow-devops/fornax-','');
} else {
throw new Error('The initialization of field childAppName failed because the packageName is invalid. Please use "@flow-devops/fornax-xxx."');
}
}
})
}
}

View File

@@ -13,29 +13,43 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IPlugin, IHooks, ITemplatesHook, IPromptsHookParams } from 'rush-init-project-plugin';
import type {
IPlugin,
IHooks,
ITemplatesHook,
IPromptsHookParams,
} from 'rush-init-project-plugin';
// FIXME:
// 按照 https://github.com/bytemate/rush-plugins/blob/main/rush-plugins/rush-init-project-plugin/docs/init_project_configuration.md
// 一文的指引,无法正确 resolve 到对应模块,暂时没找到解决方案,故此处先用相对路径引用
// 未来需要调整为正常的 node_modules 引用方式
import { getTemplatesFolder, getTemplateNameList } from '../../autoinstallers/plugins/node_modules/rush-init-project-plugin/lib/logic/templateFolder';
import {
getTemplatesFolder,
getTemplateNameList,
} from '../../autoinstallers/plugins/node_modules/rush-init-project-plugin/lib/logic/templateFolder';
import { parseCommandLineArguments } from './utils/parse-args';
export default class ShowChatAreaTemplatePlugin implements IPlugin {
export default class ShowTemplatePlugin implements IPlugin {
apply(hooks: IHooks): void {
const args = parseCommandLineArguments();
const answer = JSON.parse(args.answer ?? '{}');
const isShowChatAreaTemplate = answer['showChatAreaTemplate'];
const isShowChatAreaTemplate = answer['showTemplate'];
hooks.templates.tap("ShowChatAreaTemplatePlugin", (templates: ITemplatesHook) => {
hooks.templates.tap('ShowTemplatePlugin', (templates: ITemplatesHook) => {
const templateFolder: string = getTemplatesFolder();
const templateNameList = getTemplateNameList(templateFolder)
const templateNameList = getTemplateNameList(templateFolder);
const filteredNormalTemplateNameList = templateNameList.filter(item => !item.templateFolder?.includes('chat-'));
const filteredNormalTemplateNameList = templateNameList.filter(
item => !item.templateFolder?.includes('chat-'),
);
templates.templates.push(...(isShowChatAreaTemplate ? templateNameList : filteredNormalTemplateNameList ));
templates.templates.push(
...(isShowChatAreaTemplate
? templateNameList
: filteredNormalTemplateNameList),
);
});
}
}

View File

@@ -13,13 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IConfig } from '../../autoinstallers/plugins/node_modules/rush-init-project-plugin';
import ShowChatAreaTemplatePlugin from './ShowChatAreaTemplatePlugin';
import SetFornaxChildAppPlugin from './SetFornaxChildAppPlugin';
import ShowTemplatePlugin from './ShowTemplatePlugin';
const config: IConfig = {
plugins: [new ShowChatAreaTemplatePlugin(), new SetFornaxChildAppPlugin()]
plugins: [new ShowTemplatePlugin()],
};
export default config;