A free and open-source JavaScript library for accessible creative coding
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
File loading capabilities for JSON, XML, images, fonts, and other assets, plus data export functionality for saving content and data structures.
Core functions for loading various file types and data formats.
/**
* Load JSON data from file or URL
* @param {string} path - Path to JSON file
* @param {object} [jsonpOptions] - JSONP options for cross-domain requests
* @param {string} [datatype] - Data type hint
* @param {function} [callback] - Success callback
* @param {function} [errorCallback] - Error callback
* @returns {object} JSON data object
*/
function loadJSON(path, jsonpOptions, datatype, callback, errorCallback);
/**
* Load text file as array of strings (one per line)
* @param {string} filename - Path to text file
* @param {function} [callback] - Success callback
* @param {function} [errorCallback] - Error callback
* @returns {string[]} Array of strings
*/
function loadStrings(filename, callback, errorCallback);
/**
* Load tabular data (CSV/TSV) as p5.Table
* @param {string} filename - Path to data file
* @param {object|string} [options] - Loading options or file extension
* @param {function} [callback] - Success callback
* @param {function} [errorCallback] - Error callback
* @returns {p5.Table} Table object
*/
function loadTable(filename, options, callback, errorCallback);
/**
* Load XML data
* @param {string} filename - Path to XML file
* @param {function} [callback] - Success callback
* @param {function} [errorCallback] - Error callback
* @returns {p5.XML} XML object
*/
function loadXML(filename, callback, errorCallback);
/**
* Load binary data
* @param {string} file - Path to binary file
* @param {function} [callback] - Success callback
* @param {function} [errorCallback] - Error callback
* @returns {object} Binary data object
*/
function loadBytes(file, callback, errorCallback);Functions for saving data and canvas content to files.
/**
* Save data to file
* @param {object|string} objectOrFilename - Data object or filename
* @param {string} [filename] - Filename if first param is data
* @param {object} [options] - Save options
*/
function save(objectOrFilename, filename, options);
/**
* Save JSON data to file
* @param {object} json - JSON data object
* @param {string} filename - Output filename
* @param {boolean} [optimize] - Whether to optimize/minimize JSON
*/
function saveJSON(json, filename, optimize);
/**
* Save string array to text file
* @param {string[]} list - Array of strings
* @param {string} filename - Output filename
* @param {string} [extension] - File extension
* @param {boolean} [isCRLF] - Use Windows line endings
*/
function saveStrings(list, filename, extension, isCRLF);
/**
* Save table data as CSV
* @param {p5.Table} table - Table to save
* @param {string} filename - Output filename
* @param {object} [options] - Save options
*/
function saveTable(table, filename, options);
/**
* Save canvas as image file
* @param {string|p5.Element} [selectedCanvas] - Canvas element or filename
* @param {string} [filename] - Output filename
* @param {string} [extension] - File extension (png, jpg)
*/
function saveCanvas(selectedCanvas, filename, extension);Classes for working with structured data.
/**
* Table for working with tabular data (CSV/TSV)
*/
class p5.Table {
/** Array of column names */
columns;
/** Array of p5.TableRow objects */
rows;
/**
* Add a new row
* @param {p5.TableRow} [row] - Row to add (creates new if not provided)
* @returns {p5.TableRow} The added row
*/
addRow(row);
/**
* Remove a row
* @param {number} id - Row index to remove
*/
removeRow(id);
/**
* Get row by index
* @param {number} rowID - Row index
* @returns {p5.TableRow} Row object
*/
getRow(rowID);
/**
* Get all rows
* @returns {p5.TableRow[]} Array of row objects
*/
getRows();
/**
* Find first row matching criteria
* @param {string} value - Value to search for
* @param {string} column - Column to search in
* @returns {p5.TableRow} First matching row
*/
findRow(value, column);
/**
* Find all rows matching criteria
* @param {string} value - Value to search for
* @param {string} column - Column to search in
* @returns {p5.TableRow[]} Array of matching rows
*/
findRows(value, column);
/**
* Add a new column
* @param {string} [title] - Column name
*/
addColumn(title);
/**
* Get column count
* @returns {number} Number of columns
*/
getColumnCount();
/**
* Get row count
* @returns {number} Number of rows
*/
getRowCount();
}
/**
* Table row for individual row operations
*/
class p5.TableRow {
/**
* Get cell value by column name or index
* @param {string|number} column - Column name or index
* @returns {string} Cell value
*/
get(column);
/**
* Get cell value as number
* @param {string|number} column - Column name or index
* @returns {number} Cell value as number
*/
getNum(column);
/**
* Get cell value as string
* @param {string|number} column - Column name or index
* @returns {string} Cell value as string
*/
getString(column);
/**
* Set cell value
* @param {string|number} column - Column name or index
* @param {*} value - Value to set
*/
set(column, value);
/**
* Set cell value as number
* @param {string|number} column - Column name or index
* @param {number} value - Numeric value to set
*/
setNum(column, value);
/**
* Set cell value as string
* @param {string|number} column - Column name or index
* @param {string} value - String value to set
*/
setString(column, value);
}
/**
* XML document parsing and manipulation
*/
class p5.XML {
/**
* Get child element by name or index
* @param {string|number} name - Element name or index
* @returns {p5.XML} Child element
*/
getChild(name);
/**
* Get all child elements
* @param {string} [name] - Filter by element name
* @returns {p5.XML[]} Array of child elements
*/
getChildren(name);
/**
* Get element content as string
* @returns {string} Element content
*/
getContent();
/**
* Set element content
* @param {string} text - Content to set
*/
setContent(text);
/**
* Get attribute value
* @param {string} name - Attribute name
* @returns {string} Attribute value
*/
getAttribute(name);
/**
* Set attribute value
* @param {string} name - Attribute name
* @param {*} value - Attribute value
*/
setAttribute(name, value);
/**
* Check if attribute exists
* @param {string} name - Attribute name
* @returns {boolean} True if attribute exists
*/
hasAttribute(name);
}See complete usage examples and detailed API documentation in the p5.js reference.
Install with Tessl CLI
npx tessl i tessl/npm-p5