Skip to content

Commit b3a3a78

Browse files
committed
refactor(adapter): remove static and rename method
1 parent 6a4aa5f commit b3a3a78

4 files changed

Lines changed: 8 additions & 16 deletions

File tree

src/adapters/react-adapter.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ export type HeadReactAdapterResult = ReactNode[];
1515
* .addLink({ rel: 'canonical', href: 'https://example.com' })
1616
* .build();
1717
*
18-
* const reactElements = HeadReactAdapter.adapter(elements);
18+
* const adapter = new HeadReactAdapter();
19+
* const reactElements = adapter.transform(elements);
1920
* // Returns: [<meta name="description" content="My site" />, <link rel="canonical" href="https://example.com" />]
2021
*/
2122
export class HeadReactAdapter implements HeadAdapter<HeadReactAdapterResult> {
@@ -24,7 +25,7 @@ export class HeadReactAdapter implements HeadAdapter<HeadReactAdapterResult> {
2425
* @param elements - Array of head elements from HeadBuilder.build()
2526
* @returns An array of React elements
2627
*/
27-
static adapter(elements: HeadElement[]): HeadReactAdapterResult {
28+
transform(elements: HeadElement[]): HeadReactAdapterResult {
2829
return elements.map((element, index) => {
2930
const { type, attributes } = element;
3031

@@ -34,8 +35,4 @@ export class HeadReactAdapter implements HeadAdapter<HeadReactAdapterResult> {
3435
});
3536
});
3637
}
37-
38-
adapter(elements: HeadElement[]): HeadReactAdapterResult {
39-
return HeadReactAdapter.adapter(elements);
40-
}
4138
}

src/adapters/tanstack-router-adapter.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export interface HeadTanStackRouterAdapterResult {
2727
* .addLink({ rel: 'canonical', href: 'https://example.com' })
2828
* .build();
2929
*
30-
* const config = HeadTanstackRouterAdapter.adapter(elements);
30+
* const adapter = new HeadTanstackRouterAdapter();
31+
* const config = adapter.transform(elements);
3132
* // Returns: {
3233
* // meta: [{ name: 'description', content: 'My site' }],
3334
* // links: [{ rel: 'canonical', href: 'https://example.com' }],
@@ -41,7 +42,7 @@ export class HeadTanstackRouterAdapter implements HeadAdapter<HeadTanStackRouter
4142
* @param elements - Array of head elements from HeadBuilder.build()
4243
* @returns A TanStackHeadConfig object with elements organized by type
4344
*/
44-
static adapter(elements: HeadElement[]): HeadTanStackRouterAdapterResult {
45+
transform(elements: HeadElement[]): HeadTanStackRouterAdapterResult {
4546
const config: HeadTanStackRouterAdapterResult = {
4647
meta: [],
4748
links: [],
@@ -63,8 +64,4 @@ export class HeadTanstackRouterAdapter implements HeadAdapter<HeadTanStackRouter
6364

6465
return config;
6566
}
66-
67-
adapter(elements: HeadElement[]): HeadTanStackRouterAdapterResult {
68-
return HeadTanstackRouterAdapter.adapter(elements);
69-
}
7067
}

src/builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ export class HeadBuilder<TOutput = HeadElement[]> {
149149
*/
150150
build(): TOutput {
151151
if (this.adapter) {
152-
return this.adapter.adapter(this.elements);
152+
return this.adapter.transform(this.elements);
153153
}
154154
// oxlint-disable-next-line typescript/no-unsafe-type-assertion
155155
return this.elements as unknown as TOutput;

src/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import * as React from 'react';
2-
31
export type HeadMetaAttributes = React.DetailedHTMLProps<
42
React.MetaHTMLAttributes<HTMLMetaElement>,
53
HTMLMetaElement
@@ -36,5 +34,5 @@ export type HeadElement<
3634
* @template T - The output type of the adapter
3735
*/
3836
export interface HeadAdapter<T> {
39-
adapter(elements: HeadElement[]): T;
37+
transform(elements: HeadElement[]): T;
4038
}

0 commit comments

Comments
 (0)