> For the complete documentation index, see [llms.txt](https://docs.nm1scripts.in/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nm1scripts.in/classy-series/advanced-classy-notification/intergrations/ox_lib.md).

# ox\_lib

ox\_lib\resource\interface\client\notify.lua \[Replace Full File]

{% code title="ox\_lib\resource\interface\client\notify.lua" overflow="wrap" lineNumbers="true" fullWidth="false" expandable="true" %}

```lua
---@class NotifyProps
---@field id?          string
---@field title?       string
---@field description? string
---@field message?     string
---@field duration?    number
---@field type?        string
---@field status?      string

-- Maps ox_lib type aliases → nm1-classynotify type keys
local typeMap = {
    [0]       = 'info',
    [1]       = 'success',
    [2]       = 'error',
    [3]       = 'warning',
    inform    = 'info',
    primary   = 'info',
    secondary = 'default',
    dark      = 'default',
}

local function resolveType(t)
    return typeMap[t] or t or 'default'
end

---@param data NotifyProps
function lib.notify(data)
    if not data then return end

    local ok, err = pcall(function()
        exports['nm1-classynotify']:Notify({
            type     = resolveType(data.type or data.status),
            title    = data.title,
            message  = data.description or data.message,
            duration = data.duration,
        })
    end)

    if not ok then
        -- nm1-classynotify not available — print once and do nothing
        print('^3[nm1-classynotify] Bridge warning: ' .. tostring(err) .. '^7')
    end
end

---@param data NotifyProps
function lib.defaultNotify(data)
    if not data then return end
    lib.notify({
        type     = resolveType(data.status or data.type),
        title    = data.title,
        message  = data.description or data.message,
        duration = data.duration,
    })
end
```

{% endcode %}
