1export function myApi(name) {
2 return "hi " + name;
3}
3// GitHub starred repos
4export let githubStarred = fetchJSON(
5 "https://api.github.com/users/mcarter00/starred"
6);
3import { rimeRateLimitExceeded } from "https://esm.town/v/stevekrouse/rimeRateLimitExceeded";
4
5// We provide some amount of free usage to this API
6// Callable with my API key via api(@stevekrosue.rime, {text: "blah blah", ...})
7export async function rime({ text, speaker, key }: {
8 text: string;
3
4export const testNasa = fetchJSON(
5 `https://api.nasa.gov/planetary/apod?api_key=${process.env.nasa}&date=1995-06-16`,
6);
1import { spotifyAPI } from "https://esm.town/v/stevekrouse/spotifyAPI";
2
3untitled6667099 = export let spotifyAddToPlaylist ({ id, ...params }) => spotifyAPI({
4 endpoint: `playlists/${id}/tracks`,
5 method: 'POST',
3
4export let untitled_scarletHoverfly = fetchJSON(
5 "https://api.val.town/v1/eval",
6 {
7 method: "POST",
3export async function testSemantics({
4 stateName,
5 api,
6}: {
7 stateName: string;
8 api: string;
9}) {
10 const { data: last } = await fetchJSON(
11 `${api}/eval/${stateName}`
12 );
13 const now = Date.now();
14 await fetchJSON(`${api}/eval/${stateName} = ${now}`);
15 const { data: next } = await fetchJSON(
16 `${api}/eval/${stateName}`
17 );
18 if (next === now) return "❌ Unauthenticated can mutate state";
3import { msDay } from "https://esm.town/v/stevekrouse/msDay";
4
5// simple rate limiter to ensure you don't get a surprise api bill
6// supports multiple keys, so you can rate limit various things
7// the default limit is 1000 but you can supply your own
1export let valtownApiTypesImportTest = (async () => {
2 const openapi = await import("https://esm.sh/valtown-api-types@0.1.1");
3 console.log(Object.keys(openapi));
4})();
5// Forked from @nbbaier.valtownApiTypesImportTest
1export function myApi(name) {
2 return "hi " + name;
3}