Skip to content

Commit 0820332

Browse files
authored
Merge pull request #94 from julienw/fix-types
Fix typescript issues after latest release 7.1.0
2 parents 884c4be + bd1a5a2 commit 0820332

File tree

2 files changed

+14
-85
lines changed

2 files changed

+14
-85
lines changed

koa-helmet.d.ts

Lines changed: 11 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -2,86 +2,19 @@
22
// Project: https://github.com/venables/koa-helmet#readme
33
// Definitions by: Nick Simmons <https://github.com/nsimmons>
44
// Jan Dolezel <https://github.com/dolezel>
5-
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5+
// Julien Wajsberg <https://github.com/julienw>
66
// TypeScript Version: 2.3
77

8-
import helmet from "helmet";
9-
import { Middleware, Context } from "koa";
8+
import type { default as helmet, HelmetOptions } from "helmet";
9+
import { Middleware } from "koa";
1010

11-
type HelmetOptions = helmet.HelmetOptions;
11+
type Helmet = typeof helmet;
1212

13-
declare namespace koaHelmet {
14-
type KoaHelmetContentSecurityPolicyDirectiveFunction = (
15-
req?: Context["req"],
16-
res?: Context["res"],
17-
) => string;
13+
type KoaHelmet = {
14+
[HelmetMiddleware in keyof Helmet]: (
15+
...options: Parameters<Helmet[HelmetMiddleware]>
16+
) => Middleware;
17+
} & ((options?: HelmetOptions) => Middleware);
1818

19-
type KoaHelmetCspDirectiveValue =
20-
| string
21-
| KoaHelmetContentSecurityPolicyDirectiveFunction;
22-
23-
interface KoaHelmetContentSecurityPolicyDirectives {
24-
baseUri?: KoaHelmetCspDirectiveValue[];
25-
childSrc?: KoaHelmetCspDirectiveValue[];
26-
connectSrc?: KoaHelmetCspDirectiveValue[];
27-
defaultSrc?: KoaHelmetCspDirectiveValue[];
28-
fontSrc?: KoaHelmetCspDirectiveValue[];
29-
formAction?: KoaHelmetCspDirectiveValue[];
30-
frameAncestors?: KoaHelmetCspDirectiveValue[];
31-
frameSrc?: KoaHelmetCspDirectiveValue[];
32-
imgSrc?: KoaHelmetCspDirectiveValue[];
33-
mediaSrc?: KoaHelmetCspDirectiveValue[];
34-
objectSrc?: KoaHelmetCspDirectiveValue[];
35-
pluginTypes?: KoaHelmetCspDirectiveValue[];
36-
prefetchSrc?: KoaHelmetCspDirectiveValue[];
37-
reportTo?: string;
38-
reportUri?: string;
39-
sandbox?: KoaHelmetCspDirectiveValue[];
40-
scriptSrc?: KoaHelmetCspDirectiveValue[];
41-
scriptSrcAttr?: KoaHelmetCspDirectiveValue[];
42-
scriptSrcElem?: KoaHelmetCspDirectiveValue[];
43-
styleSrc?: KoaHelmetCspDirectiveValue[];
44-
styleSrcAttr?: KoaHelmetCspDirectiveValue[];
45-
styleSrcElem?: KoaHelmetCspDirectiveValue[];
46-
workerSrc?: KoaHelmetCspDirectiveValue[];
47-
}
48-
49-
interface KoaHelmetContentSecurityPolicyConfiguration {
50-
reportOnly?: boolean;
51-
useDefaults?: boolean;
52-
directives?: KoaHelmetContentSecurityPolicyDirectives;
53-
}
54-
55-
interface KoaHelmet {
56-
(options?: HelmetOptions): Middleware;
57-
contentSecurityPolicy(
58-
options?: KoaHelmetContentSecurityPolicyConfiguration,
59-
): Middleware;
60-
crossOriginEmbedderPolicy(
61-
options?: HelmetOptions["crossOriginEmbedderPolicy"],
62-
): Middleware;
63-
crossOriginOpenerPolicy(
64-
options?: HelmetOptions["crossOriginOpenerPolicy"],
65-
): Middleware;
66-
crossOriginResourcePolicy(
67-
options?: HelmetOptions["crossOriginResourcePolicy"],
68-
): Middleware;
69-
dnsPrefetchControl(
70-
options?: HelmetOptions["dnsPrefetchControl"],
71-
): Middleware;
72-
expectCt(options?: HelmetOptions["expectCt"]): Middleware;
73-
frameguard(options?: HelmetOptions["frameguard"]): Middleware;
74-
hidePoweredBy(options?: HelmetOptions["hidePoweredBy"]): Middleware;
75-
hsts(options?: HelmetOptions["hsts"]): Middleware;
76-
ieNoOpen(options?: HelmetOptions["ieNoOpen"]): Middleware;
77-
noSniff(options?: HelmetOptions["noSniff"]): Middleware;
78-
permittedCrossDomainPolicies(
79-
options?: HelmetOptions["permittedCrossDomainPolicies"],
80-
): Middleware;
81-
referrerPolicy(options?: HelmetOptions["referrerPolicy"]): Middleware;
82-
xssFilter(options?: HelmetOptions["xssFilter"]): Middleware;
83-
}
84-
}
85-
86-
declare const koaHelmet: koaHelmet.KoaHelmet;
87-
export = koaHelmet;
19+
const koaHelmet: KoaHelmet;
20+
export default koaHelmet;

test/koa-helmet.spec.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,7 @@ test("it works with the default helmet call", async () => {
5454

5555
test("it sets individual headers properly", async () => {
5656
const app = new Koa();
57-
app.use(
58-
helmet.hsts({
59-
force: true,
60-
}),
61-
);
57+
app.use(helmet.hsts());
6258
app.use(helmet.contentSecurityPolicy());
6359
app.use(helmet.crossOriginEmbedderPolicy());
6460
app.use(helmet.crossOriginOpenerPolicy());
@@ -71,7 +67,7 @@ test("it sets individual headers properly", async () => {
7167
app.use(helmet.ieNoOpen());
7268
app.use(helmet.referrerPolicy());
7369
app.use(helmet.xssFilter());
74-
app.use(helmet.frameguard("deny"));
70+
app.use(helmet.frameguard({ action: "deny" }));
7571
app.use(helmet.noSniff());
7672
app.use(helmet.permittedCrossDomainPolicies());
7773

@@ -110,7 +106,7 @@ test("it sets individual headers properly", async () => {
110106
.expect("Strict-Transport-Security", "max-age=15552000; includeSubDomains")
111107

112108
// frameguard
113-
.expect("X-Frame-Options", "SAMEORIGIN")
109+
.expect("X-Frame-Options", "DENY")
114110

115111
// noSniff
116112
.expect("X-Content-Type-Options", "nosniff")

0 commit comments

Comments
 (0)