Skip to content

Commit bf8ad7c

Browse files
authored
Merge pull request #294 from tkskto/develop
v0.8.0
2 parents 7b5b037 + c014180 commit bf8ad7c

22 files changed

+572
-281
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Changelog
22

3+
## 0.8.0
4+
5+
### enhancement
6+
7+
- \#289 add `html` export format.
8+
9+
### Chores
10+
11+
- \#287 `mkdirp` to v3.0.0
12+
- \#288 `globby` to v13.1.4
13+
- \#292 `commander` to v10.0.1
14+
315
## 0.7.1
416

517
There is nothing enhancement, just update dependencies.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ npm exec vca -- --dir .
4242

4343
* `--dir` : analyze target directory. default is `src`. `node_modules` will be ignored by default.
4444
* `--silent` : running without almost logs.
45-
* `-f` or `--format` : report type. choose one from [browser | json | both]. default is `browser`.
46-
* `-o` or `--out` : output directory. JSON file will output here.
45+
* `-f` or `--format` : report type. choose one from [browser | json | html]. default is `browser`.
46+
* `-o` or `--out` : output directory. JSON or HTML file will output here.
4747
* `-p` or `--port` : select a port number for the local server.
4848

4949
## API

dist/style.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ header {
114114
.js .filename {
115115
border: 1px solid #ffff00;
116116
}
117+
.ts .filename {
118+
border: 1px solid #3178c6;
119+
}
117120
details {
118121
line-height: 1.7;
119122
}

package-lock.json

Lines changed: 200 additions & 197 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tkskto/vue-component-analyzer",
3-
"version": "0.7.1",
3+
"version": "0.8.0",
44
"description": "Analyze dependency tree for Vue.js SFC (Single File Component)",
55
"type": "module",
66
"main": "./dist/index.mjs",
@@ -48,12 +48,12 @@
4848
"access": "public"
4949
},
5050
"dependencies": {
51-
"@typescript-eslint/parser": "5.57.0",
52-
"commander": "10.0.0",
51+
"@typescript-eslint/parser": "5.59.0",
52+
"commander": "10.0.1",
5353
"ejs": "3.1.9",
5454
"express": "4.18.2",
55-
"globby": "13.1.3",
56-
"mkdirp": "2.1.6",
55+
"globby": "13.1.4",
56+
"mkdirp": "3.0.0",
5757
"opener": "1.5.2",
5858
"vue-eslint-parser": "9.1.1",
5959
"ws": "8.13.0"
@@ -62,28 +62,28 @@
6262
"@mitsue/eslint-config": "4.1.0",
6363
"@rollup/plugin-commonjs": "24.0.1",
6464
"@rollup/plugin-json": "6.0.0",
65-
"@rollup/plugin-node-resolve": "15.0.1",
66-
"@rollup/plugin-terser": "0.4.0",
67-
"@rollup/plugin-typescript": "11.0.0",
65+
"@rollup/plugin-node-resolve": "15.0.2",
66+
"@rollup/plugin-terser": "0.4.1",
67+
"@rollup/plugin-typescript": "11.1.0",
6868
"@types/ejs": "3.1.2",
6969
"@types/express": "4.17.17",
70-
"@types/jest": "29.5.0",
70+
"@types/jest": "29.5.1",
7171
"@types/mkdirp": "1.0.2",
7272
"@types/node": "18.15.11",
7373
"@types/opener": "1.4.0",
7474
"@types/ws": "8.5.4",
75-
"@typescript-eslint/eslint-plugin": "5.57.0",
76-
"eslint": "8.37.0",
75+
"@typescript-eslint/eslint-plugin": "5.59.0",
76+
"eslint": "8.38.0",
7777
"husky": "8.0.3",
7878
"jest": "29.5.0",
79-
"lint-staged": "13.2.0",
79+
"lint-staged": "13.2.1",
8080
"npm-run-all": "^4.1.5",
8181
"nyc": "15.1.0",
82-
"rollup": "3.20.2",
82+
"rollup": "3.20.6",
8383
"rollup-plugin-license": "3.0.1",
84-
"ts-jest": "29.0.5",
84+
"ts-jest": "29.1.0",
8585
"ts-node": "10.9.1",
86-
"typescript": "5.0.3"
86+
"typescript": "5.0.4"
8787
},
8888
"lint-staged": {
8989
"*.ts": [

rollup.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const banner = `/*!
2929

3030
export default [
3131
{
32-
input: '.temp/index.js',
32+
input: '.temp/server/index.js',
3333
output: [
3434
{
3535
file: 'dist/index.mjs',

src/client/ScreenCapture.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ export const setScreenCapture = function (): void {
9393
if (btnCapture) {
9494
btnCapture.addEventListener('click', async () => {
9595
try {
96-
await customDialog.showExportDialog();
96+
customDialog.load();
97+
98+
const img = await capture();
99+
100+
await customDialog.showExportDialog(img);
97101
} catch (err) {
98102
console.error(err);
99103
}

src/client/Seed.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ export class Seed {
7676
}
7777

7878
private renderDetails(): string {
79-
return `<details class="detail">
79+
const openAttribute = this._model.env === 'node' ? ' open' : '';
80+
81+
return `<details class="detail"${openAttribute}>
8082
${this.renderSummary()}
8183
${this.renderProps()}
8284
${this.renderMetaData()}
@@ -98,6 +100,10 @@ export class Seed {
98100
seedClassName += ' js';
99101
}
100102

103+
if (this.isTS()) {
104+
seedClassName += ' ts';
105+
}
106+
101107
return `<div class="seed${seedClassName}">
102108
<div class="file">
103109
<div class="filename">
@@ -133,4 +139,11 @@ export class Seed {
133139
isJS(): boolean {
134140
return this._name.endsWith('.js');
135141
}
142+
143+
/**
144+
* @return boolean
145+
*/
146+
isTS(): boolean {
147+
return this._name.endsWith('.ts');
148+
}
136149
}

src/client/SeedOpenStateSwitcher.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
import {Model} from './model';
2-
31
class SeedOpenStateSwitcher {
42
private _isOpen = false;
53

64
private _details: NodeListOf<HTMLDetailsElement> | null = null;
75

86
private _textElement: HTMLElement | null;
97

10-
constructor(_button: HTMLButtonElement, model: Model) {
8+
constructor(_button: HTMLButtonElement) {
119
this._textElement = document.getElementById('btn-toggle-visible-state-text');
12-
_button.addEventListener('click', this.onClick.bind(this));
10+
this._details = document.querySelectorAll<HTMLDetailsElement>('.detail');
1311

14-
model.addEventListener(Model.EVENT.DATA_UPDATE, this.onDataUpdated.bind(this));
12+
_button.addEventListener('click', this.onClick.bind(this));
1513
}
1614

1715
private open() {
@@ -47,16 +45,12 @@ class SeedOpenStateSwitcher {
4745
this.close();
4846
}
4947
}
50-
51-
private onDataUpdated() {
52-
this._details = document.querySelectorAll<HTMLDetailsElement>('.detail');
53-
}
5448
}
5549

56-
export const setSeedOpenStateSwitcher = (model: Model): void => {
50+
export const setSeedOpenStateSwitcher = (): void => {
5751
const btn = document.getElementById('btn-toggle-visible-state');
5852

5953
if (btn) {
60-
new SeedOpenStateSwitcher(btn as HTMLButtonElement, model);
54+
new SeedOpenStateSwitcher(btn as HTMLButtonElement);
6155
}
6256
};

src/client/client.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {setSeedOpenStateSwitcher} from './SeedOpenStateSwitcher';
66
import {setScreenCapture} from './ScreenCapture';
77

88
const model = new Model();
9-
new Renderer(model);
9+
const renderer = new Renderer(model);
1010
let ws: WebSocket;
1111

1212
try {
@@ -21,13 +21,21 @@ document.addEventListener('DOMContentLoaded', () => {
2121
if (ws) {
2222
ws.addEventListener('message', (event) => {
2323
const msg = JSON.parse(event.data);
24+
const app = document.querySelector<HTMLElement>('#app');
2425

25-
setSeedOpenStateSwitcher(model);
26+
if (!app) {
27+
return;
28+
}
2629

27-
model.data = msg; // emit Model.EVENT.DATA_UPDATE event
30+
model.data = msg;
31+
32+
const html = renderer.render();
33+
34+
app.innerHTML = html;
2835

2936
setSettings(model);
3037
setScreenCapture();
38+
setSeedOpenStateSwitcher();
3139
});
3240
} else {
3341
console.warn('Couldn\'t connect to analyzer websocket server so you\'ll have to reload page manually to see updates in the treemap');

0 commit comments

Comments
 (0)