feat: enhance type definitions and import structure across modules

This commit is contained in:
2026-02-22 17:47:55 -05:00
parent 0ce2d8a512
commit c22c6309b8
9 changed files with 48 additions and 13 deletions

View File

@@ -1,6 +1,11 @@
import { parseQuery, stringifyQuery } from '@/core/serializer/query-serializer'
import { parseUrl } from '@/core/serializer/url-serializer'
import { deepClone } from '@/shared/helpers/deep-clone'
import { parseUrl } from './serializer/url-serializer'
import type {
FLuentUrlPlainObject,
FluentUrlConfig,
QuerySerializer,
} from '@/shared/types'
export function normalizeConfig(
config?: Partial<FluentUrlConfig>,

View File

@@ -4,8 +4,13 @@ import {
normalizeConfig,
normalizeOptions,
} from '@/core/config-defaults'
import { stringifyUrl } from '@/core/serializer/url-serializer'
import { deepClone } from '@/shared/helpers/deep-clone'
import { stringifyUrl } from './serializer/url-serializer'
import type {
FLuentUrlPlainObject,
FluentUrlConfig,
QueriesPlainObject,
} from '@/shared/types'
export class FluentUrl {
private config: FluentUrlConfig

View File

@@ -1,3 +1,5 @@
import type { QuerySerializer } from '@/shared/types'
export const parseQuery: QuerySerializer['parseQuery'] = () => {
throw new Error('Not implemented')
}

View File

@@ -1,3 +1,5 @@
import type { UrlSerializer } from '@/shared/types'
export const parseUrl: UrlSerializer['parseUrl'] = () => {
throw new Error('Not implemented')
}

View File

@@ -1,8 +1,6 @@
/** biome-ignore-all lint/correctness/noUnusedVariables: <> */
export type QueriesPlainObject = Record<string, any>
type QueriesPlainObject = Record<string, any>
interface FLuentUrlPlainObject {
export interface FLuentUrlPlainObject {
protocol?: string
hostname?: string
paths: string[]
@@ -11,12 +9,12 @@ interface FLuentUrlPlainObject {
queries: QueriesPlainObject
}
interface QuerySerializer {
export interface QuerySerializer {
parseQuery: (str: string) => QueriesPlainObject
stringifyQuery: (obj: QueriesPlainObject) => string
}
interface UrlSerializer {
export interface UrlSerializer {
parseUrl: (args: {
str: string
parseQuery?: QuerySerializer['parseQuery']
@@ -27,7 +25,7 @@ interface UrlSerializer {
}) => string
}
interface FluentUrlConfig {
export interface FluentUrlConfig {
parseQuery: Serializer['parseQuery']
stringifyQuery: Serializer['stringifyQuery']
}

View File

@@ -18,7 +18,8 @@
"rimraf": "6.1.3",
"tsc-alias": "1.8.16",
"tsx": "4.21.0",
"typescript": "^5.9.3",
"typescript": "5.9.3",
"typescript-transform-paths": "3.5.6",
"vitest": "4.0.18"
}
}

23
pnpm-lock.yaml generated
View File

@@ -24,8 +24,11 @@ importers:
specifier: 4.21.0
version: 4.21.0
typescript:
specifier: ^5.9.3
specifier: 5.9.3
version: 5.9.3
typescript-transform-paths:
specifier: ^3.5.6
version: 3.5.6(typescript@5.9.3)
vitest:
specifier: 4.0.18
version: 4.0.18(@types/node@25.3.0)(tsx@4.21.0)
@@ -580,6 +583,10 @@ packages:
resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==}
engines: {node: 18 || 20 || >=22}
minimatch@9.0.6:
resolution: {integrity: sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==}
engines: {node: '>=16 || 14 >=14.17'}
minipass@7.1.3:
resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -710,6 +717,11 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
typescript-transform-paths@3.5.6:
resolution: {integrity: sha512-3eQTG6Ogt+pgPEh45uX2s9OwcfAVjWnyNO+osjYcOqYaWDVMIFUkqW8e0O1cOaVwdMqQFQf6alDT+76xmeS2Ag==}
peerDependencies:
typescript: '>=3.6.5'
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@@ -1210,6 +1222,10 @@ snapshots:
dependencies:
brace-expansion: 5.0.2
minimatch@9.0.6:
dependencies:
brace-expansion: 5.0.2
minipass@7.1.3: {}
mylas@2.1.14: {}
@@ -1341,6 +1357,11 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
typescript-transform-paths@3.5.6(typescript@5.9.3):
dependencies:
minimatch: 9.0.6
typescript: 5.9.3
typescript@5.9.3: {}
undici-types@7.18.2: {}

View File

@@ -4,7 +4,7 @@
"rootDir": "./lib",
},
"exclude": [
"*.test.ts",
"**/*.test.ts",
"vitest.config.ts",
"sandbox/**/*",
]

View File

@@ -33,7 +33,8 @@
}
],
"typeRoots": [
"lib/shared/types"
"lib/shared/types",
"node_modules/@types"
]
},
"include": [