1 | import { childContextTypeHandler, codeTypeHandler, componentDocblockHandler, componentMethodsHandler, componentMethodsJsDocHandler, contextTypeHandler, defaultPropsHandler, displayNameHandler, propDocblockHandler, propTypeCompositionHandler, propTypeHandler, } from './handlers/index.js';
|
2 | import { fsImporter } from './importer/index.js';
|
3 | import { ChainResolver, FindAnnotatedDefinitionsResolver, FindExportedDefinitionsResolver, } from './resolver/index.js';
|
4 | const defaultResolvers = [
|
5 | new FindExportedDefinitionsResolver({
|
6 | limit: 1,
|
7 | }),
|
8 | new FindAnnotatedDefinitionsResolver(),
|
9 | ];
|
10 | const defaultResolver = new ChainResolver(defaultResolvers, {
|
11 | chainingLogic: ChainResolver.Logic.ALL,
|
12 | });
|
13 | const defaultImporter = fsImporter;
|
14 | export const defaultHandlers = [
|
15 | propTypeHandler,
|
16 | contextTypeHandler,
|
17 | childContextTypeHandler,
|
18 | propTypeCompositionHandler,
|
19 | propDocblockHandler,
|
20 | codeTypeHandler,
|
21 | defaultPropsHandler,
|
22 | componentDocblockHandler,
|
23 | displayNameHandler,
|
24 | componentMethodsHandler,
|
25 | componentMethodsJsDocHandler,
|
26 | ];
|
27 | export function createConfig(inputConfig) {
|
28 | const { babelOptions, filename, handlers, importer, resolver } = inputConfig;
|
29 | const config = {
|
30 | babelOptions: { ...babelOptions },
|
31 | handlers: handlers ?? defaultHandlers,
|
32 | importer: importer ?? defaultImporter,
|
33 | resolver: resolver ?? defaultResolver,
|
34 | };
|
35 | if (filename) {
|
36 | config.babelOptions.filename = filename;
|
37 | }
|
38 | return config;
|
39 | }
|