Skip to content

Commit

Permalink
add readmes for nosecone adapters
Browse files Browse the repository at this point in the history
  • Loading branch information
blaine-arcjet committed Nov 19, 2024
1 parent bf20f48 commit d248ddd
Show file tree
Hide file tree
Showing 2 changed files with 137 additions and 0 deletions.
67 changes: 67 additions & 0 deletions nosecone-next/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<a href="https://nosecone.com" target="_arcjet-home">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg">
<img src="https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg" alt="Arcjet Logo" height="128" width="auto">
</picture>
</a>

# `@nosecone/next`

<p>
<a href="https://www.npmjs.com/package/@nosecone/next">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/%40nosecone%2Fnext?style=flat-square&label=%E2%9C%A6Aj&labelColor=000000&color=5C5866">
<img alt="npm badge" src="https://img.shields.io/npm/v/%40nosecone%2Fnext?style=flat-square&label=%E2%9C%A6Aj&labelColor=ECE6F0&color=ECE6F0">
</picture>
</a>
</p>

Protect your Next.js application with secure headers.

## Installation

```shell
npm install -S @nosecone/next
```

## Example

Create a `middleware.ts` file with the contents:

```ts
import { createMiddleware } from "@nosecone/next";

export const config = {
// matcher tells Next.js to run middleware on all routes
matcher: ["/(.*)"],
};

export default createMiddleware();
```

Add `await connection()` in your `app/layout.tsx` file:

```diff
+ import { connection } from "next/server";

export default async function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
+ // Opt-out of static generation for every page so the CSP nonce can be applied
+ await connection()

return (
<html lang="en">
<body className={inter.className}>{children}</body>
</html>
);
}
```

## License

Licensed under the [Apache License, Version 2.0][apache-license].

[apache-license]: http://www.apache.org/licenses/LICENSE-2.0
70 changes: 70 additions & 0 deletions nosecone-sveltekit/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<a href="https://nosecone.com" target="_arcjet-home">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg">
<img src="https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg" alt="Arcjet Logo" height="128" width="auto">
</picture>
</a>

# `@nosecone/sveltekit`

<p>
<a href="https://www.npmjs.com/package/@nosecone/sveltekit">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/%40nosecone%2Fsveltekit?style=flat-square&label=%E2%9C%A6Aj&labelColor=000000&color=5C5866">
<img alt="npm badge" src="https://img.shields.io/npm/v/%40nosecone%2Fsveltekit?style=flat-square&label=%E2%9C%A6Aj&labelColor=ECE6F0&color=ECE6F0">
</picture>
</a>
</p>

Protect your SvelteKit application with secure headers.

## Installation

```shell
npm install -S @nosecone/sveltekit
```

## Example

Update your `svelte.config.js` file for `csp`:

```diff
import adapter from "@sveltejs/adapter-auto";
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
+ import { csp } from "@nosecone/sveltekit"

/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors
preprocess: vitePreprocess(),

kit: {
+ csp: csp(),
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter(),
},
};

export default config;
```

Create a `src/hooks.server.ts` file with the contents:

```ts
import { createHook } from "@nosecone/sveltekit";
import { sequence } from "@sveltejs/kit/hooks";

export const handle = sequence(
createHook(),
// ... other hooks can go here
);
```

## License

Licensed under the [Apache License, Version 2.0][apache-license].

[apache-license]: http://www.apache.org/licenses/LICENSE-2.0

0 comments on commit d248ddd

Please sign in to comment.