Skip to content

Commit b6f24ff

Browse files
authored
linter: helps minimize diffs by enforcing separation of exports from declarations (#255)
- enforces separation of exports from their declarations - enforces placement at the end of files This has two effects: - Less keywords surrounding class decorations: - after: `default export class ... extends ... implements {}` - before: `class ... extends ... implements {}` - Easier to see defaults relate to non-defaults since they're all at the bottom of each file
1 parent 203bc99 commit b6f24ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+183
-50
lines changed

cypress.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ import {
22
defineConfig,
33
} from 'cypress';
44

5-
export default defineConfig({
5+
const cypressConfig = defineConfig({
66
e2e: {
77
specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}',
88
baseUrl : 'http://localhost:4173',
99
},
1010
});
11+
12+
export {
13+
cypressConfig as default,
14+
};

eslint.config.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ const importPluginConfigs: ConfigWithExtends[] = [
3232
},
3333
},
3434
rules: {
35+
'import/exports-last': [
36+
'error', // Encourages decoupling the export of a module from its declaration, which leads to cleaner diffs
37+
],
3538
'import/order': [
3639
'error',
3740
{
@@ -93,6 +96,11 @@ const configWithVueTS = defineConfigWithVueTs(
9396
'no-implicit-coercion': [
9497
'error', // Using constructors, factories, and parsers for coercion rather than operators leads to less confusing behavior
9598
],
99+
'no-restricted-exports': ['error', {
100+
restrictDefaultExports: {
101+
direct: true, // Keeping the export of something separate from its declaration leads to cleaner diffs. Prefer using `export { Foo as default }`
102+
},
103+
}],
96104
'no-restricted-syntax': [
97105
'error',
98106
{
@@ -171,7 +179,7 @@ const configWithVueTS = defineConfigWithVueTs(
171179
},
172180
);
173181

174-
export default tseslint.config([
182+
const completeConfig = tseslint.config([
175183
...configWithVueTS,
176184
{
177185
name : 'shark-ui/safety-override',
@@ -187,3 +195,7 @@ export default tseslint.config([
187195
},
188196
},
189197
]);
198+
199+
export {
200+
completeConfig as default,
201+
};

lint-staged.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import type {
22
Configuration,
33
} from 'lint-staged';
44

5-
export default {
5+
const lintStagedConfig = {
66
'*': 'npm run lint',
77
} satisfies Configuration;
8+
9+
export {
10+
lintStagedConfig as default,
11+
};

src/features/TextToImage/config/utilities/DynamicConfig/EndpointResponseError.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ class DynamicConfig_EndpointResponseError extends Attempt.ActionableError<'Dynam
1414
}
1515
}
1616

17-
export default DynamicConfig_EndpointResponseError;
17+
export {
18+
DynamicConfig_EndpointResponseError as default,
19+
};

src/features/TextToImage/config/utilities/DynamicConfig/FetchingError.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ class DynamicConfig_FetchingError extends Attempt.ActionableError<'DynamicConfig
1111
}
1212
}
1313

14-
export default DynamicConfig_FetchingError;
14+
export {
15+
DynamicConfig_FetchingError as default,
16+
};

src/features/TextToImage/config/utilities/StaticConfig/StaticConfigReadingError.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ class StaticConfigReadingError extends Attempt.ActionableError<'StaticConfigRead
1111
}
1212
}
1313

14-
export default StaticConfigReadingError;
14+
export {
15+
StaticConfigReadingError as default,
16+
};

src/features/TextToImage/models/SDXL/client/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ type OutcomeOfGeneratingTextToImageOutput = Attempt.Outcome<Output,
4444
| Server.ConnectionError
4545
>;
4646

47-
export const generateOutputFrom = async (
47+
const generateOutputFrom = async (
4848
given: {
4949
textToImageRequestBody: Pick<GenerateFromTextRequest['textToImageRequestBody'],
5050
| 'textPrompts'
@@ -136,4 +136,6 @@ const SDXLTextToImageClient = {
136136
generateOutputFrom,
137137
};
138138

139-
export default SDXLTextToImageClient;
139+
export {
140+
SDXLTextToImageClient as default,
141+
};

src/features/TextToImage/webAPI/Server/ServerConnectionError.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@ class TextToImage_Server_ConnectionError extends Attempt.ActionableError<'TextTo
1212
}
1313
}
1414

15-
export default TextToImage_Server_ConnectionError;
15+
export {
16+
TextToImage_Server_ConnectionError as default,
17+
};

src/features/TextToImage/webAPI/Server/ServerSpecificationError.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@ class TextToImage_Server_SpecificationError extends Attempt.ActionableError<'Tex
2626
}
2727
}
2828

29-
export default TextToImage_Server_SpecificationError;
29+
export {
30+
TextToImage_Server_SpecificationError as default,
31+
};

src/features/TextToImage/webAPI/Server/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ import {
1010
emptyConfig,
1111
} from '../../config';
1212

13-
export {
14-
default as ConnectionError,
15-
} from './ServerConnectionError';
16-
1713
import TextToImage_Server_SpecificationError from './ServerSpecificationError';
1814

1915
const environmentKeyForOriginOfTextToImageServer = 'VITE__TEXT_TO_IMAGE__API__SERVER__ORIGIN';
@@ -58,6 +54,10 @@ const retrieveCurrentTextToImageServer = (): Promise<
5854
return ends.inFailureDueTo(newSpecificationError);
5955
});
6056

57+
export {
58+
default as ConnectionError,
59+
} from './ServerConnectionError';
60+
6161
export {
6262
textToImageServerAccordingToEnvironment as accordingToEnvironment,
6363
retrieveCurrentTextToImageServer as retrieveCurrent,

0 commit comments

Comments
 (0)