1# underscore
2
3[underscore](https://underscorejs.org/) is a module for functional programming and other utilities in JavaScript. It inspired [lodash](https://www.val.town/v/tmcw.lodashExample), which is what most people use now, because lodash is both faster, and provides an ESM version which is convenient to use in Val Town.
4
5Note that while we can import from `lodash-es` and use its named exports, `underscore` only provides a default export, so that's why we have the code `{ default: _ }` below.
1# lodash
2
3[Lodash](https://lodash.com/) is the most popular npm module. It provides helpers for functional programming, common algorithms, and a lot more. Before JavaScript had built-in methods for [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), lodash (and [underscore](https://underscorejs.org/) before it) provided those methods.
4
5Migrated from folder: Modules/lodashExample
1# Receive an email to a val
2
3Every function val can be send an email: `username.valname@valtown.email`
4
5This val's email address is: `stevekrouse.testEmail@valtown.email`
5This example pulls from this gist: [example.js](https://gist.github.com/stevekrouse/c045b716c68790fad5f556e86fd46f3c)
6
7Which has this code: `export const hi = function() { return "Hi Nico!" }`
8
9
1# Figma Frames Only
2
3Function that accepts a Figma file JSON and returns only its' frames.
4
5Only tested with a Figma file that has one (1) CANVAS only. A CANVAS is a Figma File Page.
1# Nano Id
2
3## Function Usage
4
5```
1# OpenAI ChatGPT helper function
2
3This val uses your OpenAI token if you have one, and the @std/openai if not, so it provides limited OpenAI usage for free.
1# Dev Null
2
3A JS function and API inspired by `/dev/null` that will throw away whatever you send it and return `null`.
4
5## Function usage
6
7```
15## Why?
16
17Honestly I don't know why you'd use this function. I just made it as a joke to link to it from [@stevekrouse.dm](https://www.val.town/v/stevekrouse.dm). I guess you could also use it a joke to send data you want to call attention to the fact that you very much don't care about it, ie I **really** don't care about the price of bitcoin:
18
19```
11## Protocol
12
13Expose a `dm` function on your namespace that that accepts messages and some authentication data (described below). The easiest way to accomplish this is to fork this val.
14
15What you choose to do with direct messages is totally up to you. At the moment, I email myself your message and save it to a private array val. You could forward it along to yourself some other way, batch up messages to get a daily summary email if you're Mr. Popular, or send them to [/dev/null](https://www.val.town/v/stevekrouse.devNull) if you're Mr. Antisocial.
17## Authentication
18
19This protocol uses [my Val Town public key auth scheme](https://blog.val.town/public-key-auth-val-town-users-can-be-your-users), so you'll need to follow the first two steps of that blog post – (1) generate a keypair and (2) publish your public key – to authenticate to this function.
20
21## Usage
22
23You can call this function via the [@stevekrouse.runValAPIAuth](/v/stevekrouse.runValAPIAuth) helper:
24
25```js
25### 4. Fork this val & run it
26
27Save your own private version of a `telegram` function to your account by forking this val: https://www.val.town/v/pomdtr.telegram
28
29### 5. Send a test message!
A helper function to build a file's email
Simple functional CSS library for Val Town
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.