Introduction
Welcome to this comprehensive guide on the frappe
JavaScript library, an integral feature used in Empress. This library provides a robust set of functions that enable developers to streamline and enhance the development process.
Introduction to frappe
The frappe
library is a core feature of Empress, a high-level, user-friendly API that provides a variety of functions for developers to use. This library enables developers to perform a wide range of tasks such as route management, data formatting, namespace creation, and asynchronous loading of assets.
Features and Functionalities
Let’s delve into the primary features and functionalities of the frappe
library.
1. Route Management
The frappe
library provides two functions for managing routes: frappe.get_route()
and frappe.set_route(route)
.
-
frappe.get_route()
This function returns the current route as an array.
frappe.get_route() // ["List", "Task", "List"]
-
frappe.set_route(route)
This function changes the current route to
route
.// route in parts frappe.set_route('List', 'Task', 'List') // route as array frappe.set_route(['List', 'Task', 'Gantt']) // route as string frappe.set_route('List/Event/Calendar') // route with options frappe.set_route(['List', 'Task', 'Task'], { status: 'Open' })
2. Data Formatting
frappe.format(value, df, options, doc)
function formats a raw value into a user presentable format.
frappe.format('2019-09-08', { fieldtype: 'Date' })
// "09-08-2019"
frappe.format('2399', { fieldtype: 'Currency', options: 'currency' }, { inline: true })
// "2,399.00"
3. Namespace Creation
frappe.provide(namespace)
function creates a namespace attached to the window object if it doesn’t exist.
frappe.provide('frappe.ui.form');
// has the same effect as
window.frappe = {}
window.frappe.ui = {}
window.frappe.ui.form = {}
4. Asynchronous Loading of Assets
frappe.require(asset_path, callback)
function loads a JS or CSS asset asynchronously. It is used for libraries that are not used often.
// load a single asset
frappe.require('/assets/frappe/chat.js', () => {
// chat.js is loaded
})
// load multiple assets
frappe.require(['/assets/frappe/chat.js', '/assets/frappe/chat.css'], () => {
// chat.js and chat.css are loaded
})
Conclusion
The frappe
JavaScript library is an essential feature of Empress, offering a plethora of functionalities for developers. It not only simplifies the coding process but also provides a robust structure for building and enhancing applications. By mastering the frappe
library, developers can significantly improve the efficiency and quality of their software development and customization process.