Skip to content

Commit 3d9e3ee

Browse files
committed
fix(nginx): drop semicolon char
1 parent 16dcdb4 commit 3d9e3ee

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

.changeset/thin-cooks-brake.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@anymodel/nginx": patch
3+
---
4+
5+
Fix map directive

packages/nginx/src/directives/AbstractDirective.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ export type Config<T> = Required<{
55
| null
66
| ((
77
value: NonNullable<T[K]>,
8-
level: number
8+
level: number,
9+
settigs: { semicolon: boolean }
910
) => string | (string | AbstractContext<any, any>)[]);
1011
}>;
1112

@@ -19,8 +20,9 @@ export abstract class AbstractDirective<T> {
1920
config?: Config<any>
2021
) {
2122
const configCb = config?.[key];
23+
const settings = { semicolon: true };
2224
if (configCb) {
23-
value = configCb(value, level);
25+
value = configCb(value, level, settings);
2426
}
2527

2628
const values: any[] = [];
@@ -43,7 +45,7 @@ export abstract class AbstractDirective<T> {
4345
if (v instanceof AbstractContext) {
4446
return v.toString(level);
4547
} else {
46-
return `${padding}${key} ${v};`;
48+
return `${padding}${key} ${v}${settings.semicolon ? `;` : ""}`;
4749
}
4850
})
4951
.join("\n");

packages/nginx/src/directives/HttpMapDirective.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export type HttpMapDirectiveSpec = {
2525
export class HttpMapDirective extends AbstractDirective<HttpMapDirectiveSpec> {
2626
static type = "httpMap" as const;
2727
static config: Config<HttpMapDirectiveSpec> = {
28-
map: (dir, level) =>
28+
map: (dir, level, settings) =>
2929
dir.map((item) => {
3030
const pad = " ".repeat(level + 1);
3131
const values = Object.entries(item.values)
@@ -34,6 +34,7 @@ export class HttpMapDirective extends AbstractDirective<HttpMapDirectiveSpec> {
3434
return result;
3535
}, [] as string[])
3636
.join("\n");
37+
settings.semicolon = false;
3738
return `${item.source} ${item.variable} {\n${values}\n${pad}}`;
3839
}),
3940
map_hash_bucket_size: null,

0 commit comments

Comments
 (0)