@netacea/cloudflare
v6.0.18
Published
Netacea Cloudflare CDN Integration
Downloads
469
Readme
Netacea Cloudflare
@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://[email protected]/"]
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