【发布时间】:2023-02-15 17:50:39
【问题描述】:
我正在寻找一种方法来验证脚手架中输入的结构。如果字符串在模式“kehab case”中。
我希望能够使用例如 RegEx 来进行此验证。
由于我们必须在 yaml 文件中编写这些步骤,因此我还没有找到执行此验证的有效方法。
笔记:请记住,“react-jsonschema”用于表单的“构建”。
【问题讨论】:
标签: yaml scaffolding react-jsonschema-forms backstage
我正在寻找一种方法来验证脚手架中输入的结构。如果字符串在模式“kehab case”中。
我希望能够使用例如 RegEx 来进行此验证。
由于我们必须在 yaml 文件中编写这些步骤,因此我还没有找到执行此验证的有效方法。
笔记:请记住,“react-jsonschema”用于表单的“构建”。
【问题讨论】:
标签: yaml scaffolding react-jsonschema-forms backstage
会是……像下面这样:
import {
scaffolderPlugin,
createScaffolderFieldExtension,
} from '@backstage/plugin-scaffolder';
import {
ValidateKebabCase,
validateKebabCaseValidation,
} from './ValidateKebabCase/ValidateKebabCaseExtension';
export const ValidateKebabCaseFieldExtension = scaffolderPlugin.provide(
createScaffolderFieldExtension({
name: 'ValidateKebabCase',
component: ValidateKebabCase,
validation: validateKebabCaseValidation,
}),
);
和
export const validateKebabCaseValidation = (
value: string,
validation: FieldValidation,
) => {
const kebabCase = /^[a-z0-9-_]+$/g.test(value);
if (kebabCase === false) {
validation.addError(
`Only use letters, numbers, hyphen ("-") and underscore ("_").`,
);
}
};
查看我们的文档以获取完整示例:https://backstage.io/docs/features/software-templates/writing-custom-field-extensions#creating-a-field-extension
【讨论】: