Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
519f6ae
Rename vue-components/src/utils/pubsub to TypeScript
yihao03 Feb 11, 2026
4e7990f
Adapt vue-components/src/utils/pubsub to TypeScript
yihao03 Feb 11, 2026
7d5345b
Rename vue-components/src/utils/urls to TypeScript
yihao03 Feb 11, 2026
50bc202
Adapt vue-components/src/utils/urls to TypeScript
yihao03 Feb 11, 2026
582ab95
Rename vue-components/src/utils/dropdown to TypeScript
yihao03 Feb 11, 2026
b2b7327
Adapt vue-components/src/utils/dropdown to TypeScript
yihao03 Feb 11, 2026
651341a
Rename vue-components/src/utils/submenu to TypeScript
yihao03 Feb 11, 2026
edc2b25
Adapt vue-components/src/utils/submenu to TypeScript
yihao03 Feb 11, 2026
f854481
Rename vue-components/src/utils/colors to TypeScript
yihao03 Feb 11, 2026
87cb766
Adapt vue-components/src/utils/colors to TypeScript
yihao03 Feb 11, 2026
af23ecc
Rename vue-components/src/utils/utils to TypeScript
yihao03 Feb 11, 2026
1a86eff
Adapt vue-components/src/utils/utils to TypeScript
yihao03 Feb 11, 2026
f4785a8
Rename vue-components/src/utils/NodeList to TypeScript
yihao03 Feb 11, 2026
d5ce791
Adapt vue-components/src/utils/NodeList to TypeScript
yihao03 Feb 11, 2026
7f5f434
Add TypeScript infrastructure for vue-components package
yihao03 Feb 11, 2026
71a5060
Refactor getJSON to use native Promise
yihao03 Feb 11, 2026
822c4fe
Add tsconfig.json and typecheck script for vue-components
yihao03 Feb 11, 2026
e927eec
Update eslint config
yihao03 Feb 11, 2026
9c28289
Add babel preset-typescript to root level config
yihao03 Feb 11, 2026
2cd242b
Replace coerce object with toBoolean
yihao03 Feb 12, 2026
f84db8a
Remove redundant ignores
yihao03 Feb 15, 2026
0e033be
Add typecheck to test script
yihao03 Feb 15, 2026
b9e028b
Merge branch 'master' into feat/migrate-vue-utils-to-ts
gerteck Feb 20, 2026
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
6 changes: 4 additions & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,10 @@ packages/cli/dist/**/*.js

packages/vue-components/src/directives/Closeable.js
packages/vue-components/src/directives/Float.js
packages/vue-components/src/utils/NodeList.js
packages/vue-components/src/utils/utils.js

# Legacy code with pre-existing lint issues
packages/vue-components/src/utils/NodeList.ts
packages/vue-components/src/utils/utils.ts

# --- packages/vue-components end ---

