Skip to content

Commit 74260e9

Browse files
committed
Fix eslint issues
1 parent 8c92f4c commit 74260e9

File tree

10 files changed

+41
-56
lines changed

10 files changed

+41
-56
lines changed

.gitlab-ci.yml

+3-5
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pages:
5252
dependencies:
5353
- tests & coverage
5454
script:
55-
- mv coverage/lcov-report/ public/
55+
- mv coverage/ public/
5656
artifacts:
5757
paths:
5858
- public
@@ -63,13 +63,12 @@ pages:
6363
name: coverage report
6464
url: https://vuedoc.gitlab.io/parser
6565

66-
package:
67-
stage: publish
66+
build:
67+
stage: tests
6868
needs: *security-jobs
6969
script:
7070
- yarn install
7171
- yarn build
72-
- yarn pack
7372
artifacts:
7473
paths:
7574
- ./*.tgz
@@ -83,7 +82,6 @@ publish:
8382
script:
8483
- echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
8584
- yarn install
86-
- yarn build
8785
- yarn publish
8886
environment:
8987
name: npm

.npmignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ test
33
coverage
44
.*
55
sample.js
6-
vitest.ts
6+
vitest.config.ts
77
result.json
88
tsconfig.json
99
*.tgz

package.json

+17-16
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@
66
"exports": {
77
".": "./esm/index.js",
88
"./types": "./types/index.d.ts",
9-
"./Enum": "./esm/lib/Enum.js",
10-
"./entity/ComputedEntry": "./esm/lib/entity/ComputedEntry.js",
11-
"./entity/DataEntry": "./esm/lib/entity/DataEntry.js",
12-
"./entity/DescriptionEntry": "./esm/lib/entity/DescriptionEntry.js",
13-
"./entity/EventEntry": "./esm/lib/entity/EventEntry.js",
14-
"./entity/InheritAttrsEntry": "./esm/lib/entity/InheritAttrsEntry.js",
15-
"./entity/Keyword": "./esm/lib/entity/Keyword.js",
16-
"./entity/KeywordsEntry": "./esm/lib/entity/KeywordsEntry.js",
17-
"./entity/MethodEntry": "./esm/lib/entity/MethodEntry.js",
18-
"./entity/ModelEntry": "./esm/lib/entity/ModelEntry.js",
19-
"./entity/NameEntry": "./esm/lib/entity/NameEntry.js",
20-
"./entity/PropEntry": "./esm/lib/entity/PropEntry.js",
9+
"./enum": "./esm/lib/Enum.js",
10+
"./entity/computed": "./esm/lib/entity/ComputedEntry.js",
11+
"./entity/data": "./esm/lib/entity/DataEntry.js",
12+
"./entity/description": "./esm/lib/entity/DescriptionEntry.js",
13+
"./entity/event": "./esm/lib/entity/EventEntry.js",
14+
"./entity/inheritAttrs": "./esm/lib/entity/InheritAttrsEntry.js",
15+
"./entity/keyword": "./esm/lib/entity/Keyword.js",
16+
"./entity/keywords": "./esm/lib/entity/KeywordsEntry.js",
17+
"./entity/method": "./esm/lib/entity/MethodEntry.js",
18+
"./entity/model": "./esm/lib/entity/ModelEntry.js",
19+
"./entity/name": "./esm/lib/entity/NameEntry.js",
20+
"./entity/prop": "./esm/lib/entity/PropEntry.js",
2121
"./entity/RestValue": "./esm/lib/entity/RestValue.js",
22-
"./entity/SlotEntry": "./esm/lib/entity/SlotEntry.js",
23-
"./entity/Value": "./esm/lib/entity/Value.js",
24-
"./JSDoc": "./esm/lib/JSDoc.js",
22+
"./entity/slot": "./esm/lib/entity/SlotEntry.js",
23+
"./entity/value": "./esm/lib/entity/Value.js",
24+
"./jsdoc": "./esm/lib/JSDoc.js",
2525
"./loaders/html": "./esm/loaders/html.js",
2626
"./loaders/javascript": "./esm/loaders/javascript.js",
2727
"./loaders/pug": "./esm/loaders/pug.js",
@@ -34,10 +34,11 @@
3434
"scripts": {
3535
"preversion": "yarn test",
3636
"build": "tsc",
37+
"prepack": "yarn build",
3738
"test": "vitest",
3839
"testui": "vitest --ui",
3940
"coverage": "vitest run --coverage",
40-
"update-examples": "UPDATE_EXAMPLES_RESULTS=true node_modules/.bin/vitest -- Compatibility.spec.js",
41+
"update-examples": "UPDATE_EXAMPLES_RESULTS=true node_modules/.bin/vitest --run Compatibility.spec.js",
4142
"lint": "eslint .",
4243
"gimtoc": "gimtoc -f README.md -s 'Table of Contents' -o README.md"
4344
},

src/index.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import path from 'path';
1+
import path from 'node:path';
22

3+
import { readFile } from 'node:fs/promises';
34
import { Loader, Options } from './lib/Loader.js';
45
import { Parser } from './lib/parser/Parser.js';
56
import { VueLoader } from './loaders/vue.js';
@@ -34,7 +35,7 @@ export async function parseOptions(options: Vuedoc.Index.Options) {
3435

3536
if ('filename' in options) {
3637
if (options.filename) {
37-
filecontent = await Loader.getFileContent(options.filename, options.encoding);
38+
filecontent = await readFile(options.filename, options.encoding as 'utf8');
3839
} else {
3940
throw new Error('options.filename cannot be empty');
4041
}

src/lib/Loader.ts

-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { readFile } from 'node:fs/promises';
21
import { Vuedoc } from '../../types/index.js';
32

43
export type Options = Pick<Vuedoc.Parser.ResolvedOptions, 'source'> & {
@@ -22,12 +21,6 @@ export abstract class Loader implements Vuedoc.Loader.Interface {
2221
return item.loader;
2322
}
2423

25-
static async getFileContent(filename: string, encoding?: string) {
26-
const buffer = await readFile(filename, encoding as any);
27-
28-
return buffer.toString();
29-
}
30-
3124
constructor(options: Options) {
3225
this.options = options;
3326
}

src/lib/parser/ScriptParser.ts

-3
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,9 @@ export type Options = {
9696
};
9797

9898
export class ScriptParser<ParseNode = void, Root = never> extends AbstractSourceParser<Vuedoc.Parser.Script, Root> {
99-
source: Vuedoc.Parser.Script;
10099
options: Options;
101100
ast: Vuedoc.Parser.AST.Result;
102101
ignoredMothods: never[];
103-
features: Vuedoc.Parser.Feature[];
104-
scope: Vuedoc.Parser.Scope<any, any>;
105102
defaultModelPropName = 'value';
106103

107104
constructor(emitter: Parser, ast: Vuedoc.Parser.AST.Result, source: Vuedoc.Parser.Script, options: Options) {

test/examples/temperature-converter/parsing-result.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
{
4444
"name": "v",
4545
"type": "unknown",
46-
"defaultValue": "+e.target.value",
47-
"rest": false
46+
"rest": false,
47+
"defaultValue": "+e.target.value"
4848
}
4949
],
5050
"syntax": [
@@ -68,8 +68,8 @@
6868
{
6969
"name": "v",
7070
"type": "unknown",
71-
"defaultValue": "+e.target.value",
72-
"rest": false
71+
"rest": false,
72+
"defaultValue": "+e.target.value"
7373
}
7474
],
7575
"syntax": [

tsconfig.json

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"compilerOptions": {
33
"allowJs": false,
4-
"target": "ES2019",
5-
"module": "NodeNext",
4+
"target": "ES2020",
5+
"module": "ES2020",
66
"strict": false,
77
"importHelpers": true,
88
"moduleResolution": "node",
@@ -19,9 +19,6 @@
1919
"types": [
2020
"node"
2121
],
22-
"lib": [
23-
"ES2019"
24-
],
2522
"typeRoots": [
2623
"node_modules/@types"
2724
]

types/index.d.ts

+10-13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import { Value } from '../src/lib/entity/Value.js';
77

88
import * as Babel from '@babel/types';
99

10+
export { Loader } from './lib/Loader.js';
11+
export { Parser } from './lib/parser/Parser.js';
12+
1013
export declare namespace Vuedoc {
1114
namespace Parser {
1215
type Options = {
@@ -365,10 +368,6 @@ export declare namespace Vuedoc {
365368

366369
type Options = (PartialFilenameOptions | PartialFilecontentOptions) & BasicOptions;
367370

368-
function parseComponent(options: Options): Promise<ParsingResult>;
369-
function parseOptions(options: Options): Promise<void>;
370-
function synchronizeParsingResult(options: Options, component: ParsingResult): void;
371-
372371
type ParsingResult = {
373372
name?: string;
374373
description?: string;
@@ -391,8 +390,6 @@ export declare namespace Vuedoc {
391390
namespace Loader {
392391
abstract class Interface {
393392
static extend(name: LoaderName, loader: Interface): Definition;
394-
static getFileContent(filename: string, options?: GetFileContentOptions): Promise<string>;
395-
396393
abstract load(data: ScriptData | TemplateData): Promise<void>;
397394
emitTemplate(data: TemplateData): void;
398395
emitScript(data: ScriptData): void;
@@ -413,12 +410,12 @@ export declare namespace Vuedoc {
413410
name: LoaderName;
414411
loader: Interface;
415412
};
416-
417-
type GetFileContentOptions = {
418-
/**
419-
* The file encoding
420-
*/
421-
encoding?: string;
422-
};
423413
}
424414
}
415+
416+
export declare function parseOptions(options: Vuedoc.Index.Options): Promise<Vuedoc.Parser.ResolvedOptions>;
417+
declare type ExtendedParsingResult = Vuedoc.Index.ParsingResult & {
418+
model?: Vuedoc.Entry.ModelEntry[];
419+
};
420+
export declare function synchronizeParsingResult(options: Vuedoc.Index.Options, component: ExtendedParsingResult): void;
421+
export declare function parseComponent(options: Vuedoc.Index.Options): Promise<Vuedoc.Index.ParsingResult>;

vitest.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default defineConfig({
55
test: {
66
watchExclude: [
77
'test/examples/**',
8+
'esm/**',
89
],
910
passWithNoTests: true,
1011
},

0 commit comments

Comments
 (0)