Skip to content

Instantly share code, notes, and snippets.

View nathanclevenger's full-sized avatar
🚀

Nathan Clevenger nathanclevenger

🚀
View GitHub Profile
@nathanclevenger
nathanclevenger / worker.js
Last active August 28, 2022 15:10
hello
// import graphdl from 'https://pkg.do/graphdl@1.0.0'
export default {
fetch: (req, env, ctx) => {
return new Response(JSON.stringify({hello: 123}, { headers: { 'content-type': 'application/json' }})
}
}
export default {
'/': () => { hello: 'world' },
'/:collection': ({collection}) => { collection },
'/:collection/:id': ({collection,id}) => { collection, id },
}
export default ([ collection, id, method = 'get' ], env) => env.KV.get(collection + '/' + id)
@nathanclevenger
nathanclevenger / cloak.js
Created August 26, 2022 08:27 — forked from stickfigure/cloak.js
Cloudflare worker that proxies encrypted urls
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
const encoder = new TextEncoder();
const decoder = new TextDecoder();
const SECRET_KEY_DATA = encoder.encode('YOUR SECRET KEY');
function normalizeBase64(base64urlencoded) {
return base64urlencoded.replace(/-/g, '+').replace(/_/g, '/');
// function replacer(key, value) {
// if(value instanceof Map) {
// return {
// dataType: 'Map',
// value: Array.from(value.entries()), // or with spread: value: [...value]
// };
// } else {
// return value;
// }
// }
@nathanclevenger
nathanclevenger / TypedDurableObjectStorage.ts
Created September 1, 2022 14:09 — forked from huw/TypedDurableObjectStorage.ts
Typed Durable Object Storage
import type { Jsonify } from "type-fest";
// Define new storage types here and below and the storage below will automatically use them.
// prettier-ignore
type TypedDurableObjectStorageValue<Key extends string> = Jsonify<
| Key extends "simple" ? boolean : never
| Key extends "complex" ? { age: number } | { name: string } : never
| Key extends `template:type:known` ? number : never
| Key extends `template:type:${string}` ? string | number : never
>;
@nathanclevenger
nathanclevenger / module.js
Last active September 13, 2022 16:53
Test ESBuild HTTP Import
export default obj => new Response(JSON.stringify(obj, null, 2))
@nathanclevenger
nathanclevenger / config.capnp
Created September 28, 2022 19:14
workerd with TLS config
const config :Workerd.Config = (
services = [
(name = "site-worker", worker = .siteWorker),
],
sockets = [
(name = "https", address = "*:443", https = (tlsOptions = .tlsOptions), service = "site-worker")
],
);
@nathanclevenger
nathanclevenger / api.js
Last active September 29, 2022 15:17
Simple API
import { api } from 'https://pkg.do/apis.do'
const myAPI = api(number = 5 => { number, squared: number^2, cubed: number^3 })
export default myAPI
import { apis, json } from 'https://pkg.do/apis.do'
export default {
fetch: () => json({apis})
}