Expand Down
16 changes: 16 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ module.exports = {
},
"plugins": ["lodash"],
"extends": ["airbnb-base", "plugin:lodash/recommended"],
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".ts", ".vue", ".json"],
},
},
},
"rules": {
"array-bracket-newline": ["error", { "multiline": true }],
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
Expand All @@ -32,6 +39,14 @@ module.exports = {
"lodash/prefer-noop": [0],
"max-len": ["error", { "code": 110 }],
"no-param-reassign": ["error", { "props": false }],
"import/extensions": [
"error",
"ignorePackages",
{
"js": "never",
"ts": "never",
},
],
"operator-linebreak": ["error", "before"],
// override airbnb-base dev dependencies, latest version does not white list __mocks__
"import/no-extraneous-dependencies": [
Expand All @@ -55,6 +70,7 @@ module.exports = {
"project": [
"./tsconfig.lint.json",
"./packages/core/tsconfig.lint.json",
"./packages/vue-components/tsconfig.json",
],
},
"plugins": ["@typescript-eslint", "lodash"],
Expand Down
2 changes: 1 addition & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
presets: ['@babel/preset-env'],
presets: ['@babel/preset-env', '@babel/preset-typescript'],
plugins: ['@babel/plugin-transform-runtime'],
};
674 changes: 386 additions & 288 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
"updatetest": "lerna run updatetest --stream"
},
"devDependencies": {
"@babel/preset-typescript": "^7.28.5",
"@stylistic/stylelint-plugin": "^2.1.0",
"@types/node": "^18.15.0",
"@typescript-eslint/eslint-plugin": "^5.62.0",
Expand All @@ -40,8 +41,8 @@
"stylelint": "^16.2.1",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^36.0.0",
"tsx": "^4.21.0",
"typescript": "^5.3.3",
"walk-sync": "^2.0.2",
"tsx": "^4.21.0"
"walk-sync": "^2.0.2"
}
}
3 changes: 2 additions & 1 deletion packages/core-web/webpack.common.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module.exports = {
},
resolve: {
modules: [path.resolve(__dirname), 'node_modules'],
extensions: ['.ts', '.js', '.vue', '.json'],
},
module: {
rules: [
Expand All @@ -20,7 +21,7 @@ module.exports = {
use: 'vue-loader',
},
{
test: /\.js$/,
test: /\.[jt]s$/,
exclude: /node_modules|vue\/src|vue-router\/|vue-loader\/|vue-hot-reload-api\//,
use: [
{
Expand Down
11 changes: 11 additions & 0 deletions packages/vue-components/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,15 @@ module.exports = {
'vue/order-in-components': 'off',
'vue/multi-word-component-names': 'off',
},
'overrides': [
{
'files': '**/*.ts',
'parser': '@typescript-eslint/parser',
'rules': {
// vue-components uses default exports for single-function utility modules,
// consumed by .vue files via default imports
'import/no-default-export': 'off',
},
},
],
};
5 changes: 4 additions & 1 deletion packages/vue-components/babel.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
module.exports = {
presets: ['@babel/preset-env'],
presets: [
'@babel/preset-env',
'@babel/preset-typescript',
],
};
3 changes: 2 additions & 1 deletion packages/vue-components/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module.exports = {
],
'moduleFileExtensions': [
'js',
'ts',
'json',
'vue',
],
Expand All @@ -16,7 +17,7 @@ module.exports = {
},
'transform': {
'.*\\.vue$': '@vue/vue3-jest',
'^.+\\.js$': ['babel-jest', { rootMode: 'upward' }],
'^.+\\.[jt]s$': ['babel-jest', { rootMode: 'upward' }],
},
'globals': {
'vue-jest': {
Expand Down
3 changes: 2 additions & 1 deletion packages/vue-components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,14 @@
"directory": "packages/vue-components"
},
"scripts": {
"test": "jest --clearCache && jest --colors",
"test": "tsc && jest --clearCache && jest --colors",
"updatetest": "jest --updateSnapshot"
},
"devDependencies": {
"@babel/core": "^7.26.9",
"@babel/plugin-transform-runtime": "^7.26.9",
"@babel/preset-env": "^7.26.9",
"@babel/preset-typescript": "^7.28.5",
"@babel/runtime": "^7.26.9",
"@vue/test-utils": "^2.4.6",
"@vue/vue3-jest": "^29.2.6",
Expand Down
6 changes: 3 additions & 3 deletions packages/vue-components/src/Submenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<script>
import { toBoolean } from './utils/utils';
import $ from './utils/NodeList';
import positionSubmenu from './utils/submenu';
import { isRightAlign, preventOverflow } from './utils/submenu';
import preventOverflowOnMobile from './utils/dropdown';

export default {
Expand Down Expand Up @@ -74,12 +74,12 @@ export default {
return;
}

if (positionSubmenu.isRightAlign(ul)) {
if (isRightAlign(ul)) {
this.alignMenuRight();
} else {
this.alignMenuLeft();
}
positionSubmenu.preventOverflow(ul);
preventOverflow(ul);
});
},
alignMenuRight() {
Expand Down
4 changes: 2 additions & 2 deletions packages/vue-components/src/TabGroup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</template>

<script>
import { coerce } from './utils/utils';
import { toBoolean } from './utils/utils';

export default {
props: {
Expand All @@ -33,7 +33,7 @@ export default {
return ~this.tabs.indexOf(this._tabset.show);
},
disabledBool() {
return coerce.boolean(this.disabled);
return toBoolean(this.disabled);
},
},
mounted() {
Expand Down
Loading