Add normalizeSvgIconName utility
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
export function normalizeSvgIconName(iconName?: string): string | undefined {
|
||||
if (!iconName || iconName.startsWith("octicon")) {
|
||||
return iconName;
|
||||
}
|
||||
|
||||
if (iconName.startsWith("lucide ")) {
|
||||
const lucideName = iconName.slice("lucide ".length).split(".")[0].trim();
|
||||
return lucideName ? `lucide-${lucideName}` : undefined;
|
||||
}
|
||||
|
||||
return iconName;
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import { promises as fs } from "fs";
|
||||
import { safeLoad } from "js-yaml";
|
||||
import { basename, extname, join } from "path";
|
||||
import { exec } from "./exec";
|
||||
import { normalizeSvgIconName } from "../shared/icon-utils";
|
||||
|
||||
interface WorkflowDesc {
|
||||
folder: string;
|
||||
@@ -30,19 +31,6 @@ interface WorkflowsCheckResult {
|
||||
incompatibleWorkflows: WorkflowDesc[];
|
||||
}
|
||||
|
||||
function normalizeSvgIconName(iconName?: string): string | undefined {
|
||||
if (!iconName || iconName.startsWith("octicon")) {
|
||||
return iconName;
|
||||
}
|
||||
|
||||
if (iconName.startsWith("lucide ")) {
|
||||
const lucideName = iconName.slice("lucide ".length).split(".")[0].trim();
|
||||
return lucideName ? `lucide-${lucideName}` : undefined;
|
||||
}
|
||||
|
||||
return iconName;
|
||||
}
|
||||
|
||||
async function checkWorkflows(
|
||||
folders: string[],
|
||||
enabledActions: string[],
|
||||
|
||||
@@ -4,6 +4,7 @@ import { safeLoad } from "js-yaml";
|
||||
import { basename, extname, join, dirname } from "path";
|
||||
import { Validator as validator } from "jsonschema";
|
||||
import { endGroup, error, info, setFailed, startGroup } from '@actions/core';
|
||||
import { normalizeSvgIconName } from '../shared/icon-utils';
|
||||
|
||||
interface WorkflowWithErrors {
|
||||
id: string;
|
||||
@@ -128,15 +129,7 @@ async function checkWorkflow(workflowPath: string, propertiesPath: string, allow
|
||||
|
||||
if (properties.iconName) {
|
||||
if(! /^octicon\s+/.test(properties.iconName)) {
|
||||
let svgIconName: string | undefined = properties.iconName
|
||||
if (properties.iconName.startsWith("lucide ")) {
|
||||
const lucideName = properties.iconName.slice("lucide ".length).split(".")[0].trim()
|
||||
if(!lucideName) {
|
||||
svgIconName = undefined
|
||||
} else {
|
||||
svgIconName = `lucide-${lucideName}`
|
||||
}
|
||||
}
|
||||
const svgIconName = normalizeSvgIconName(properties.iconName);
|
||||
|
||||
if(!svgIconName) {
|
||||
workflowErrors.errors.push(`No icon named ${properties.iconName} found`)
|
||||
|
||||
Reference in New Issue
Block a user