diff --git a/src/core/declaration.ts b/src/core/declaration.ts index 71222d45..2d96dc78 100644 --- a/src/core/declaration.ts +++ b/src/core/declaration.ts @@ -7,10 +7,11 @@ import type { Context } from './context' import { getTransformedPath } from './utils' import { resolveTypeImports } from './type-imports/detect' -const multilineCommentsRE = /\/\*.*?\*\//gms +const multilineCommentsRE = /\/\*.*?\*\//gs const singlelineCommentsRE = /\/\/.*$/gm function extractImports(code: string) { + // eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/no-misleading-capturing-group return Object.fromEntries(Array.from(code.matchAll(/['"]?([^\s'"]+)['"]?\s*:\s*(.+?)[,;\n]/g)).map(i => [i[1], i[2]])) } @@ -26,11 +27,11 @@ export function parseDeclaration(code: string): DeclarationImports | undefined { component: {}, directive: {}, } - const componentDeclaration = /export\s+interface\s+GlobalComponents\s*{(.*?)}/s.exec(code)?.[0] + const componentDeclaration = /export\s+interface\s+GlobalComponents\s*\{.*?\}/s.exec(code)?.[0] if (componentDeclaration) imports.component = extractImports(componentDeclaration) - const directiveDeclaration = /export\s+interface\s+ComponentCustomProperties\s*{(.*?)}/s.exec(code)?.[0] + const directiveDeclaration = /export\s+interface\s+ComponentCustomProperties\s*\{.*?\}/s.exec(code)?.[0] if (directiveDeclaration) imports.directive = extractImports(directiveDeclaration) diff --git a/src/core/resolvers/bootstrap-vue.ts b/src/core/resolvers/bootstrap-vue.ts index 2c61432c..c49dac1e 100644 --- a/src/core/resolvers/bootstrap-vue.ts +++ b/src/core/resolvers/bootstrap-vue.ts @@ -16,9 +16,9 @@ const COMPONENT_ALIASES: Record = { BBtnGroup: 'BButtonGroup', BBtnToolbar: 'BButtonToolbar', BCheck: 'BFormCheckbox', - BCheckGroup: 'BFormCheckboxGroup', BCheckbox: 'BFormCheckbox', BCheckboxGroup: 'BFormCheckboxGroup', + BCheckGroup: 'BFormCheckboxGroup', BDatalist: 'BFormDatalist', BDatepicker: 'BFormDatepicker', BDd: 'BDropdown', diff --git a/src/core/resolvers/layui-vue.ts b/src/core/resolvers/layui-vue.ts index bad214b7..90319779 100644 --- a/src/core/resolvers/layui-vue.ts +++ b/src/core/resolvers/layui-vue.ts @@ -100,7 +100,7 @@ export interface LayuiVueResolverOptions { const layuiRE = /^Lay[A-Z]/ const layerRE = /^(layer|LayLayer)$/ -const iconsRE = /^([A-Z][\w]+Icon|LayIcon)$/ +const iconsRE = /^([A-Z]\w+Icon)$/ let libName = '@layui/layui-vue' function lowerCamelCase(str: string) { diff --git a/src/core/transforms/component.ts b/src/core/transforms/component.ts index 1f7fbc00..f27b2cba 100644 --- a/src/core/transforms/component.ts +++ b/src/core/transforms/component.ts @@ -9,7 +9,7 @@ const debug = Debug('unplugin-vue-components:transform:component') function resolveVue2(code: string, s: MagicString) { const results: ResolveResult[] = [] - for (const match of code.matchAll(/\b(_c|h)\([\s\n\t]*['"](.+?)["']([,)])/g)) { + for (const match of code.matchAll(/\b(_c|h)\(\s*['"](.+?)["']([,)])/g)) { const [full, renderFunctionName, matchedName, append] = match if (match.index != null && matchedName && !matchedName.startsWith('_')) { const start = match.index @@ -30,7 +30,7 @@ function resolveVue3(code: string, s: MagicString) { /** * when using some plugin like plugin-vue-jsx, resolveComponent will be imported as resolveComponent1 to avoid duplicate import */ - for (const match of code.matchAll(/_resolveComponent[0-9]*\("(.+?)"\)/g)) { + for (const match of code.matchAll(/_resolveComponent\d*\("(.+?)"\)/g)) { const matchedName = match[1] if (match.index != null && matchedName && !matchedName.startsWith('_')) { const start = match.index diff --git a/src/types.ts b/src/types.ts index db115e6d..0c839cc8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -179,7 +179,7 @@ export interface Options { } export type ResolvedOptions = Omit< -Required, + Required, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration' > & { resolvers: ComponentResolverObject[]