prettier-plugin-sort-imports
prettier-plugin-sort-imports copied to clipboard
Plugin crashes reading file: Cannot read properties of undefined (reading 'buildError')
trafficstars
Your Environment
- Prettier version: 3.1.0
- node version 20.11.1
- package manager: [email protected]
- IDE: [CLI, IntelliJ]
- typescript: 4.7.2
Describe the bug
plugin throws an error when parsing a specific file.
That file contains an import for QuoteSelectPet, and that same name is used elsewhere in the file as const QuoteSelectionPet.
To Reproduce
parse this file:
// quote-selection-pets.ts
import { Factory } from 'rosie';
import { InsurancePlanCode } from '@src/helpers/plan-constants.helper';
import {
CoInsurancePercentage,
DeductibleDollars,
} from '@src/helpers/quote-product.helper';
// this import is the problem
import {
Financials,
QuoteSelectionPet,
SelectedQuoteProduct,
} from '@src/@types/quotes';
import freeze from '@test/helpers/freeze';
import SelectedQuoteProductsFactory, {
SelectableProductCodes,
} from '@test/fixtures/selected-quote-products';
const QuoteSelectionPet = new Factory<QuoteSelectionPet>()
class QuoteSelectionPetsFactory {
build(
name: 'QuoteSelectionPet',
attrs?: Partial<QuoteSelectionPet>,
options?: {
selectedProductKeys?: SelectableProductCodes[];
withEmployeeDiscount?: boolean;
withMultipetDiscount?: boolean;
withBundleDiscount?: boolean;
selectedDeductible?: DeductibleDollars;
},
): QuoteSelectionPet {
return freeze(QuoteSelectionPet.build(attrs, options));
}
}
export default new QuoteSelectionPetsFactory();
Expected behavior
Prettier (with the help of the plugin) should be able to: 1 - Detect when the imports aren't sorted properly (without --write) or 2 - sort the imports properly (with --write)
Screenshots, code sample, etc
Configuration File (cat .prettierrc, prettier.config.js, .prettier.js)
"prettier": {
"semi": true,
"trailingComma": "all",
"singleQuote": true,
"importOrder": [
"^@src/(.*)(?<!css)$",
"^@test/(.*)$",
"^[./]",
"^(.*)\\.s?css$"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"plugins": [
"prettier-plugin-java",
"@trivago/prettier-plugin-sort-imports"
]
},
Error log
~/IdeaProjects/hc-pet-insurance % npx prettier --write src/test/js/fixtures/quote-selection-pets.ts
src/test/js/fixtures/quote-selection-pets.ts
[error] src/test/js/fixtures/quote-selection-pets.ts: TypeError: Cannot read properties of undefined (reading 'buildError')
[error] at Scope.checkBlockScopedCollisions (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/scope/index.js:399:22)
[error] at Scope.registerBinding (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/scope/index.js:535:16)
[error] at Scope.registerDeclaration (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/scope/index.js:487:14)
[error] at Object.BlockScoped (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/scope/index.js:254:12)
[error] at Object.newFn (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/visitors.js:192:17)
[error] at NodePath._call (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/path/context.js:46:20)
[error] at NodePath.call (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/path/context.js:32:14)
[error] at NodePath.visit (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/path/context.js:82:31)
[error] at TraversalContext.visitQueue (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/context.js:86:16)
[error] at TraversalContext.visitMultiple (/Users/jspradlin1/IdeaProjects/hc-pet-insurance/node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/lib/context.js:61:17)
Contribute to @trivago/prettier-plugin-sort-imports
- [ ] I'm willing to fix this bug 🥇
I encounter this issue too.
Same