π Complete API Reference
Comprehensive reference for all OnigiriJS methods, properties, and options.
Core API
Onigiri(selector, context)
Main constructor for selecting and manipulating DOM elements.
Onigiri(selector: string | Element | NodeList, context?: Element) β Onigiri
Examples:
O('.button')
O('#container')
O(element)
O('.item', container)
O
Shorthand alias for Onigiri constructor.
O === Onigiri // true
DOM Manipulation
.each(callback)
.each(callback: (element, index) => void) β Onigiri
.on(event, [selector], handler)
.on(event: string, selector?: string, handler: Function) β Onigiri
.off(event, handler)
.off(event: string, handler?: Function) β Onigiri
.trigger(event, data)
.trigger(event: string, data?: any) β Onigiri
.addClass(className)
.addClass(className: string) β Onigiri
.removeClass(className)
.removeClass(className: string) β Onigiri
.toggleClass(className)
.toggleClass(className: string) β Onigiri
.hasClass(className)
.hasClass(className: string) β boolean
.attr(name, [value])
.attr(name: string, value?: string) β string | Onigiri
.removeAttr(name)
.removeAttr(name: string) β Onigiri
.data(key, [value])
.data(key: string, value?: any) β any | Onigiri
.html([content])
.html(content?: string) β string | Onigiri
.text([content])
.text(content?: string) β string | Onigiri
.val([value])
.val(value?: string) β string | Onigiri
.css(property, [value])
.css(property: string | object, value?: string) β string | Onigiri
.show()
.show() β Onigiri
.hide()
.hide() β Onigiri
.append(content)
.append(content: string | Element) β Onigiri
.prepend(content)
.prepend(content: string | Element) β Onigiri
.remove()
.remove() β Onigiri
.empty()
.empty() β Onigiri
.find(selector)
.find(selector: string) β Onigiri
.parent()
.parent() β Onigiri
.children()
.children() β Onigiri
.siblings()
.siblings() β Onigiri
Component API
new Onigiri.prototype.Component(config)
Component(config: ComponentConfig) β Component
Config Options:
interface ComponentConfig {
data?: object,
methods?: object,
computed?: object,
watchers?: object,
template?: string | function,
beforeCreate?: function,
created?: function,
beforeMount?: function,
mounted?: function,
beforeUpdate?: function,
updated?: function,
beforeDestroy?: function,
destroyed?: function
}
component.mount(selector)
mount(selector: string | Element) β Component
component.destroy()
destroy() β void
component.$el
$el: Element
Event Emitter API
new Onigiri.prototype.EventEmitter()
EventEmitter() β EventEmitter
emitter.on(event, handler, [namespace])
on(event: string, handler: Function, namespace?: string) β EventEmitter
emitter.once(event, handler, [namespace])
once(event: string, handler: Function, namespace?: string) β EventEmitter
emitter.off(event, [handler], [namespace])
off(event?: string, handler?: Function, namespace?: string) β EventEmitter
emitter.emit(event, ...args)
emit(event: string, ...args: any[]) β EventEmitter
Security API
Onigiri.security.init(options)
init(options?: SecurityOptions) β Security
Options:
interface SecurityOptions {
csrfToken?: string,
csrfHeader?: string,
csrfParam?: string,
csrfMetaName?: string,
cspNonce?: string,
autoInjectCSRF?: boolean
}
Onigiri.security.getToken()
getToken() β string
Onigiri.security.setToken(token)
setToken(token: string) β Security
Onigiri.security.getNonce()
getNonce() β string
Onigiri.security.setNonce(nonce)
setNonce(nonce: string) β Security
Onigiri.security.addCSRFToHeaders(headers)
addCSRFToHeaders(headers: object) β object
Onigiri.security.addCSRFToData(data)
addCSRFToData(data: object | FormData) β object | FormData
Onigiri.security.addCSRFToForm(form)
addCSRFToForm(form: HTMLFormElement) β void
Onigiri.security.createScript(src, [onload])
createScript(src: string, onload?: Function) β HTMLScriptElement
Onigiri.security.createStyle(content)
createStyle(content: string) β HTMLStyleElement
Onigiri.security.executeScript(code)
executeScript(code: string) β void
Onigiri.security.sanitizeHTML(html)
sanitizeHTML(html: string) β string
Onigiri.security.escapeHTML(str)
escapeHTML(str: string) β string
Onigiri.security.isValidURL(url)
isValidURL(url: string) β boolean
Onigiri.security.isSameOrigin(url)
isSameOrigin(url: string) β boolean
AJAX API
Onigiri.ajax(options)
ajax(options: AjaxOptions) β Promise
Options:
interface AjaxOptions {
url: string,
method?: string,
headers?: object,
data?: any,
csrf?: boolean,
timeout?: number
}
Onigiri.get(url, [options])
get(url: string, options?: AjaxOptions) β Promise
Onigiri.post(url, data, [options])
post(url: string, data: any, options?: AjaxOptions) β Promise
Onigiri.put(url, data, [options])
put(url: string, data: any, options?: AjaxOptions) β Promise
Onigiri.delete(url, [options])
delete(url: string, options?: AjaxOptions) β Promise
Storage API
Onigiri.storage.setPrefix(prefix)
setPrefix(prefix: string) β Storage
Onigiri.storage.set(key, value, [options])
set(key: string, value: any, options?: StorageOptions) β boolean
Options:
interface StorageOptions {
expires?: number // milliseconds
}
Onigiri.storage.get(key, [defaultValue])
get(key: string, defaultValue?: any) β any
Onigiri.storage.remove(key)
remove(key: string) β boolean
Onigiri.storage.clear()
clear() β boolean
Onigiri.storage.has(key)
has(key: string) β boolean
Onigiri.storage.keys()
keys() β string[]
Onigiri.storage.getAll([prefix])
getAll(prefix?: string) β object
Onigiri.storage.size()
size() β number
Onigiri.storage.session.*
Session storage has the same API as local storage (without expiration)
PJAX API
Onigiri.pjax.init(options)
init(options?: PjaxOptions) β Pjax
Options:
interface PjaxOptions {
timeout?: number,
push?: boolean,
replace?: boolean,
scrollTo?: number | false,
maxCacheLength?: number,
csrf?: boolean
}
Onigiri.pjax.load(url, [options])
load(url: string, options?: PjaxOptions) β Promise
Onigiri.pjax.submit(form, [options])
submit(form: HTMLFormElement, options?: PjaxOptions) β void
Onigiri.pjax.clearCache([url])
clearCache(url?: string) β void
Validation API
Onigiri.validation.validate(form, rules)
validate(form: HTMLFormElement, rules: ValidationRules) β ValidationResult
Rules:
interface ValidationRules {
[fieldName: string]: {
required?: boolean,
email?: boolean,
url?: boolean,
numeric?: boolean,
alpha?: boolean,
alphanumeric?: boolean,
min?: number,
max?: number,
minLength?: number,
maxLength?: number,
pattern?: string
}
}
Result:
interface ValidationResult {
isValid: boolean,
errors: {
[fieldName: string]: string[]
}
}
Onigiri.validation.addRule(name, func, message)
addRule(name: string, func: Function, message?: string) β Validation
O(form).validate(rules)
.validate(rules: ValidationRules) β ValidationResult
Animation API
.fadeIn([duration], [callback])
.fadeIn(duration?: number, callback?: Function) β Onigiri
.fadeOut([duration], [callback])
.fadeOut(duration?: number, callback?: Function) β Onigiri
.slideDown([duration], [callback])
.slideDown(duration?: number, callback?: Function) β Onigiri
.slideUp([duration], [callback])
.slideUp(duration?: number, callback?: Function) β Onigiri
Translation (i18n) API
Onigiri.i18n.init(options)
init(options?: I18nOptions) β I18n
Options:
interface I18nOptions {
locale?: string,
fallbackLocale?: string,
storageKey?: string,
autoDetect?: boolean,
missingTranslationWarning?: boolean
}
Onigiri.i18n.setLocale(locale)
setLocale(locale: string) β I18n
Onigiri.i18n.getLocale()
getLocale() β string
Onigiri.i18n.addTranslations(locale, translations, [namespace])
addTranslations(locale: string, translations: object, namespace?: string) β I18n
Onigiri.i18n.addMessages(messages)
addMessages(messages: { [locale: string]: object }) β I18n
Onigiri.i18n.t(key, [params], [locale])
t(key: string, params?: object, locale?: string) β string
Onigiri.t(key, [params], [locale])
t(key: string, params?: object, locale?: string) β string
Onigiri.i18n.tc(key, count, [params], [locale])
tc(key: string, count: number, params?: object, locale?: string) β string
Onigiri.tc(key, count, [params], [locale])
tc(key: string, count: number, params?: object, locale?: string) β string
Onigiri.i18n.has(key, [locale])
has(key: string, locale?: string) β boolean
Onigiri.i18n.formatDate(date, format, [locale])
formatDate(date: Date | string, format: string, locale?: string) β string
Formats: 'short', 'medium', 'long', 'full', 'time', 'datetime'
Onigiri.i18n.formatNumber(number, [options], [locale])
formatNumber(number: number, options?: object, locale?: string) β string
Onigiri.i18n.formatCurrency(amount, currency, [locale])
formatCurrency(amount: number, currency: string, locale?: string) β string
Onigiri.i18n.getLocales()
getLocales() β string[]
Onigiri.i18n.translatePage()
translatePage() β I18n
O(selector).translate()
.translate() β Onigiri
HumHub API
Onigiri.humhub(moduleName, config)
humhub(moduleName: string, config: HumHubConfig) β Component
Config:
interface HumHubConfig extends ComponentConfig {
selector: string,
autoInit?: boolean,
pjax?: boolean
}
Utility API
Onigiri.extend(target, ...sources)
extend(target: object, ...sources: object[]) β object
Onigiri.debounce(func, wait)
debounce(func: Function, wait: number) β Function
Onigiri.throttle(func, limit)
throttle(func: Function, limit: number) β Function
Onigiri.isArray(value)
isArray(value: any) β boolean
Onigiri.isObject(value)
isObject(value: any) β boolean
Onigiri.isFunction(value)
isFunction(value: any) β boolean
Onigiri.isEmpty(value)
isEmpty(value: any) β boolean
Onigiri.clone(object)
clone(object: any) β any
Plugin API
Onigiri.use(plugin, [options])
use(plugin: Plugin | Function, options?: any) β Onigiri
Plugin Interface:
interface Plugin {
install(Onigiri: Onigiri, options?: any): void
}
Events
Component Events
// Emitted on data change
'change:propertyName' β (newValue, oldValue)
'update' β (propertyName, newValue, oldValue)
// Custom events
component.emit('custom:event', data)
PJAX Events
// Before PJAX request
'onigiri:pjax:before' β { url, options }
// After PJAX complete
'onigiri:pjax:complete' β { url, container }
Translation Events
// Locale changed
'onigiri:locale:changed' β { locale }
Module Check
Onigiri.modules
Onigiri.modules: {
core: boolean,
events: boolean,
components: boolean,
security: boolean,
ajax: boolean,
storage: boolean,
pjax: boolean,
validation: boolean,
animate: boolean,
translation: boolean,
humhub: boolean
}
Version
Onigiri.version
Onigiri.version β string // "1.0.0"
π Quick Reference: This is a complete API reference. Use Ctrl+F to find specific methods!
Type Definitions
For TypeScript users, here are the core type definitions:
declare interface OnigiriStatic {
(selector: string | Element | NodeList, context?: Element): Onigiri;
version: string;
modules: { [key: string]: boolean };
extend(target: object, ...sources: object[]): object;
debounce(func: Function, wait: number): Function;
throttle(func: Function, limit: number): Function;
ajax(options: AjaxOptions): Promise<any>;
get(url: string, options?: AjaxOptions): Promise<any>;
post(url: string, data: any, options?: AjaxOptions): Promise<any>;
put(url: string, data: any, options?: AjaxOptions): Promise<any>;
delete(url: string, options?: AjaxOptions): Promise<any>;
t(key: string, params?: object, locale?: string): string;
tc(key: string, count: number, params?: object, locale?: string): string;
}
declare interface Onigiri {
elements: Element[];
length: number;
each(callback: (element: Element, index: number) => void): Onigiri;
on(event: string, handler: Function): Onigiri;
on(event: string, selector: string, handler: Function): Onigiri;
off(event: string, handler?: Function): Onigiri;
addClass(className: string): Onigiri;
removeClass(className: string): Onigiri;
toggleClass(className: string): Onigiri;
hasClass(className: string): boolean;
attr(name: string): string;
attr(name: string, value: string): Onigiri;
html(): string;
html(content: string): Onigiri;
text(): string;
text(content: string): Onigiri;
fadeIn(duration?: number, callback?: Function): Onigiri;
fadeOut(duration?: number, callback?: Function): Onigiri;
slideDown(duration?: number, callback?: Function): Onigiri;
slideUp(duration?: number, callback?: Function): Onigiri;
translate(): Onigiri;
}
declare const Onigiri: OnigiriStatic;
declare const O: OnigiriStatic;
β Development Roadmap
Track the progress of OnigiriJS modules. Tasks are marked complete by the development team.
OnigiriJS Module Roadmap
Implementation progress of planned modules
6 / 21 completed (29%)
onigiri-state
Shared global & scoped state management
onigiri-directives
Declarative DOM bindings (o-show, o-model, etc.)
onigiri-resource
REST-style data models over AJAX
onigiri-observe
Intersection & Mutation observer helpers
onigiri-humhub-ui
Standard HumHub UI abstractions (modal, notify, confirm)
onigiri-lifecycle
Component lifecycle hooks
onigiri-guard
Debounce, throttle, single-run guards
onigiri-scroll
Scroll save/restore & helpers (PJAX-friendly)
onigiri-permission
Client-side permission awareness
onigiri-portal
DOM teleport / overlay mounting
onigiri-router
Micro router (non-SPA, PJAX-first)
onigiri-sanitize
HTML & input sanitization
onigiri-shortcut
Keyboard shortcut manager
onigiri-queue
Sequential async task runner
onigiri-gesture
Touch & swipe helpers
onigiri-devtools
Debugging & inspection helpers
onigiri-plugin
Plugin registration system
onigiri-time
Relative time & timezone utilities
onigiri-emojis
Emoji Picker and Manager
onigiri-tasks
Task Management
onigiri-polls
Polls creation and management
Note: Task completion is managed by the OnigiriJS development team.