Loading...
Loading...
Functional Style Guidelines for TypeScript. Coding rules that must be followed when processing **/*.{ts,tsx,js,jsx} code: Prioritize pure functions and composition, restrict mutability, ensure precise typing, and maintain declarative data transformation.
npx skill4agent add soybeanjs/skills typescript-functional-style**/*.{ts,tsx,js,jsx}<script setup>.vueshared.tsmapfilterfindsomeeveryanycomputedshared.ts@vueuse/coreshared.tsexport function collectEnabledIds(items: Item[]): string[] {
const result: string[] = [];
for (const item of items) {
if (item.enabled) {
result.push(item.id);
}
}
return result;
}export function collectEnabledIds(items: Item[]): string[] {
return items.filter(item => item.enabled).map(item => item.id);
}export function resolveLabel(input?: string | null): string {
let label = '';
if (input) {
label = input.trim();
if (!label) {
label = 'unknown';
}
} else {
label = 'unknown';
}
return label;
}export function resolveLabel(input?: string | null): string {
const label = input?.trim();
if (!label) {
return 'unknown';
}
return label;
}export function getActiveAdminNames(users: User[]): string[] {
const result: string[] = [];
for (const user of users) {
if (user.role === 'admin') {
if (user.active) {
if (!user.deleted) {
result.push(user.name);
}
}
}
}
return result;
}const isActiveAdmin = (user: User): boolean =>
user.role === 'admin' && user.active && !user.deleted;
export function getActiveAdminNames(users: User[]): string[] {
return users.filter(isActiveAdmin).map(user => user.name);
}export function parseConfig(raw: unknown): Config {
return raw as Config;
}export function parseConfig(raw: unknown): Config {
if (!raw || typeof raw !== 'object') {
return { entries: [] };
}
const { entries } = raw as Record<string, unknown>;
return {
entries: Array.isArray(entries) ? entries.filter(isConfigEntry) : []
};
}