Skip to content

Commit

Permalink
[Breaking] Remove importOrderBuiltinModulesToTop (always true) (#60)
Browse files Browse the repository at this point in the history
Reference: #22 

This is the first step towards removing some options from this plugin,
to make it a bit more opinionated and easy to configure (and maintain).

This PR removes the option for `importOrderBuiltinModulesToTop`, and
instead sorts builtins to the top always.

We could potentially add a special flag for use in `importOrder` if
someone wants to control the order of where the builtins appear, but I'd
like to avoid doing that unless it becomes necessary.
  • Loading branch information
IanVS committed Apr 22, 2023
1 parent e247e1d commit 9d0f3a1
Show file tree
Hide file tree
Showing 16 changed files with 58 additions and 135 deletions.
12 changes: 1 addition & 11 deletions README.md
Expand Up @@ -13,7 +13,7 @@ Since then more critical features & fixes have been added. As a result, this rep
- Do not re-order across side-effect imports
- Combine imports from the same source ([`importOrderMergeDuplicateImports`](#importordermergeduplicateimports))
- Combine type and value imports ([`importOrderCombineTypeAndValueImports`](#importordercombinetypeandvalueimports))
- Sort node.js builtin modules to top ([`importOrderBuiltinModulesToTop`](#importorderbuiltinmodulestotop))
- Sorts node.js builtin modules to top
- Custom import order separation ([`importOrderSeparation`](#importorderseparation))

[We welcome contributions!](./CONTRIBUTING.md)
Expand All @@ -35,7 +35,6 @@ Since then more critical features & fixes have been added. As a result, this rep
- [`importOrderMergeDuplicateImports`](#importordermergeduplicateimports)
- [`importOrderCombineTypeAndValueImports`](#importordercombinetypeandvalueimports)
- [`importOrderParserPlugins`](#importorderparserplugins)
- [`importOrderBuiltinModulesToTop`](#importorderbuiltinmodulestotop)
- [Prevent imports from being sorted](#prevent-imports-from-being-sorted)
- [FAQ / Troubleshooting](#faq--troubleshooting)
- [Compatibility](#compatibility)
Expand Down Expand Up @@ -131,7 +130,6 @@ module.exports = {
singleQuote: true,
semi: true,
importOrder: ['^@core/(.*)$', '^@server/(.*)$', '^@ui/(.*)$', '^[./]'],
importOrderBuiltinModulesToTop: true,
importOrderCaseInsensitive: true,
importOrderParserPlugins: ['typescript', 'jsx', 'decorators-legacy'],
importOrderMergeDuplicateImports: true,
Expand Down Expand Up @@ -352,14 +350,6 @@ with options as a JSON string of the plugin array:
"importOrderParserPlugins": []
```

#### `importOrderBuiltinModulesToTop`

**type**: `boolean`

**default value:** `false`

A boolean value to enable sorting of [`node builtins`](https://nodejs.org/api/module.html#modulebuiltinmodules) to the top of all import groups.

### Prevent imports from being sorted

This plugin supports standard prettier ignore comments. By default, side-effect imports (like
Expand Down
3 changes: 2 additions & 1 deletion src/constants.ts
@@ -1,6 +1,7 @@
import { builtinModules } from 'module';

import { ParserPlugin } from '@babel/parser';
import { expressionStatement, stringLiteral } from '@babel/types';
import { builtinModules } from 'module';

export const flow: ParserPlugin = 'flow';
export const typescript: ParserPlugin = 'typescript';
Expand Down
6 changes: 0 additions & 6 deletions src/index.ts
Expand Up @@ -62,12 +62,6 @@ export const options: Record<
default: false,
description: 'Should specifiers be sorted?',
},
importOrderBuiltinModulesToTop: {
type: 'boolean',
category: 'Global',
default: false,
description: 'Should node-builtins be hoisted to the top?',
},
importOrderMergeDuplicateImports: {
type: 'boolean',
category: 'Global',
Expand Down
2 changes: 0 additions & 2 deletions src/preprocessors/preprocessor.ts
Expand Up @@ -12,7 +12,6 @@ export function preprocessor(code: string, options: PrettierOptions): string {
const {
importOrderParserPlugins,
importOrder,
importOrderBuiltinModulesToTop,
importOrderCaseInsensitive,
importOrderGroupNamespaceSpecifiers,
importOrderMergeDuplicateImports,
Expand Down Expand Up @@ -70,7 +69,6 @@ export function preprocessor(code: string, options: PrettierOptions): string {

const nodesToOutput = getSortedNodes(allOriginalImportNodes, {
importOrder,
importOrderBuiltinModulesToTop,
importOrderCaseInsensitive,
importOrderGroupNamespaceSpecifiers,
importOrderMergeDuplicateImports,
Expand Down
1 change: 0 additions & 1 deletion src/types.ts
Expand Up @@ -35,7 +35,6 @@ export type GetSortedNodes = (
options: Pick<
PrettierOptions,
| 'importOrder'
| 'importOrderBuiltinModulesToTop'
| 'importOrderCaseInsensitive'
| 'importOrderGroupNamespaceSpecifiers'
| 'importOrderMergeDuplicateImports'
Expand Down
1 change: 0 additions & 1 deletion src/utils/__tests__/get-all-comments-from-nodes.spec.ts
Expand Up @@ -11,7 +11,6 @@ const getSortedImportNodes = (code: string, options?: ParserOptions) => {

return getSortedNodes(importNodes, {
importOrder: [],
importOrderBuiltinModulesToTop: false,
importOrderCaseInsensitive: false,
importOrderGroupNamespaceSpecifiers: false,
importOrderMergeDuplicateImports: false,
Expand Down
2 changes: 0 additions & 2 deletions src/utils/__tests__/get-code-from-ast.spec.ts
Expand Up @@ -18,7 +18,6 @@ import a from 'a';
const importNodes = getImportNodes(code);
const sortedNodes = getSortedNodes(importNodes, {
importOrder: [],
importOrderBuiltinModulesToTop: false,
importOrderCaseInsensitive: false,
importOrderGroupNamespaceSpecifiers: false,
importOrderMergeDuplicateImports: false,
Expand Down Expand Up @@ -60,7 +59,6 @@ import type {See} from 'c';
const importNodes = getImportNodes(code, { plugins: ['typescript'] });
const sortedNodes = getSortedNodes(importNodes, {
importOrder: [],
importOrderBuiltinModulesToTop: false,
importOrderCaseInsensitive: false,
importOrderGroupNamespaceSpecifiers: false,
importOrderMergeDuplicateImports: true,
Expand Down

0 comments on commit 9d0f3a1

Please sign in to comment.