👤 valTownUser
The valTownUser
object provides a convenient interface to interact with Val Town's API and access user-specific information and functionalities.
Fetches and caches the user's information.
- Use case: Retrieving all user details at once.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getUserInfo = () => valTownUser.getUserInfo();
// Example usage:
const userInfo = await getUserInfo();
console.log('User Information:', userInfo);
// You can also destructure specific properties you need:
const { username, id, email, tier } = await getUserInfo();
console.log(`Username: ${username}`);
console.log(`User ID: ${id}`);
console.log(`Email: ${email}`);
console.log(`Account Tier: ${tier}`);
Retrieves the user's username.
- Use case: Displaying the current user's name in a val.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getUsername = () => valTownUser.getUsername();
// Example usage:
const username = await getUsername();
console.log(`Current user: ${username}`);
Retrieves the user's ID.
- Use case: Using the user ID for database queries or API calls.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getId = () => valTownUser.getId();
// Example usage:
const userId = await getId();
console.log(`User ID: ${userId}`);
Retrieves the user's biography.
- Use case: Displaying the user's bio on a profile page.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getBio = () => valTownUser.getBio();
// Example usage:
const bio = await getBio();
console.log(`User bio: ${bio || 'Not set'}`);
Retrieves the URL of the user's profile image.
- Use case: Showing the user's avatar in a val.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getProfileImageUrl = () => valTownUser.getProfileImageUrl();
// Example usage:
const profileImageUrl = await getProfileImageUrl();
console.log(`Profile image URL: ${profileImageUrl || 'Not set'}`);
Retrieves the user's email address.
- Use case: Sending notifications or verifications.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getEmail = () => valTownUser.getEmail();
// Example usage:
const email = await getEmail();
console.log(`User email: ${email}`);
Retrieves the user's account tier.
- Use case: Implementing tier-specific features.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getTier = () => valTownUser.getTier();
// Example usage:
const tier = await getTier();
console.log(`User tier: ${tier}`);
Generates the endpoint URL for a specified val.
- Use case: Creating links to val endpoints in your application.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getEndpointUrl = (valName: string) => valTownUser.getEndpointUrl(valName);
// Example usage:
const endpointUrl = await getEndpointUrl('mySitesServer');
console.log(`Endpoint URL: ${endpointUrl}`);
Generates the Val Town URL for a specified val.
- Use case: Creating links to val pages in Val Town.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getValUrl = (valName: string) => valTownUser.getValUrl(valName);
// Example usage:
const valUrl = await getValUrl('myVal');
console.log(`Val URL: ${valUrl}`);
Retrieves the vals liked by the user.
- Use case: Displaying a list of the user's favorite vals.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getLikedVals = (options = {}) => valTownUser.getLikedVals(options);
// Example usage:
const likedVals = await getLikedVals({ limit: 5 });
console.log('Liked vals:', likedVals.data);
Retrieves comments related to the user.
- Use case: Showing a user's comment history.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getComments = (options = {}) => valTownUser.getComments(options);
// Example usage:
const comments = await getComments({ limit: 10, relationship: 'given' });
console.log('User comments:', comments.data);
Retrieves references to the user's vals.
- Use case: Tracking how often a user's vals are used by others.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getReferences = (options = {}) => valTownUser.getReferences(options);
// Example usage:
const references = await getReferences({ limit: 5 });
console.log('Val references:', references.data);
Lists the user's blobs.
- Use case: Displaying a file manager for the user's stored data.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const listBlobs = (prefix?: string) => valTownUser.listBlobs(prefix);
// Example usage:
const blobs = await listBlobs();
console.log('User blobs:', blobs);
Stores a new blob or updates an existing one.
- Use case: Uploading user files or storing large datasets.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const storeBlob = (key: string, data: any) => valTownUser.storeBlob(key, data);
// Example usage:
await storeBlob('myFile.txt', 'Hello, World!');
console.log('Blob stored successfully');
Retrieves a specific blob.
- Use case: Downloading a user's stored file.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const getBlob = async (key: string) => {
const blobData = await valTownUser.getBlob(key);
return new TextDecoder().decode(new Uint8Array(blobData));
};
// Example usage:
const blobContent = await getBlob('myFile.txt');
console.log('Blob content:', blobContent);
Deletes a specific blob.
- Use case: Removing old or unnecessary files.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const deleteBlob = (key: string) => valTownUser.deleteBlob(key);
// Example usage:
await deleteBlob('myFile.txt');
console.log('Blob deleted successfully');
Lists the user's vals.
- Use case: Displaying a dashboard of the user's created vals.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const listVals = (options = {}) => valTownUser.listVals(options);
// Example usage:
const userVals = await listVals({ limit: 5 });
console.log('User vals:', userVals.data);
Creates a new val.
- Use case: Programmatically creating vals based on user input.
import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
export const createVal = (valInfo: any) => valTownUser.createVal(valInfo);
// Example usage:
const newVal = await createVal({ name: 'myNewVal', code: 'console.log("Hello, World!");' });
console.log('Created val:', newVal);
Updates an existing val.
- Use case: Implementing an "edit val" feature in your application.
Deletes a specific val.
- Use case: Allowing users to remove their vals through your interface.
Executes a SQLite statement.
- Use case: Running custom queries on the user's database.
Lists all tables in the user's SQLite database.
- Use case: Displaying the structure of a user's database.
Retrieves the schema of a specific table.
- Use case: Showing the structure of a particular table.
Retrieves the content of a specific table.
- Use case: Displaying the data stored in a user's table.