1# trpc
2
3 Access private Val Town apis.
4
5> ⚠️ trpc endpoints can change at any time
53 const builder = recast.types.builders;
54
55 let tapImportIdentifier = "t";
56 const testUtils = [
57 "describe",
88 const specifier = path.node.specifiers[0];
89 if (specifier && specifier.local) {
90 tapImportIdentifier = specifier.local.name.toString();
91 }
92 return false;
96 recast.visit(ast, {
97 visitExpressionStatement(path) {
98 removeMochaGlobal(path as NodePath, tapImportIdentifier, {
99 asserts,
100 });
127function removeMochaGlobal(
128 path: NodePath,
129 tapImportIdentifier: string,
130 { asserts }: { asserts: typeof recast.types.namedTypes },
131) {
144
145 const calleeName = path.node.expression.callee.object.name;
146 if (calleeName !== tapImportIdentifier) {
147 return false;
148 }
1null
2
3Migrated from folder: Archive/vtOpenAPI
1Migrated from folder: Archive/vtOpenAPI
1# Notehub
2
3A set of helper functions for interacting with the Notehub API
4
5Requires `NOTEHUB_CLIENT_ID` and `NOTEHUB_CLIENT_SECRET` [environment variables](https://www.val.town/settings/environment-variables) to be configured.
1Retrieve a city for a given coordinates in the format `[longitude, latitude]`.
2
3An `OPENCAGE_API_KEY` variable is necessary and can be [obtained for free on their website](https://opencagedata.com/pricing).
4
5Migrated from folder: geographic/cities
5import msg from "https://esm.town/v/pomdtr/msg"
6
7import {capitalize} from "https://esm.sh/lodash-es"
8
9export const title = "mdx rendered from a val readme"
10
11# {capitalize(title)}
12
13> {msg}
5import msg from "https://esm.town/v/pomdtr/msg"
6
7import {capitalize} from "https://esm.sh/lodash-es"
8
9export const title = "mdx rendered from a val readme"
10
11# {capitalize(title)}
12
13> {msg}
4
5async function createScreenshot(code: string) {
6 const apiUrl = "https://sourcecodeshots.com/api/image";
7 const resp = await fetch(apiUrl, {
8 method: "POST",
9 headers: {
39 }
40 }
41 const resp = await fetch(`https://api.val.town/v1/alias/${author}/${name}`, {
42 headers,
43 });
50 const version = url.searchParams.get("v");
51 const resp = await fetch(
52 `https://api.val.town/v1/vals/${val.id}/versions/${version}`,
53 { headers },
54 );
3console.log(
4 await fetchJSON(
5 `https://api.val.town/v1/vals/1f32d4c1-332e-4135-889f-8df408924a9d/versions/1`,
6 {
7 headers: {