Neon Postgres280 words
Open in ChatGPT Ask questions about this page. Neon provides a PostgreSQL database with an API accessible over HTTP and a JavaScript SDK. This lets you use a more conventional
Sections
Neon Postgres
Open in ChatGPT Ask questions about this page. Neon provides a PostgreSQL database with an API accessible over HTTP and a JavaScript SDK. This lets you use a more conventional
Stripe714 words
from "https://esm.town/v/stevekrouse/discordWebhook"; import Stripe from "npm:stripe"; const stripe = new Stripe( Deno.env.get("stripe_sk_customer_readonly") as string, { apiVersion: "2020-08-27", } ); function getStripeCustomer(customerId: string) { return stripe.customers.retrieve(customerId); } export let newStripeEvent =
Sections
Stripe Checkout
Val Town: https://val.town/v/std/stripeCheckoutQuickstart. // @ts-ignore. import { Stripe } from "npm:stripe"; const stripe = new Stripe(Deno.env.get("STRIPE_TEST_API_KEY")); export default async function (req: Request): Promise<Response> { const url = new URL(req.url); if
Example Val Town Stripe Webhook
from "https://esm.town/v/stevekrouse/discordWebhook"; import Stripe from "npm:stripe"; const stripe = new Stripe( Deno.env.get("stripe_sk_customer_readonly") as string, { apiVersion: "2020-08-27", } ); function getStripeCustomer(customerId: string) { return stripe.customers.retrieve(customerId); } export let newStripeEvent =
Airtable312 words
airtable = new Airtable({ apiKey: Deno.env.get("airtable_pat"), baseId: "appXSrKDlwbAijRmD", tableName: "All content", }); // Sample data from: https://blog.airtable.com/database-vs-spreadsheet/ const results = await airtable.select(); console.log(results); Make sure to change: apiKey if you
Sections
Setup
airtable = new Airtable({ apiKey: Deno.env.get("airtable_pat"), baseId: "appXSrKDlwbAijRmD", tableName: "All content", }); // Sample data from: https://blog.airtable.com/database-vs-spreadsheet/ const results = await airtable.select(); console.log(results); Make sure to change: apiKey if you
Upgrade Guide: Safer Val Scopes333 words
in ChatGPT Ask questions about this page. On Nov 1, 2024, we announced safer default API scopes for vals, which don’t include the val:write scope. Some users were not included
Sections
Upgrade Guide: Safer Val Scopes
in ChatGPT Ask questions about this page. On Nov 1, 2024, we announced safer default API scopes for vals, which don’t include the val:write scope. Some users were not included
CORS356 words
from any domain (*). Support common HTTP methods without additional configuration. Work with standard web APIs and frameworks. Handle preflight requests automatically. This default configuration is beneficial for development, allowing
Sections
Default CORS Configuration
from any domain (*). Support common HTTP methods without additional configuration. Work with standard web APIs and frameworks. Handle preflight requests automatically. This default configuration is beneficial for development, allowing
Email381 words
{ email } from "https://esm.town/v/std/email?v=13". console.log( await email({ text: "Hi", headers: { "X-Custom-Header": "xxx", }, }), ). This is also documented in our REST API, and supported in the SDK.
Sections
Headers
{ email } from "https://esm.town/v/std/email?v=13". console.log( await email({ text: "Hi", headers: { "X-Custom-Header": "xxx", }, }), ). This is also documented in our REST API, and supported in the SDK.
Permissions966 words
doesn’t protect any data. It merely makes it impossible for anyone to trigger this public API endpoint without the password. The worst that could happen if this password leaks is
Sections
Custom Authentication
doesn’t protect any data. It merely makes it impossible for anyone to trigger this public API endpoint without the password. The worst that could happen if this password leaks is
Legacy Private Vals
Legacy Private Vals. Prior to February 12th, 2024, private HTTP vals required an API token to access their endpoints. The endpoint was only accessible to the val owner and wasn’t
Version Control465 words
file: import { min } from "npm:lodash-es@4"; We highly recommend pinning imported modules because their APIs can change between versions and unexpectedly break your code. Lockfiles. When you save a
Sections
Versions of external imports
file: import { min } from "npm:lodash-es@4"; We highly recommend pinning imported modules because their APIs can change between versions and unexpectedly break your code.
Github user's stars (pagination)426 words
"https://esm.town/v/stevekrouse/fetchJSON?v=41"; export const getGithubStars = async (username: string) => { const user = await fetchJSON( `https://api.github.com/users/${username}`, ); let totalStars = 0; // Paginate the max number of pages per request.
Sections
Github user's stars (pagination)
"https://esm.town/v/stevekrouse/fetchJSON?v=41"; export const getGithubStars = async (username: string) => { const user = await fetchJSON( `https://api.github.com/users/${username}`, ); let totalStars = 0; // Paginate the max number of pages per request.
Email yourself when you get a comment reaction!
emailGithubReactions = async () => { const username = "stevekrouse"; const events = await fetchJSON( `https://api.github.com/users/${username}/events?per_page=100`, { headers: { Authorization: `Bearer ${githubPatToken}`, }, }, ); const comments = events.filter((event) =>
Send messages to Slack247 words
and send a request to it with a message payload. Create a Slack app. Visit https://api.slack.com/apps?new_app=1, create a new app From Scratch, and choose your App Name and your workspace.
Sections
Create a Slack app
Create a Slack app. Visit https://api.slack.com/apps?new_app=1, create a new app From Scratch, and choose your App Name and your workspace.