Skip to content

Commit 32db4c3

Browse files
authored
Merge pull request #60 from kimuraz/52-v1-prototype
52 v1 prototype
2 parents fcc1fc5 + 1beacfc commit 32db4c3

File tree

14 files changed

+280
-149
lines changed

14 files changed

+280
-149
lines changed

.eslintrc.js

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,15 @@ module.exports = {
55
env: {
66
browser: true,
77
},
8-
extends: ['airbnb-base', 'plugin:vue/recommended'],
8+
extends: [
9+
"eslint:recommended",
10+
"plugin:@typescript-eslint/eslint-recommended",
11+
"plugin:@typescript-eslint/recommended"
12+
],
913
// required to lint *.vue files
10-
plugins: ['html'],
14+
plugins: ['@typescript-eslint'],
1115
// add your custom rules here
1216
rules: {
13-
// don't require .vue extension when importing
14-
'import/extensions': [
15-
'error',
16-
'always',
17-
{
18-
js: 'never',
19-
vue: 'never',
20-
},
21-
],
22-
// allow optionalDependencies
23-
'import/no-extraneous-dependencies': [
24-
'error',
25-
{
26-
optionalDependencies: ['test/unit/index.js'],
27-
},
28-
],
2917
// allow debugger during development
3018
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
3119
'arrow-parens': 'off',

build.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ require('esbuild').build({
22
entryPoints: ['src/index.ts'],
33
bundle: true,
44
minify: true,
5-
target: 'es2016',
5+
target: 'esNext',
66
outfile: 'dist/vue-interact.min.js',
77
external: ['interactjs', 'vue'],
8+
tsconfig: 'tsconfig.json',
89
});

dist/vue-interact.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jest.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = {
2+
verbose: true,
3+
clearMocks: true,
4+
moduleDirectories: ['node_modules', 'src'],
5+
globals: {
6+
'ts-jest': {
7+
tsconfig: 'tsconfig.json',
8+
},
9+
},
10+
transform: {
11+
"^.+\\.(ts|tsx)$": "ts-jest"
12+
},
13+
transformIgnorePatterns: [
14+
"<rootDir>/node_modules/(?!@foo)"
15+
]
16+
};

package.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,27 @@
55
"author": "Kimura <[email protected]>",
66
"private": false,
77
"main": "dist/vue-interact.min.js",
8+
"types": "vue-interact.d.ts",
89
"license": "MIT",
910
"scripts": {
1011
"build": "node build.js",
11-
"lint": "eslint --ext .js,.vue src",
12+
"lint": "eslint --ext .ts src",
1213
"docs:dev": "vuepress dev docs",
13-
"docs:build": "vuepress build docs"
14+
"docs:build": "vuepress build docs",
15+
"test": "jest"
1416
},
1517
"dependencies": {
1618
"interactjs": "^1.10.17"
1719
},
1820
"peerDependencies": {
19-
"vue": "^2.6",
20-
"interactjs": "^1.10.17"
21+
"interactjs": "^1.10.17",
22+
"vue": "^2.6"
2123
},
2224
"devDependencies": {
25+
"@interactjs/types": "^1.10.17",
2326
"@tsconfig/recommended": "^1.0.1",
27+
"@typescript-eslint/eslint-plugin": "^5.40.1",
28+
"@typescript-eslint/parser": "^5.40.1",
2429
"esbuild": "^0.15.11",
2530
"eslint": "^8.25.0",
2631
"eslint-config-airbnb-base": "^15.0.0",
@@ -30,7 +35,7 @@
3035
"eslint-plugin-import": "^2.26.0",
3136
"eslint-plugin-vue": "^9.6.0",
3237
"typescript": "^4.8.4",
33-
"vuepress": "^1.5.0"
38+
"vuepress": "^1.9.7"
3439
},
3540
"engines": {
3641
"node": ">= 14.0.0",
File renamed without changes.
File renamed without changes.

src/index.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Directive } from 'vue';
2+
import interact from 'interactjs';
13
import DraggingMixin from './mixins/DraggingMixin';
24
import ResizingMixin from './mixins/ResizingMixin';
35

@@ -8,17 +10,16 @@ export { DraggingMixin };
810
export { ResizingMixin };
911

1012
const VueInteract = {
11-
DraggingMixin,
12-
ResizingMixin,
13-
install: (Vue) => {
13+
install: (Vue: Vue) => {
1414
if (Vue.vueInteractInstalled) {
1515
return;
1616
}
1717

1818
Vue.vueInteractInstalled = true;
19+
Vue.$interact = interact;
1920

20-
Vue.directive('draggable', draggable);
21-
Vue.directive('resizable', resizable);
21+
Vue.directive('draggable', draggable as Directive);
22+
Vue.directive('resizable', resizable as Directive);
2223
},
2324
};
2425

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)