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 WorkflowStep } from '@/workflow/types/Workflow';
|
||||
import { TRIGGER_STEP_ID } from 'twenty-shared/workflow';
|
||||
import { findStepPosition } from '../findStepPosition';
|
||||
import { findStepPosition } from '@/workflow/utils/findStepPosition';
|
||||
|
||||
describe('findStepPosition', () => {
|
||||
const mockSteps: WorkflowStep[] = [
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { getAgentIdFromStep } from '../getAgentIdFromStep';
|
||||
import { getAgentIdFromStep } from '@/workflow/utils/getAgentIdFromStep';
|
||||
|
||||
describe('getAgentIdFromStep', () => {
|
||||
it('should return undefined when stepDefinition is undefined', () => {
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import {
|
||||
type WorkflowTrigger,
|
||||
} from '@/workflow/types/Workflow';
|
||||
import { TRIGGER_STEP_ID } from 'twenty-shared/workflow';
|
||||
import { getStepDefinitionOrThrow } from '../getStepDefinitionOrThrow';
|
||||
import { getStepDefinitionOrThrow } from '@/workflow/utils/getStepDefinitionOrThrow';
|
||||
|
||||
describe('getStepDefinitionOrThrow', () => {
|
||||
const mockTrigger: WorkflowTrigger = {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { getStepOutputSchemaFamilyStateKey } from '../getStepOutputSchemaFamilyStateKey';
|
||||
import { getStepOutputSchemaFamilyStateKey } from '@/workflow/utils/getStepOutputSchemaFamilyStateKey';
|
||||
|
||||
describe('getStepOutputSchemaFamilyStateKey', () => {
|
||||
it('should concatenate workflowVersionId and stepId with a dash', () => {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { getWorkflowVisualizerComponentInstanceId } from '../getWorkflowVisualizerComponentInstanceId';
|
||||
import { getWorkflowVisualizerComponentInstanceId } from '@/workflow/utils/getWorkflowVisualizerComponentInstanceId';
|
||||
|
||||
describe('getWorkflowVisualizerComponentInstanceId', () => {
|
||||
it('should return the same recordId that was passed in', () => {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { isStandaloneVariableString } from '../isStandaloneVariableString';
|
||||
import { isStandaloneVariableString } from '@/workflow/utils/isStandaloneVariableString';
|
||||
|
||||
it('returns false if the provided value is not a string', () => {
|
||||
expect(isStandaloneVariableString(42)).toBe(false);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { parseAndValidateVariableFriendlyStringifiedJson } from '../parseAndValidateVariableFriendlyStringifiedJson';
|
||||
import { parseAndValidateVariableFriendlyStringifiedJson } from '@/workflow/utils/parseAndValidateVariableFriendlyStringifiedJson';
|
||||
|
||||
describe('parseAndValidateVariableFriendlyStringifiedJson', () => {
|
||||
describe('Valid JSON with variable-friendly keys', () => {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { splitWorkflowTriggerEventName } from '../splitWorkflowTriggerEventName';
|
||||
import { splitWorkflowTriggerEventName } from '@/workflow/utils/splitWorkflowTriggerEventName';
|
||||
|
||||
describe('splitWorkflowTriggerEventName', () => {
|
||||
it('should split a basic event name into objectType and event', () => {
|
||||
|
||||
Reference in New Issue
Block a user