feat: enforce @/ alias for imports and fix all relative parent imports (#16787)
## Summary This PR enforces the use of `@/` alias for imports instead of relative parent imports (`../`). ## Changes ### ESLint Configuration - Added `no-restricted-imports` pattern in `eslint.config.react.mjs` to block `../*` imports with the message "Relative parent imports are not allowed. Use @/ alias instead." - Removed the non-working `import/no-relative-parent-imports` rule (doesn't work properly in ESLint flat config) ### VS Code Settings - Added `javascript.preferences.importModuleSpecifier: non-relative` to `.vscode/settings.json` (TypeScript setting was already there) ### Code Fixes - Fixed **941 relative parent imports** across **706 files** in `packages/twenty-front` - All `../` imports converted to use `@/` alias ## Why - Consistent import style across the codebase - Easier to move files without breaking imports - Better IDE support for auto-imports - Clearer understanding of where imports come from
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { type ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from 'twenty-shared/types';
|
||||
import { areViewFiltersEqual } from '../areViewFiltersEqual';
|
||||
import { areViewFiltersEqual } from '@/views/utils/areViewFiltersEqual';
|
||||
|
||||
describe('areViewFiltersEqual', () => {
|
||||
const baseFilter: ViewFilter = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from 'twenty-shared/types';
|
||||
import { getViewFiltersToCreate } from '../getViewFiltersToCreate';
|
||||
import { getViewFiltersToCreate } from '@/views/utils/getViewFiltersToCreate';
|
||||
|
||||
describe('getViewFiltersToCreate', () => {
|
||||
const baseFilter: ViewFilter = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from 'twenty-shared/types';
|
||||
import { getViewFiltersToDelete } from '../getViewFiltersToDelete';
|
||||
import { getViewFiltersToDelete } from '@/views/utils/getViewFiltersToDelete';
|
||||
|
||||
describe('getViewFiltersToDelete', () => {
|
||||
const baseFilter: ViewFilter = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from 'twenty-shared/types';
|
||||
import { getViewFiltersToUpdate } from '../getViewFiltersToUpdate';
|
||||
import { getViewFiltersToUpdate } from '@/views/utils/getViewFiltersToUpdate';
|
||||
|
||||
describe('getViewFiltersToUpdate', () => {
|
||||
const baseFilter: ViewFilter = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type CoreViewSortEssential } from '@/views/types/CoreViewSortEssential';
|
||||
import { ViewSortDirection } from '~/generated/graphql';
|
||||
import { getViewSortsToCreate } from '../getViewSortsToCreate';
|
||||
import { getViewSortsToCreate } from '@/views/utils/getViewSortsToCreate';
|
||||
|
||||
describe('getViewSortsToCreate', () => {
|
||||
const baseSort: CoreViewSortEssential = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type CoreViewSortEssential } from '@/views/types/CoreViewSortEssential';
|
||||
import { ViewSortDirection } from '~/generated/graphql';
|
||||
import { getViewSortsToDelete } from '../getViewSortsToDelete';
|
||||
import { getViewSortsToDelete } from '@/views/utils/getViewSortsToDelete';
|
||||
|
||||
describe('getViewSortsToDelete', () => {
|
||||
const baseSort: CoreViewSortEssential = {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { type CoreViewSortEssential } from '@/views/types/CoreViewSortEssential';
|
||||
import { ViewSortDirection } from '~/generated/graphql';
|
||||
import { getViewSortsToUpdate } from '../getViewSortsToUpdate';
|
||||
import { getViewSortsToUpdate } from '@/views/utils/getViewSortsToUpdate';
|
||||
|
||||
describe('getViewSortsToUpdate', () => {
|
||||
const baseSort: CoreViewSortEssential = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { type FieldMetadata } from '@/object-record/record-field/ui/types/FieldMetadata';
|
||||
import { type ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition';
|
||||
|
||||
import { type ViewField } from '../types/ViewField';
|
||||
import { type ViewField } from '@/views/types/ViewField';
|
||||
|
||||
export const mapColumnDefinitionsToViewFields = (
|
||||
columnDefinitions: ColumnDefinition<FieldMetadata>[],
|
||||
|
||||
@@ -5,7 +5,7 @@ import { moveArrayItem } from '~/utils/array/moveArrayItem';
|
||||
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
|
||||
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { type ViewField } from '../types/ViewField';
|
||||
import { type ViewField } from '@/views/types/ViewField';
|
||||
|
||||
export const mapViewFieldsToColumnDefinitions = ({
|
||||
columnDefinitions,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { isSystemSearchVectorField } from '@/object-record/utils/isSystemSearchV
|
||||
import { type CompositeFieldSubFieldName } from '@/settings/data-model/types/CompositeFieldSubFieldName';
|
||||
import { getFilterTypeFromFieldType, isDefined } from 'twenty-shared/utils';
|
||||
import { type CoreViewFilter } from '~/generated/graphql';
|
||||
import { type ViewFilter } from '../types/ViewFilter';
|
||||
import { type ViewFilter } from '@/views/types/ViewFilter';
|
||||
|
||||
export const mapViewFiltersToFilters = (
|
||||
viewFilters: ViewFilter[] | CoreViewFilter[],
|
||||
|
||||
Reference in New Issue
Block a user