@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
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago