Skip to content

Commit dcc59f9

Browse files
Publish 32.0.5 (#79)
- add ts support to vue
1 parent b6b7da7 commit dcc59f9

File tree

15 files changed

+128
-79
lines changed

15 files changed

+128
-79
lines changed

packages/build-config/templates/vite/node.vite.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default mergeConfig(
3030
defineConfig({
3131
build: {
3232
rollupOptions: {
33-
external: [...NODE_MODULES, /^node:/],
33+
external: [...NODE_MODULES, /^node:/, '@typescript-eslint/parser'],
3434
},
3535
},
3636
}),

packages/cli/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "@ag-grid-devtools/cli",
4-
"version": "32.0.4",
4+
"version": "32.0.5",
55
"license": "MIT",
66
"description": "AG Grid developer toolkit",
77
"author": "AG Grid <[email protected]>",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<template>
2+
<div>
3+
<button v-on:click="onBtReset()">Reset column state</button>
4+
<ag-grid-vue
5+
:columnDefs="columnDefs"
6+
:rowData="rowData"
7+
@grid-ready="onGridReady"
8+
></ag-grid-vue>
9+
</div>
10+
</template>
11+
12+
<script lang="ts">
13+
import { AgGridVue } from '@ag-grid-community/vue';
14+
15+
export interface MyInterfaceToTestTsParser {}
16+
17+
export default {
18+
components: {
19+
'ag-grid-vue': AgGridVue,
20+
},
21+
data() {
22+
return {
23+
columnDefs: [],
24+
columnApi: null,
25+
rowData: null,
26+
};
27+
},
28+
methods: {
29+
onBtReset() {
30+
this.columnApi.resetColumnState();
31+
},
32+
onGridReady(params) {
33+
this.columnApi = params.api;
34+
35+
fetch('https://www.ag-grid.com/example-assets/olympic-winners.json')
36+
.then((resp) => resp.json())
37+
.then((data) => {
38+
this.rowData = data;
39+
this.onBtReset();
40+
});
41+
},
42+
},
43+
};
44+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<template>
2+
<div>
3+
<button v-on:click="onBtReset()">Reset column state</button>
4+
<ag-grid-vue
5+
:columnDefs="columnDefs"
6+
:rowData="rowData"
7+
@grid-ready="onGridReady"
8+
></ag-grid-vue>
9+
</div>
10+
</template>
11+
12+
<script lang="ts">
13+
import { AgGridVue } from '@ag-grid-community/vue';
14+
15+
export interface MyInterfaceToTestTsParser {}
16+
17+
export default {
18+
components: {
19+
'ag-grid-vue': AgGridVue,
20+
},
21+
data() {
22+
return {
23+
columnDefs: [],
24+
columnApi: null,
25+
rowData: null,
26+
};
27+
},
28+
methods: {
29+
onBtReset() {
30+
this.columnApi.resetColumnState();
31+
},
32+
onGridReady(params) {
33+
this.columnApi = params.columnApi;
34+
35+
fetch('https://www.ag-grid.com/example-assets/olympic-winners.json')
36+
.then((resp) => resp.json())
37+
.then((data) => {
38+
this.rowData = data;
39+
this.onBtReset();
40+
});
41+
},
42+
},
43+
};
44+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { expect, test } from 'vitest';
2+
import { cli } from '../../../cli';
3+
import { CliE2ETestEnv } from '../e2e-test-utils';
4+
5+
const env = new CliE2ETestEnv(import.meta.url);
6+
7+
test(
8+
'cli e2e - single thread',
9+
async () => {
10+
await env.init();
11+
await cli(['migrate', '--num-threads=0', '--allow-untracked', '--from=30.0.0'], env.cliOptions);
12+
expect(await env.loadExpectedSrc('file.vue')).toEqual(await env.loadTempSrc('file.vue'));
13+
},
14+
env.TIMEOUT,
15+
);

packages/cli/src/test/expected/custom-imports.js

-16
This file was deleted.

packages/cli/src/test/expected/plain.js

-8
This file was deleted.

packages/cli/src/test/input-files/README.md

-1
This file was deleted.

packages/cli/src/test/input-files/_.gitignore

-1
This file was deleted.

packages/cli/src/test/input-files/custom-imports.js

-16
This file was deleted.

packages/cli/src/test/input-files/gitignored-folder/file.js

-10
This file was deleted.

packages/cli/src/test/input-files/gitignored.js

-10
This file was deleted.

packages/cli/src/test/input-files/plain.js

-8
This file was deleted.

packages/cli/vite.config.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default mergeConfig(
2121
},
2222
sourcemap: false,
2323
rollupOptions: {
24-
external: ['@ag-grid-devtools/codemods'],
24+
external: ['@ag-grid-devtools/codemods', '@typescript-eslint/parser'],
2525
},
2626
},
2727
plugins: [

packages/codemod-utils/src/vueHelpers.ts

+22-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
type NodePath,
1111
type Types,
1212
} from '@ag-grid-devtools/ast';
13-
import { nonNull } from '@ag-grid-devtools/utils';
13+
import { dynamicRequire, nonNull } from '@ag-grid-devtools/utils';
1414
import { parse } from 'vue-eslint-parser';
1515
import { AST } from 'vue-eslint-parser';
1616
import {
@@ -397,13 +397,29 @@ export function matchVueComponentMethod(method: NodePath): {
397397
return { component, methodName, method };
398398
}
399399

400+
let _tsParser: any;
401+
402+
function getTsParser(): any {
403+
if (_tsParser === undefined) {
404+
_tsParser = null;
405+
try {
406+
_tsParser = dynamicRequire.requireDefault('@typescript-eslint/parser', import.meta);
407+
} catch {}
408+
}
409+
return _tsParser;
410+
}
411+
400412
export function parseVueSfcComponent(source: string): AST.ESLintProgram {
401-
return parse(source, {
413+
const options: any = {
402414
sourceType: 'module',
403-
parser: {
404-
ts: '@typescript-eslint/parser',
405-
},
406-
});
415+
};
416+
417+
const ts = getTsParser();
418+
if (ts) {
419+
options.parser = { ts };
420+
}
421+
422+
return parse(source, options);
407423
}
408424

409425
export function parseVueComponentTemplateSource(source: string): VueTemplateNode<VElement> {

0 commit comments

Comments
 (0)