v1.0.0

πŸ“š 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.