knip
Version:
Find unused files, dependencies and exports in your TypeScript and JavaScript projects
37 lines (36 loc) • 1.45 kB
JavaScript
import { toEntry } from '../../util/input.js';
import { toAbsolute } from '../../util/path.js';
import { hasDependency, load } from '../../util/plugin.js';
import { resolveConfig as resolveVitestConfig } from '../vitest/index.js';
const title = 'Ladle';
const enablers = ['@ladle/react'];
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
const config = ['.ladle/config.{mjs,js,ts}'];
const stories = ['src/**/*.stories.{js,jsx,ts,tsx,mdx}'];
const restEntry = ['.ladle/components.{js,jsx,ts,tsx}'];
const entry = [...restEntry, ...stories];
const project = ['.ladle/**/*.{js,jsx,ts,tsx}'];
const resolveEntryPaths = (localConfig, options) => {
const localStories = typeof localConfig.stories === 'string' ? [localConfig.stories] : localConfig.stories;
const viteConfig = localConfig.viteConfig ? [toAbsolute(localConfig.viteConfig, options.cwd)] : [];
const patterns = [...restEntry, ...(localStories ?? stories), ...viteConfig];
return patterns.map(toEntry);
};
const resolveConfig = async (localConfig, options) => {
if (localConfig.viteConfig) {
const viteConfigPath = toAbsolute(localConfig.viteConfig, options.cwd);
const viteConfig = await load(viteConfigPath);
return resolveVitestConfig(viteConfig, options);
}
return [];
};
export default {
title,
enablers,
isEnabled,
config,
entry,
project,
resolveEntryPaths,
resolveConfig,
};