chore: remove useless templates (#330)
This commit is contained in:
@@ -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}`;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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] ?? '';
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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."');
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user