Public
Like
glimpse2-runbook-view-glimpse-save-login-react
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v39View latest version
This directory contains pure utility functions that handle data transformation and validation logic.
Utility functions for extracting and parsing data from Notion properties.
Functions:
extractUserEmail(properties)
- Extract email from Notion properties (handles both email-type and rich_text-type)extractUserName(properties)
- Extract name/title from Notion propertiesformatPageTitle(properties)
- Format page title as "Name for Email" with graceful fallbacks
Note: Uses types from /frontend/types/notion.ts
Utility functions for validation and authorization logic.
Functions:
checkAuthorization(userEmail, pageProperties)
- Check if user is authorized based on email matchinggetUserEmailFromWindow()
- Get user email from injected window data
Utility functions for formatting Notion property values.
Functions:
formatNotionDate(dateString)
- Format date string to localized formatextractPlainText(textArray)
- Extract plain text from rich text/title arraysformatMultiSelect(items)
- Format multi-select items as comma-separated stringformatBoolean(value, trueText?, falseText?)
- Format boolean with emoji indicators
import { extractUserEmail, formatPageTitle } from "../utils/dataExtraction.ts";
import { checkAuthorization, getUserEmailFromWindow } from "../utils/validation.ts";
// Extract data
const email = extractUserEmail(properties);
const title = formatPageTitle(properties);
// Check authorization
const userEmail = getUserEmailFromWindow();
const isAuthorized = checkAuthorization(userEmail, properties);
- Pure functions: No side effects, easy to test
- Reusable: Can be used across multiple components
- Type-safe: Full TypeScript support with proper interfaces
- Consistent: Centralized logic for data extraction and validation