Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/nodelint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,18 @@ jobs:
node-version: 24
- run: npm ci
- run: npm run ci-lint
run-typecheck:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm ci
- run: npm run typecheck
run-node-lint-electron:
runs-on: ubuntu-latest
defaults:
Expand Down
5 changes: 0 additions & 5 deletions client/babel.config.js

This file was deleted.

81 changes: 0 additions & 81 deletions client/eslint.config.mjs

This file was deleted.

100 changes: 100 additions & 0 deletions client/eslint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
import js from '@eslint/js';
import pluginVue from 'eslint-plugin-vue';
import globals from 'globals';
import tsParser from '@typescript-eslint/parser';
import tsPlugin from '@typescript-eslint/eslint-plugin';
import prettierConfig from 'eslint-config-prettier';
import prettierPlugin from 'eslint-plugin-prettier';

const sharedRules = {
'prettier/prettier': 'error',
...prettierConfig.rules,
'max-len': 'off',
'no-unused-vars': 'off',
'vue/no-unused-vars': 'off',
'no-plusplus': 'off',
'no-param-reassign': [
'error',
{
props: true,
ignorePropertyModificationsFor: ['state', 'acc', 'e'],
},
],
};

const tsRules = {
...tsPlugin.configs.recommended.rules,
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': 'off',
// Vue 2 Options API patterns that are valid in this codebase
'@typescript-eslint/no-this-alias': 'off',
'@typescript-eslint/ban-types': 'off',
};

const sharedGlobals = {
...globals.browser,
...globals.node,
...globals.es2021,
};

export default [
{
ignores: [
'**/node_modules/**',
'**/dist/**',
'../server/static/**',
'junit/**',
'*.backup',
'src/docs/**',
],
},
js.configs.recommended,
...pluginVue.configs['flat/vue2-recommended'],
// TypeScript source files
{
files: ['**/*.ts'],
plugins: {
'@typescript-eslint': tsPlugin,
prettier: prettierPlugin,
},
languageOptions: {
parser: tsParser,
parserOptions: { ecmaVersion: 2022, sourceType: 'module' },
globals: sharedGlobals,
},
rules: { ...tsRules, ...sharedRules },
},
// Vue SFCs — all use <script lang="ts">
{
files: ['**/*.vue'],
plugins: {
'@typescript-eslint': tsPlugin,
prettier: prettierPlugin,
},
languageOptions: {
// eslint-plugin-vue ships vue-eslint-parser as its script block parser
parser: (pluginVue.processors as any)['.vue'].parser,
parserOptions: {
parser: tsParser,
ecmaVersion: 2022,
sourceType: 'module',
},
globals: sharedGlobals,
},
rules: { ...tsRules, ...sharedRules },
},
// Test files — declare vitest globals
{
files: ['**/*.test.ts'],
languageOptions: {
globals: {
describe: 'readonly',
it: 'readonly',
expect: 'readonly',
vi: 'readonly',
beforeEach: 'readonly',
afterEach: 'readonly',
},
},
},
];
2 changes: 1 addition & 1 deletion client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<strong>We're sorry but DigiScript doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

Expand Down
Loading
Loading