Skip to content

Commit 56c5e6d

Browse files
committed
fix(typescript): improve types
1 parent 6546231 commit 56c5e6d

12 files changed

+82
-59
lines changed

build.config.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,14 @@ import { defineBuildConfig } from 'unbuild';
33
export default defineBuildConfig({
44
entries: [
55
{
6-
input: './src',
76
builder: 'mkdist',
8-
pattern: ['**/*.vue'],
9-
addRelativeDeclarationExtensions: true,
10-
ext: 'js',
11-
esbuild: {
12-
jsxImportSource: 'vue',
13-
jsx: 'automatic',
14-
jsxFactory: 'h'
15-
}
7+
input: './src',
8+
pattern: ['**/*.ts'],
9+
declaration: false,
10+
format: 'cjs',
11+
loaders: ['js'],
12+
ext: 'cjs'
1613
},
17-
{ builder: 'mkdist', input: './src', pattern: ['**/*.ts'], format: 'cjs', loaders: ['js'], ext: 'cjs' },
1814
{ builder: 'mkdist', input: './src', pattern: ['**/*.ts'], format: 'esm', loaders: ['js'], ext: 'js' }
1915
],
2016
declaration: true,

docs/src/components/content-container.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,27 @@ With each nested `ContentContainer` the element structure becomes one level deep
1616

1717
The appropriate HTML element for the page structure is determined based on the `level`. (e.g. `main`, `article`, `section`)
1818

19-
## Properties
19+
## Type
2020

2121
```ts
22-
type ContentContainerProps = {
22+
23+
declare interface ContentContainerProps {
2324
tag?: string;
2425
rootTags?: string[];
2526
contentTags?: string[];
2627
level?: number;
2728
debug?: boolean;
28-
};
29+
}
30+
31+
declare interface ContentContainerContext extends ContentContainerProps {
32+
parentLevel: number;
33+
currentLevel: number;
34+
currentTag: string;
35+
}
2936
```
3037

38+
## Properties
39+
3140
### tag
3241

3342
- Type: `String`

docs/src/components/content-headline.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,19 @@ The level of the heading is taken from the `ContentContainer`.
1818

1919
The deeper the nesting, the smaller the heading.
2020

21-
## Properties
21+
## Type
2222

2323
```ts
24-
type ContentHeadlineProps = {
24+
declare interface ContentHeadlineProps {
2525
tag: string;
2626
debug: boolean;
27-
};
27+
}
28+
29+
declare interface ContentHeadlineContext extends ContentHeadlineProps {
30+
parentLevel: number;
31+
currentLevel: number;
32+
currentTag: string;
33+
}
2834
```
2935

3036
### tag

docs/src/composables/use-content-container.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,33 +32,35 @@ const { currentTag } = useContentContainer();
3232
3333
```
3434

35-
## Options
35+
## Type
3636

3737
```ts
38-
type ContentContainerOptions = {
39-
tag?: string | undefined;
38+
function useContentContainer(options?: ContentContainerOptions): ContentContainerReturn;
39+
40+
declare interface ContentContainerOptions {
41+
tag?: string;
4042
contentTags?: Array<string>;
4143
rootTags?: Array<string>;
4244
level?: number;
43-
};
45+
}
46+
47+
declare interface ContentContainerReturn {
48+
parentLevel: ComputedRef<number>;
49+
currentLevel: ComputedRef<number>;
50+
currentTag: ComputedRef<string>;
51+
}
4452
```
4553

54+
## Options
55+
4656
| Property | Type | Description | Default Value |
4757
| ------------- | -------- | ----------------------------------------- | --------------------------------------------------------------- |
4858
| `tag` | `String` | Can be used to overwrite the tag. | `undefined` |
4959
| `contentTags` | `Array` | Available tags for the content structure. | `inject('semanticStructure_contentTags', ['article', 'section'])` |
5060
| `rootTags` | `Array` | Available tags for the root structure. | `inject('semanticStructure_rootTags', ['main'])` |
5161
| `level` | `Number` | Can be used to overwrite the level. | `undefined` |
5262

53-
## Return
54-
55-
```ts
56-
type ContentContainerReturn = {
57-
parentLevel: ComputedRef<number>;
58-
currentLevel: ComputedRef<number>;
59-
currentTag: ComputedRef<string>;
60-
};
61-
```
63+
## Result
6264

6365
| Property | Type | Description |
6466
| -------------- | ---------------------- | --------------------- |

docs/src/composables/use-content-headline.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,30 @@ const { currentTag } = useContentHeadline();
3333
3434
```
3535

36-
## Options
36+
## Type
3737

3838
```ts
39-
type ContentHeadlineOptions = {
40-
tag?: string | undefined;
41-
};
42-
```
39+
function useContentHeadline(options?: ContentHeadlineOptions): ContentHeadlineReturn;
4340

44-
| Property | Type | Description | Default Value |
45-
| -------- | --------------------- | ------------------- | ------------- |
46-
| `tag` | `String`\|`undefined` | Tag for the element | `undefined` |
47-
48-
## Return
41+
declare interface ContentHeadlineOptions {
42+
tag?: string;
43+
}
4944

50-
```ts
51-
type ContentHeadlineReturn = {
45+
declare interface ContentHeadlineReturn {
5246
parentLevel: ComputedRef<number>;
5347
currentLevel: ComputedRef<number>;
5448
currentTag: ComputedRef<string>;
55-
};
49+
}
5650
```
5751

52+
## Options
53+
54+
| Property | Type | Description | Default Value |
55+
| -------- | --------------------- | ------------------- | ------------- |
56+
| `tag` | `String`\|`undefined` | Tag for the element | `undefined` |
57+
58+
## Result
59+
5860
| Property | Type | Description |
5961
| -------------- | ---------------------- | --------------------- |
6062
| `parentLevel` | `ComputedRef<Number>;` | Get parent level. |

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@
2121
"type": "module",
2222
"exports": {
2323
".": {
24+
"types": "./dist/index.d.ts",
2425
"import": "./dist/index.js",
2526
"require": "./dist/index.cjs"
2627
}
2728
},
2829
"main": "./dist/index.cjs",
30+
"types": "./dist/index.d.ts",
2931
"files": [
3032
"dist"
3133
],

src/ContentContainer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import { defineComponent, h, inject, provide, type ComponentOptions } from 'vue';
22
import useContentContainer from './useContentContainer';
33

4-
export type ContentContainerProps = {
4+
export interface ContentContainerProps {
55
tag?: string;
66
rootTags?: string[];
77
contentTags?: string[];
88
level?: number;
99
debug?: boolean;
10-
};
10+
}
1111

12-
export type ContentContainerContext = ContentContainerProps & {
12+
export interface ContentContainerContext extends ContentContainerProps {
1313
parentLevel: number;
1414
currentLevel: number;
1515
currentTag: string;
16-
};
16+
}
1717

1818
const ContentContainer = defineComponent({
1919
name: 'ContentContainer',

src/ContentHeadline.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import { defineComponent, h, inject, type ComponentOptions } from 'vue';
22
import useContentHeadline from './useContentHeadline';
33

4-
export type ContentHeadlineProps = {
4+
export interface ContentHeadlineProps {
55
tag: string;
66
debug: boolean;
7-
};
7+
}
88

9-
export type ContentHeadlineContext = ContentHeadlineProps & {
9+
export interface ContentHeadlineContext extends ContentHeadlineProps {
1010
parentLevel: number;
1111
currentLevel: number;
1212
currentTag: string;
13-
};
13+
}
1414

1515
const ContentHeadline = defineComponent({
1616
name: 'ContentHeadline',

src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
export { default as ContentContainer } from './ContentContainer';
22
export { default as ContentHeadline } from './ContentHeadline';
33

4+
export type { ContentHeadlineProps, ContentHeadlineContext } from './ContentHeadline';
5+
export type { ContentContainerProps, ContentContainerContext } from './ContentContainer';
6+
47
export { default as useContentContainer } from './useContentContainer';
58
export { default as useContentHeadline } from './useContentHeadline';
9+
10+
export type { ContentContainerOptions, ContentContainerReturn } from './useContentContainer';
11+
export type { ContentHeadlineOptions, ContentHeadlineReturn } from './useContentHeadline';

src/useContentContainer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
import { provide, inject, computed, type ComputedRef } from 'vue';
22

3-
export type ContentContainerOptions = {
3+
export interface ContentContainerOptions {
44
tag?: string | undefined;
55
rootTags?: string[];
66
contentTags?: string[];
77
level?: number;
8-
};
8+
}
99

10-
export type ContentContainerResult = {
10+
export interface ContentContainerReturn {
1111
parentLevel: ComputedRef<number>;
1212
currentLevel: ComputedRef<number>;
1313
currentTag: ComputedRef<string>;
14-
};
14+
}
1515

1616
export default function useContentContainer({
1717
tag,
1818
contentTags,
1919
rootTags,
2020
level
21-
}: ContentContainerOptions = {}): ContentContainerResult {
21+
}: ContentContainerOptions = {}): ContentContainerReturn {
2222
tag = tag || undefined;
2323
rootTags = rootTags || inject('semanticStructure_rootTags', ['main']);
2424
contentTags = contentTags || inject('semanticStructure_contentTags', ['article', 'section']);

src/useContentHeadline.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { inject, computed, type ComputedRef } from 'vue';
22

3-
export type ContentHeadlineOptions = {
3+
export interface ContentHeadlineOptions {
44
tag?: string | undefined;
5-
};
5+
}
66

7-
export type ContentHeadlineReturn = {
7+
export interface ContentHeadlineReturn {
88
parentLevel: ComputedRef<number>;
99
currentLevel: ComputedRef<number>;
1010
currentTag: ComputedRef<string>;
11-
};
11+
}
1212

1313
export default function useContentHeadline({ tag }: ContentHeadlineOptions = {}): ContentHeadlineReturn {
1414
const parentLevel = computed(() => inject('semanticStructure_parentLevel', 1) + 1);
File renamed without changes.

0 commit comments

Comments
 (0)