@formdata/core v0.58.0
@formdata/core
Core library for interacting with the Form-Data API. This package provides essential functions for managing form configurations, parsing form definitions, and communicating with the Form-Data service.
This package is used by the cli, and in most cases users do not have to use it directly.
Installation
npm install @formdata/coreFeatures
- 📝 Form Configuration: Read and manage form configurations
- 📑 Form Parsing: Parse form definition files into structured objects
- 🔌 API Integration: Communicate with Form-Data API
- 🔑 Authentication: Manage authentication tokens
Usage Examples
Getting Started
import { getConfig, getFormConfig, parseFormDefinition } from '@formdata/core';
// Get the main configuration
const config = getConfig();
// Get configuration for a specific form
const contactForm = getFormConfig('contact-form');
// Parse a form definition file
const formDefinition = parseFormDefinition(formContent);Working with Form Configurations
The core library provides functions to read and manipulate form configurations:
import {
getConfig,
saveConfig,
getFormConfig,
readFormDescriptor,
addForm,
setActiveEnvironment,
getAllForms
} from '@formdata/core';
// Get current configuration
const config = getConfig();
// Add a new form to configuration
addForm({
id: 'contact-form',
path: './forms/contact-form.fd'
});
// Change the active environment
setActiveEnvironment('staging');
// Get all form configurations
const allForms = getAllForms();Parsing Form Definitions
Parse form definition files (.fd) into structured objects:
import { parseFormDefinition } from '@formdata/core';
import fs from 'fs';
// Read a form definition file
const formContent = fs.readFileSync('./forms/contact-form.fd', 'utf8');
// Parse the definition
const formDefinition = parseFormDefinition(formContent);
// Access form properties
console.log(formDefinition.name);
console.log(formDefinition.endpoint);
console.log(formDefinition.blocks); // Array of form elementsInteracting with the API
import {
apiRequest,
deployForm,
syncForm
} from '@formdata/core';
// Deploy a form to the active environment
await deployForm('contact-form');
// Sync a form between environments
await syncForm('contact-form', 'staging', 'production');
// Make a custom API request
const response = await apiRequest('/forms', {
method: 'GET'
});Authentication Management
import {
getAuthData,
isAuthenticated,
getApiToken,
getWorkspace
} from '@formdata/core';
// Check if authenticated
if (isAuthenticated()) {
// Get the current authentication data
const authData = getAuthData();
// Get the API token for requests
const token = getApiToken();
// Get current workspace
const workspace = getWorkspace();
}API Reference
Configuration Functions
getConfig(): Get the current Form-Data configurationsaveConfig(config): Save Form-Data configuration to diskgetFormConfig(formId): Get configuration for a specific formreadFormDescriptor(formId): Read raw form descriptor contentaddForm(formConfig): Add a form to the configurationsetActiveEnvironment(envName): Change the active environmentgetAllForms(): Get all forms from configuration
Form Parsing Functions
parseFormDefinition(text): Parse a form definition text into a structured object
API Communication Functions
apiRequest(path, options): Make a request to the Form-Data APIdeployForm(formId, options): Deploy a form to the active environmentsyncForm(formId, sourceEnv, targetEnv): Sync a form between environmentsApiError: Error class for API-related errors
Authentication Functions
getAuthData(): Get the current authentication datagetWorkspaceAuthData(workspace): Get auth data for a specific workspacesaveAuthData(data): Save authentication dataclearAuthData(): Clear authentication dataisAuthenticated(): Check if user is authenticatedgetApiToken(): Get the API token for the current workspacegetWorkspace(): Get the current workspace
Type Definitions
The core library exports several TypeScript type definitions:
FormConfig: Form configuration propertiesFormDataConfig: Overall configuration structureFormDefinition: Parsed form definitionFormBlock: Individual form elementFormError: Error during form parsingAuthData: Authentication data structureWorkspaceAuthData: Workspace-specific auth data
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago