Skip to content

Commit 89caefe

Browse files
committed
chore: update biome config and enforce separated type imports
- Fix biome.json $schema to point to correct configuration schema - Add .turbo to ignored directories - Add linter rules: noBarrelFile, useImportType (separatedType style) - Reorganize import sorting groups to separate type and value imports - Enable JSON comment parsing and explicit JS formatter - Reorder imports across src/ and tests/ to match new style rules
1 parent 6f318ce commit 89caefe

File tree

5 files changed

+58
-35
lines changed

5 files changed

+58
-35
lines changed

biome.json

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$schema": "https://turbo.build/schema.json",
2+
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
33
"extends": ["ultracite/biome/core"],
44
"vcs": {
55
"enabled": false,
@@ -8,7 +8,7 @@
88
},
99
"files": {
1010
"ignoreUnknown": false,
11-
"includes": ["!**/dist"]
11+
"includes": ["!**/dist", "!**/.turbo"]
1212
},
1313
"formatter": {
1414
"enabled": true,
@@ -18,13 +18,25 @@
1818
},
1919
"linter": {
2020
"enabled": true,
21+
"domains": {
22+
"project": "recommended"
23+
},
2124
"rules": {
2225
"recommended": true,
2326
"suspicious": {
2427
"noConsole": "info"
2528
},
29+
"performance": {
30+
"noBarrelFile": "info"
31+
},
2632
"correctness": {
2733
"useExhaustiveDependencies": "info"
34+
},
35+
"style": {
36+
"useImportType": {
37+
"level": "on",
38+
"options": { "style": "separatedType" }
39+
}
2840
}
2941
}
3042
},
@@ -38,17 +50,28 @@
3850
"options": {
3951
"groups": [
4052
{
41-
"type": true
53+
"type": false,
54+
"source": [":BUN:", ":NODE:"]
4255
},
56+
[":BUN:", ":NODE:"],
4357
":BLANK_LINE:",
44-
":BUN:",
45-
":NODE:",
46-
":BLANK_LINE:",
47-
":PACKAGE:",
58+
{
59+
"type": false,
60+
"source": [":PACKAGE:"]
61+
},
62+
[":PACKAGE:"],
4863
":BLANK_LINE:",
49-
":ALIAS:",
64+
{
65+
"type": false,
66+
"source": [":ALIAS:"]
67+
},
68+
[":ALIAS:"],
5069
":BLANK_LINE:",
51-
":PATH:"
70+
{
71+
"type": false,
72+
"source": [":PATH:"]
73+
},
74+
[":PATH:"]
5275
]
5376
}
5477
}
@@ -58,13 +81,17 @@
5881
"javascript": {
5982
"globals": ["Bun"],
6083
"formatter": {
84+
"enabled": true,
6185
"quoteStyle": "double"
6286
},
6387
"parser": {
6488
"unsafeParameterDecoratorsEnabled": true
6589
}
6690
},
6791
"json": {
92+
"parser": {
93+
"allowComments": true
94+
},
6895
"formatter": {
6996
"enabled": true,
7097
"indentStyle": "tab"

src/index.ts

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,24 @@
1818
/** biome-ignore-all lint/performance/noBarrelFile: main index file */
1919
import "reflect-metadata";
2020

21+
export {
22+
createClassDecorator,
23+
createMethodDecorator,
24+
createMethodInterceptor,
25+
createParameterDecorator,
26+
createPropertyDecorator,
27+
createPropertyInterceptor,
28+
} from "./lib/factories";
29+
export {
30+
appendMetadata,
31+
defineMetadata,
32+
getMetadata,
33+
getMetadataArray,
34+
getOwnMetadata,
35+
getParameterMap,
36+
setParameterMap,
37+
} from "./lib/metadata";
38+
export { createScopedReflector, Reflector, reflect } from "./lib/reflector";
2139
export type {
2240
ClassDecoratorFactory,
2341
ClassDecoratorReflection,
@@ -47,22 +65,3 @@ export type {
4765
PropertySetter,
4866
ScopedReflector,
4967
} from "./lib/types";
50-
51-
export {
52-
createClassDecorator,
53-
createMethodDecorator,
54-
createMethodInterceptor,
55-
createParameterDecorator,
56-
createPropertyDecorator,
57-
createPropertyInterceptor,
58-
} from "./lib/factories";
59-
export {
60-
appendMetadata,
61-
defineMetadata,
62-
getMetadata,
63-
getMetadataArray,
64-
getOwnMetadata,
65-
getParameterMap,
66-
setParameterMap,
67-
} from "./lib/metadata";
68-
export { createScopedReflector, Reflector, reflect } from "./lib/reflector";

src/lib/factories.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { appendMetadata, getMetadataArray, getParameterMap, setParameterMap } from "./metadata";
2+
import { createScopedReflector } from "./reflector";
13
import type {
24
AnyConstructor,
35
DecoratedClassFactory,
@@ -12,9 +14,6 @@ import type {
1214
ScopedReflector,
1315
} from "./types";
1416

15-
import { appendMetadata, getMetadataArray, getParameterMap, setParameterMap } from "./metadata";
16-
import { createScopedReflector } from "./reflector";
17-
1817
/** Applies the compose function if provided, otherwise uses the first arg as metadata. */
1918
function compose<TMeta, TArgs extends unknown[]>(args: TArgs, fn?: (...a: TArgs) => TMeta): TMeta {
2019
// Type assertion safe: when no compose fn, the caller's type signature guarantees args[0] is TMeta

src/lib/reflector.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { getMetadataArray, getParameterMap } from "./metadata";
12
import type {
23
AnyConstructor,
34
DecoratedClass,
@@ -9,8 +10,6 @@ import type {
910
ScopedReflector,
1011
} from "./types";
1112

12-
import { getMetadataArray, getParameterMap } from "./metadata";
13-
1413
/**
1514
* Provides reflection over decorator metadata attached to a class.
1615
*

tests/metadata.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import "reflect-metadata";
22

3-
import type { ParameterMetadataMap } from "../src/lib/types";
4-
53
import { describe, expect, test } from "bun:test";
64

75
import {
@@ -13,6 +11,7 @@ import {
1311
getParameterMap,
1412
setParameterMap,
1513
} from "../src/lib/metadata";
14+
import type { ParameterMetadataMap } from "../src/lib/types";
1615

1716
// Test metadata keys
1817
const TEST_KEY = Symbol("test:key");

0 commit comments

Comments
 (0)