Socket
Socket
Sign inDemoInstall

@netacea/cloudflare

Package Overview
Dependencies
4
Maintainers
1
Versions
163
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @netacea/cloudflare

Netacea Cloudflare CDN Integration


Version published
Maintainers
1
Created

Readme

Source

Netacea Cloudflare

Netacea Header

npm   TypeScript

@netacea/cloudflare is a package designed to add Netacea functionality to Cloudflare workers.

Installation

🤠 Wrangler

We strongly recommend installing and using Wrangler to manage your Cloudflare workers. Wrangler is a CLI tool designed to make previewing and deploying Cloudflare workers seamless.

Installation instructions can be found here.

Check whether Wrangler is installed by using wrangler --help

🌻 Starting fresh

When using SSH for git, you will need to create a .gitconfig file and include the following lines

  [url "ssh://git@github.com/"]
  insteadOf = https://github.com

otherwise Wrangler will fail to clone the project when using wrangler generate.

After installing Wrangler, you can pull the Netacea worker template by running the following:

wrangler generate netacea-cloudflare-worker https://github.com/netacea/cloudflare-worker-template-typescript
cd netacea-cloudflare-worker
npm i
npm i @netacea/cloudflare@latest
npm run test

The tests should pass (if they don't, please open an issue here).

Follow the README.md in the cloudflare-worker-template-typescript repository to get this deployed.

✍ Existing JavaScript worker

Run the following command to install the Netacea worker

npm i @netacea/cloudflare

Import the worker

// CommonJS:
const NetaceaCloudflare = require('@netacea/cloudflare').default
// ES modules:
import NetaceaCloudflare from '@netacea/cloudflare'

Then declare a variable for the worker.

const worker = new NetaceaCloudflare({
  apiKey: 'your-api-key',
  secretKey: 'your-secret-key'
})

It's best security practice to not commit your apiKey and secretKey to any repository.

Finally in your request handler, call worker.run(event, originRequest) where originRequest is a function that will return a response. Below are two examples of workers written in JavaScript and TypeScript:

JavaScript:

const NetaceaCloudflare = require('@netacea/cloudflare').default

const worker = new NetaceaCloudflare({
  apiKey: 'your-api-key',
  secretKey: 'your-secret-key'
})

async function handleRequestWithNetacea(event) {
  const response = await worker.run(event, originRequest)
  event.waitUntil(worker.ingest(event.request, response))
  return response
}

async function originRequest(request) {
  // Implement custom pre-fetch logic here
  const response = await fetch(request)
  // Implement custom post-fetch logic here
  return response
}

module.exports = {
  handleRequestWithNetacea
}

TypeScript:

import NetaceaCloudflare from '@netacea/cloudflare'

const worker = new NetaceaCloudflare({
  apiKey: 'your-api-key',
  secretKey: 'your-secret-key'
})

export async function handleRequestWithNetacea(event: FetchEvent): Promise<Response> {
  const response = await worker.run(event, originRequest)
  event.waitUntil(worker.ingest(event.request, response))
  return response
}

async function originRequest(request: Request): Promise<Response> {
  // Implement custom pre-fetch logic here
  const response = await fetch(request)
  // Implement custom post-fetch logic here
  return response
}

⬆ Updating

Updating the Netacea Cloudflare package can be done with the following command:

npm i @netacea/cloudflare@latest

FAQs

Last updated on 30 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc