Skip to content

Commit e012faa

Browse files
committed
build-type: fix when is missing the variables on a message
1 parent 1b86412 commit e012faa

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

example/assets/locales/pt-br/translations.ftl.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type Message<T> = {
1515
declare global {
1616
interface FluentBundleTyped extends FluentBundle {
1717
getMessage<T extends MessagesKey>(id: T): Message<T>
18-
formatPattern<T extends MessagesKey>(pattern: Pattern<T>, args?: PatternArguments<T>, errors?: Array<Error> | null): string
18+
formatPattern: <T extends MessagesKey>(pattern: Pattern<T>, ...args: PatternArguments<T>) => string
1919
}
2020
}
2121

@@ -24,10 +24,10 @@ type MessagesKey = 'hello' |
2424
'bye'
2525
type PatternArguments<T extends MessagesKey> = (
2626
T extends 'hello'
27-
? { 'name': string | number }:
27+
? [{ 'name': string | number }]:
2828
T extends 'how-are-you'
29-
? undefined:
29+
? []:
3030
T extends 'bye'
31-
? undefined
31+
? []
3232
: never
3333
)

src/build-header.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const header = dedent`
1919
declare global {
2020
interface FluentBundleTyped extends FluentBundle {
2121
getMessage<T extends MessagesKey>(id: T): Message<T>
22-
formatPattern<T extends MessagesKey>(pattern: Pattern<T>, args?: PatternArguments<T>, errors?: Array<Error> | null): string
22+
formatPattern: <T extends MessagesKey>(pattern: Pattern<T>, ...args: PatternArguments<T>) => string
2323
}
2424
}
2525
`

src/build-type-pattern-arguments.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ const buildTypePatternArguments = (resource) => {
2727
if (hasVariables(variables)) {
2828
return dedent`
2929
T extends '${message.id}'
30-
? { ${wrapVariables(messageVariables(message)).join(',')} }
30+
? [{ ${wrapVariables(messageVariables(message)).join(',')} }]
3131
`
3232
}
3333

3434
return dedent`
3535
T extends '${message.id}'
36-
? undefined
36+
? []
3737
`
3838
}).join(':\n')
3939

test/index.test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ test('Should match the types definitions', async () => {
2828
declare global {
2929
interface FluentBundleTyped extends FluentBundle {
3030
getMessage<T extends MessagesKey>(id: T): Message<T>
31-
formatPattern<T extends MessagesKey>(pattern: Pattern<T>, args?: PatternArguments<T>, errors?: Array<Error> | null): string
31+
formatPattern: <T extends MessagesKey>(pattern: Pattern<T>, ...args: PatternArguments<T>) => string
3232
}
3333
}
3434
@@ -37,11 +37,11 @@ test('Should match the types definitions', async () => {
3737
'bye'
3838
type PatternArguments<T extends MessagesKey> = (
3939
T extends 'hello'
40-
? { 'name': string | number }:
40+
? [{ 'name': string | number }]:
4141
T extends 'how-are-you'
42-
? undefined:
42+
? []:
4343
T extends 'bye'
44-
? undefined
44+
? []
4545
: never
4646
)
4747
`)

0 commit comments

Comments
 (0)