Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
kazupon committed Mar 28, 2024
1 parent e3e2416 commit ee93eba
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 82 deletions.
48 changes: 7 additions & 41 deletions tools/update-lib-configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,48 +6,14 @@ import fs from 'fs/promises'
import path from 'path'
import { format, Options } from 'prettier'
import prettierConfig from '../.prettierrc'

import { categories, TCategory } from './utils/categories'

const extendsCategories = {
csf: null,
recommended: null,
'csf-strict': 'csf',
}

const externalRuleOverrides = {
'react-hooks/rules-of-hooks': 'off',
'import/no-anonymous-default-export': 'off',
}

function formatRules(rules: TCategory['rules'], exclude?: string[]) {
const obj = rules.reduce(
(setting, rule) => {
if (!exclude?.includes(rule.ruleId)) {
setting[rule.ruleId] = rule.meta.docs.recommended || 'error'
}
return setting
},
{ ...externalRuleOverrides }
)

return JSON.stringify(obj, null, 2)
}

function formatSingleRule(rules: TCategory['rules'], ruleId: string) {
const ruleOpt = rules.find((rule) => rule.ruleId === ruleId)?.meta.docs.recommended || 'error'

return JSON.stringify({ [ruleId]: ruleOpt }, null, 2)
}

const SUPPORTED_EXTENSIONS = ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs']
const STORIES_GLOBS = [
`'*.stories.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
`'*.story.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
]

// Other files that will be linted
const MAIN_JS_FILE = [`'.storybook/main.@(js|cjs|mjs|ts)'`]
import {
extendsCategories,
STORIES_GLOBS,
MAIN_JS_FILE,
formatRules,
formatSingleRule,
} from './utils/updates'

function formatCategory(category: TCategory) {
const extendsCategoryId = extendsCategories[category.categoryId]
Expand Down
48 changes: 7 additions & 41 deletions tools/update-lib-flat-configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,48 +6,14 @@ import fs from 'fs/promises'
import path from 'path'
import { format, Options } from 'prettier'
import prettierConfig from '../.prettierrc'

import { categories, TCategory } from './utils/categories'

const extendsCategories = {
csf: null,
recommended: null,
'csf-strict': 'csf',
}

const externalRuleOverrides = {
'react-hooks/rules-of-hooks': 'off',
'import/no-anonymous-default-export': 'off',
}

function formatRules(rules: TCategory['rules'], exclude?: string[]) {
const obj = rules.reduce(
(setting, rule) => {
if (!exclude?.includes(rule.ruleId)) {
setting[rule.ruleId] = rule.meta.docs.recommended || 'error'
}
return setting
},
{ ...externalRuleOverrides }
)

return JSON.stringify(obj, null, 2)
}

function formatSingleRule(rules: TCategory['rules'], ruleId: string) {
const ruleOpt = rules.find((rule) => rule.ruleId === ruleId)?.meta.docs.recommended || 'error'

return JSON.stringify({ [ruleId]: ruleOpt }, null, 2)
}

const SUPPORTED_EXTENSIONS = ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs']
const STORIES_GLOBS = [
`'*.stories.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
`'*.story.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
]

// Other files that will be linted
const MAIN_JS_FILE = [`'.storybook/main.@(js|cjs|mjs|ts)'`]
import {
extendsCategories,
STORIES_GLOBS,
MAIN_JS_FILE,
formatRules,
formatSingleRule,
} from './utils/updates'

function formatCategory(category: TCategory) {
const extendsCategoryId = extendsCategories[category.categoryId]
Expand Down
41 changes: 41 additions & 0 deletions tools/utils/updates.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { categories, TCategory } from './categories'

export const extendsCategories = {
csf: null,
recommended: null,
'csf-strict': 'csf',
}

const externalRuleOverrides = {
'react-hooks/rules-of-hooks': 'off',
'import/no-anonymous-default-export': 'off',
}

export function formatRules(rules: TCategory['rules'], exclude?: string[]) {
const obj = rules.reduce(
(setting, rule) => {
if (!exclude?.includes(rule.ruleId)) {
setting[rule.ruleId] = rule.meta.docs.recommended || 'error'
}
return setting
},
{ ...externalRuleOverrides }
)

return JSON.stringify(obj, null, 2)
}

export function formatSingleRule(rules: TCategory['rules'], ruleId: string) {
const ruleOpt = rules.find((rule) => rule.ruleId === ruleId)?.meta.docs.recommended || 'error'

return JSON.stringify({ [ruleId]: ruleOpt }, null, 2)
}

export const SUPPORTED_EXTENSIONS = ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs']
export const STORIES_GLOBS = [
`'*.stories.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
`'*.story.@(${SUPPORTED_EXTENSIONS.join('|')})'`,
]

// Other files that will be linted
export const MAIN_JS_FILE = [`'.storybook/main.@(js|cjs|mjs|ts)'`]

0 comments on commit ee93eba

Please sign in to comment.