Public
Script
  • vtdocs avatar
    sha256
    @vtdocs
    // Copied from https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
    Script
  • vtdocs avatar
    resyGetMatchingSlot
    @vtdocs
    (Part of: https://www.val.town/v/vtdocs.resyBot) This val attempts to return a single valid slot (per the time range requirements). If there are no valid slots, it throws an error. When there are multiple valid slots, it picks the middle slot (by ordering, not necessarily by time).
    Script
  • std avatar
    blob
    @std
    Blob Storage - Docs ↗ Val Town comes with blob storage built-in. It allows for storing any data, like text, JSON, or images. You can access it via std/blob . Blob storage is scoped globally to your account. If you set a blob in one val, you can retrieve it by the same key in another val. It's backed by Cloudflare R2. You may find this admin viewer helpful for viewing and editing your blobs. Get JSON import { blob } from "https://esm.town/v/std/blob"; let blobDemo = await blob.getJSON("myKey"); console.log(blobDemo); // returns `undefined` if not found Set JSON import { blob } from "https://esm.town/v/std/blob"; await blob.setJSON("myKey", { hello: "world" }); List keys import { blob } from "https://esm.town/v/std/blob"; let allKeys = await blob.list(); console.log(allKeys); const appKeys = await blob.list("app_"); console.log(appKeys); // all keys that begin with `app_` Delete by key import { blob } from "https://esm.town/v/std/blob"; await blob.delete("myKey"); Examples Counter RSS Notifications (saving the last run time) Picture: Save & Read Error Handling blob.get can throw ValTownBlobNotFoundError Any method can throw ValTownBlobError for unexpected errors. Utilities Our Blob SDK also includes some utility functions to make working with blobs easier. Copy import { blob } from "https://esm.town/v/std/blob"; await blob.copy("myKey", "myKeyCopy"); Move import { blob } from "https://esm.town/v/std/blob"; await blob.move("myKey", "myKeyNew"); Lower-level API We provide access to the lower-level getter and setters, which are useful if you are storing non-JSON or binary data, need to stream in your response or request data, or do anything else lower-level. async get(key: string) : Retrieves a blob for a given key. async set(key: string, value: string | BodyInit) : Sets the blob value for a given key. See BodyInit . Limitations Blob-stored data counts towards your total Val Town storage – 10mb on the free plan and 1gb on pro. Check our pricing page to learn more. Keys for blobs can be up to 512 characters long. 📝 Edit docs
    Script
  • vtdocs avatar
    resyAuth
    @vtdocs
    (Part of: https://www.val.town/v/vtdocs.resyBot) Get a user's auth token and payment methods.
    Script
  • vtdocs avatar
    resyBookSlot
    @vtdocs
    (Part of: https://www.val.town/v/vtdocs.resyBot) Given a valid booking token, this val attempts to make a reservation for the booking token's slot. There is some retry logic as the API route (rarely) returns an internal server error.
    Script
  • vtdocs avatar
    resyGetSlotBookingToken
    @vtdocs
    (Part of: https://www.val.town/v/vtdocs.resyBot) Given a valid slot, this val generates the booking token that's required to place a reservation.
    Script
  • vtdocs avatar
    resyVenueIdFromSlugAndCity
    @vtdocs
    (Part of: https://www.val.town/v/vtdocs.resyBot)
    Script
1
Next
September 6, 2024