Skip to content

Commit 33935d4

Browse files
committed
Linting
1 parent 3c8f773 commit 33935d4

9 files changed

Lines changed: 45 additions & 52 deletions

File tree

deno.jsonc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"tasks": {
33
"clean": "deno run -A tasks.ts clean",
44
"format": "deno run -A tasks.ts format",
5+
"lint": "deno run -A tasks.ts lint",
56
"start": "deno run -A tasks.ts start",
67
"test": "deno run -A tasks.ts test",
78
"report": "deno run -A tasks.ts report",
@@ -25,6 +26,7 @@
2526
"singleQuote": true
2627
},
2728
"compilerOptions": {
28-
"strict": true
29+
"strict": true,
30+
"verbatimModuleSyntax": true
2931
}
3032
}

src/build/common/comment.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ function FromArray(parser: Runtime.IArray): string {
3838
function FromConst(parser: Runtime.IConst): string {
3939
return `'${Escape(parser.const)}'`
4040
}
41-
function FromBigInt(parser: Runtime.IBigInt): string {
41+
function FromBigInt(_parser: Runtime.IBigInt): string {
4242
return `<BigInt>`
4343
}
44-
function FromIdent(parser: Runtime.IIdent): string {
44+
function FromIdent(_parser: Runtime.IIdent): string {
4545
return `<Ident>`
4646
}
47-
function FromInteger(parser: Runtime.IInteger): string {
47+
function FromInteger(_parser: Runtime.IInteger): string {
4848
return `<Integer>`
4949
}
50-
function FromNumber(parser: Runtime.INumber): string {
50+
function FromNumber(_parser: Runtime.INumber): string {
5151
return `<Number>`
5252
}
5353
function FromOptional(parser: Runtime.IOptional): string {
@@ -56,10 +56,10 @@ function FromOptional(parser: Runtime.IOptional): string {
5656
function FromRef(parser: Runtime.IRef): string {
5757
return `${parser.ref}`
5858
}
59-
function FromRest(parser: Runtime.IRest): string {
59+
function FromRest(_parser: Runtime.IRest): string {
6060
return `string`
6161
}
62-
function FromString(parser: Runtime.IString): string {
62+
function FromString(_parser: Runtime.IString): string {
6363
return `<String>`
6464
}
6565
function FromTuple(parser: Runtime.ITuple): string {
@@ -68,16 +68,16 @@ function FromTuple(parser: Runtime.ITuple): string {
6868
function FromUnion(parser: Runtime.IUnion): string {
6969
return parser.parsers.map((parser) => `${FromParser(parser)}`).join(' | ')
7070
}
71-
function FromUnsignedInteger(parser: Runtime.IUnsignedInteger): string {
71+
function FromUnsignedInteger(_parser: Runtime.IUnsignedInteger): string {
7272
return `<UnsignedInteger>`
7373
}
74-
function FromUnsignedNumber(parser: Runtime.IUnsignedNumber): string {
74+
function FromUnsignedNumber(_parser: Runtime.IUnsignedNumber): string {
7575
return `<UnsignedNumber>`
7676
}
77-
function FromUntil_1(parser: Runtime.IUntil_1): string {
77+
function FromUntil_1(_parser: Runtime.IUntil_1): string {
7878
return `string`
7979
}
80-
function FromUntil(parser: Runtime.IUntil): string {
80+
function FromUntil(_parser: Runtime.IUntil): string {
8181
return `string`
8282
}
8383
function FromParser(parser: Runtime.IParser): string {

src/build/project.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import * as Runtime from '../runtime/index.ts'
3232
import { BuildStaticParse, BuildStaticMapping } from './static/index.ts'
3333
import { BuildRuntimeParse, BuildRuntimeMapping } from './runtime/index.ts'
3434
import { CompileComment } from './common/index.ts'
35-
import { DefaultOptions, Options } from './options.ts'
35+
import { DefaultOptions, type Options } from './options.ts'
3636

3737
// ------------------------------------------------------------------
3838
// Header

src/runtime/parse.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export function Parse<Parser extends IParser>(context: IProperties, parser: Pars
8484
/** Parses input using the given Parser */
8585
export function Parse<Parser extends IParser>(parser: Parser, content: string): [] | [StaticParser<Parser>, string]
8686
/** Parses input using the given Parser */
87-
export function Parse(...args: any[]): never {
87+
export function Parse(...args: unknown[]): never {
8888
const [context, parser, input] = Arguments.Match<[IProperties, IParser, string]>(args, {
8989
3: (context, parser, input) => [context, parser, input],
9090
2: (parser, input) => [{}, parser, input]

src/runtime/parser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ THE SOFTWARE.
2626
2727
---------------------------------------------------------------------------*/
2828

29+
// deno-lint-ignore-file no-explicit-any
2930
// deno-fmt-ignore-file
3031

3132
export type IProperties = Record<PropertyKey, IParser>

src/token/internal/guard.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,6 @@ export function IsString(value: unknown): value is string {
3838
export function IsEqual(left: unknown, right: unknown): boolean {
3939
return left === right
4040
}
41+
export function TakeLeft<T, True extends (left: T, right: T[]) => unknown, False extends () => unknown>(array: T[], true_: True, false_: False): ReturnType<True> | ReturnType<False> {
42+
return (IsEqual(array.length, 0) ? false_() : true_(array[0], array.slice(1))) as never
43+
}

src/token/internal/take.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,11 @@ export function Take<Variants extends string[], Input extends string>(variants:
6262
// ----------------------------------------------------------------
6363
// Symmetric
6464
// ----------------------------------------------------------------
65-
// const [left, ...right] = variants
66-
// return (
67-
// IsString(left)
68-
// ? (() => {
69-
// const result = TakeVariant(left, input)
70-
// return IsEqual(result.length, 2) ? result : Take(right, input)
71-
// })()
72-
// : []
73-
// ) as never
65+
// return Guard.TakeLeft(variants, (valueLeft, valueRight) =>
66+
// Match(TakeVariant(valueLeft, input), (take, rest) =>
67+
// [take, rest],
68+
// () => Take(valueRight, input)),
69+
// () => []) as never
7470
// ----------------------------------------------------------------
7571
// Inline
7672
// ----------------------------------------------------------------

src/token/until.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ THE SOFTWARE.
2626
2727
---------------------------------------------------------------------------*/
2828

29+
// deno-coverage-ignore-start - parsebox tested
2930
// deno-fmt-ignore-file
3031

3132
import { Match } from './internal/match.ts'
32-
import { IsEqual, IsString } from './internal/guard.ts'
33+
import { IsEqual, TakeLeft } from './internal/guard.ts'
3334

3435
// ------------------------------------------------------------------
3536
// TakeOne
@@ -54,16 +55,12 @@ type TIsInputMatchSentinal<End extends string[], Input extends string> = (
5455
: false
5556
)
5657
function IsInputMatchSentinal<End extends string[], Input extends string>(end: [...End], input: Input): TIsInputMatchSentinal<End, Input> {
57-
const [left, ...right] = end
58-
return (
59-
IsString(left)
60-
? input.startsWith(left)
61-
? true
62-
: IsInputMatchSentinal(right, input)
63-
: false
64-
) as never
58+
return TakeLeft(end, (left, right) =>
59+
input.startsWith(left)
60+
? true
61+
: IsInputMatchSentinal(right, input),
62+
() => false) as never
6563
}
66-
6764
// ------------------------------------------------------------------
6865
// Until
6966
//
@@ -94,3 +91,4 @@ export function Until<End extends string[], Input extends string>(end: [...End],
9491
: Until(end, Rest, `${result}${One}`) // fail: advance + 1
9592
, () => []) as never
9693
}
94+
// deno-coverage-ignore-stop

tasks.ts

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,34 @@ const VERSION = '0.11.3'
55
// ------------------------------------------------------------------
66
// Clean
77
// ------------------------------------------------------------------
8-
Task.run('clean', async () => {
9-
await Task.folder('target').delete()
10-
})
8+
Task.run('clean', () => Task.folder('target').delete())
119
// ------------------------------------------------------------------
1210
// Format
1311
// ------------------------------------------------------------------
14-
Task.run('format', async () => {
15-
await Task.shell('deno fmt src test')
16-
})
12+
Task.run('format', () => Task.shell('deno fmt src test'))
13+
// ------------------------------------------------------------------
14+
// Lint
15+
// ------------------------------------------------------------------
16+
Task.run('lint', () => Task.shell('deno lint src'))
1717
// ------------------------------------------------------------------
1818
// Start
1919
// ------------------------------------------------------------------
20-
Task.run('start', async () => {
21-
await Task.shell('deno run -A --watch example/index.ts')
22-
})
20+
Task.run('start', () => Task.shell('deno run -A --watch example/index.ts'))
2321
// ------------------------------------------------------------------
2422
// Test
2523
// ------------------------------------------------------------------
26-
Task.run('test', async (filter: string = '') => {
27-
await Task.test.run(['test/parsebox'], { filter })
28-
})
24+
Task.run('test', async (filter: string = '') =>
25+
Task.shell('deno lint src').catch(() => null).then(() =>
26+
Task.test.run(['test/parsebox'], { filter }))
27+
)
2928
// ------------------------------------------------------------------
3029
// Fast
3130
// ------------------------------------------------------------------
32-
Task.run('fast', async (filter: string = '') => {
33-
await Task.test.run(['test/parsebox'], {
34-
watch: true, noCheck: true, filter,
35-
})
36-
})
31+
Task.run('fast', async (filter: string = '') => Task.test.run(['test/parsebox'], { watch: true, noCheck: true, filter }))
3732
// ------------------------------------------------------------------
3833
// Report
3934
// ------------------------------------------------------------------
40-
Task.run('report', async () => {
41-
await Task.test.report(['test/parsebox'])
42-
})
35+
Task.run('report', async () => Task.test.report(['test/parsebox']))
4336
// ------------------------------------------------------------------
4437
// Build
4538
// ------------------------------------------------------------------

0 commit comments

Comments
 (0)