Skip to content

Commit 11da741

Browse files
authored
fix: export TranslationSignatureResolver type (#228)
1 parent 9065c5e commit 11da741

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

docs/@intlify/vue-i18n-extensions-api.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
- [transformVTDirective](#transformvtdirective)
77
- [Interface](#interface)
88
- [TransformVTDirectiveOptions](#transformvtdirectiveoptions)
9+
- [TypeAlias](#typealias)
10+
- [TranslationSignatureResolver](#translationsignatureresolver)
911

1012
## Function
1113

@@ -127,7 +129,7 @@ Translation function signatures
127129

128130
**Signature:**
129131
```typescript
130-
translationSignatures?: string | string[];
132+
translationSignatures?: string | TranslationSignatureResolver | string[] | TranslationSignatureResolver[] | (string | TranslationSignatureResolver)[];
131133
```
132134

133135
#### Remarks
@@ -136,3 +138,49 @@ You can specify the signature of the translation function attached to the bindin
136138

137139

138140

141+
## TypeAlias
142+
143+
### TranslationSignatureResolver
144+
145+
Translation signature resolver
146+
147+
**Signature:**
148+
```typescript
149+
type TranslationSignatureResolver = (context: TransformContext) => string;
150+
```
151+
152+
#### Remarks
153+
154+
This resolver is used at ['translationSignatures' option](#transformvtdirectiveoptions)
155+
156+
###1 Examples
157+
158+
159+
```js
160+
import { compile } from '@vue/compiler-dom'
161+
import { transformVTDirective } from '@intlify/vue-i18n-extensions'
162+
163+
// the below is just an example, you can use your own signature resolver
164+
const signatureMap = new Map()
165+
166+
const transformVT = transformVTDirective({
167+
translationSignatures: (context) => {
168+
const { prefixIdentifiers, bindingMetadata, inline, filename } = context
169+
let signature = ''
170+
171+
// something logic to resolve signature like using `signatureMap`
172+
// signature = signatureMap.get(filename)
173+
// ...
174+
175+
return signature
176+
}
177+
})
178+
179+
const { code } = compile(`<p v-t="'hello'"></p>`, {
180+
// ...
181+
directiveTransforms: { t: transformVT }
182+
})
183+
```
184+
185+
186+

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export { transformVTDirective } from './transform'
2-
export type { TransformVTDirectiveOptions } from './transform'
2+
export type { TransformVTDirectiveOptions, TranslationSignatureResolver } from './transform'

src/transform.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ type VTDirectiveValue = {
5656
* @remarks
5757
* This resolver is used at {@link TransformVTDirectiveOptions | 'translationSignatures' option}
5858
*
59+
* @public
60+
*
5961
* @example
6062
* ```js
6163
* import { compile } from '@vue/compiler-dom'

0 commit comments

Comments
 (0)