OVMS3/OVMS.V3/components/duktape/extras/console/README.rst

36 lines
1.3 KiB
ReStructuredText

=========================
Minimal 'console' binding
=========================
Duktape doesn't provide a ``console`` binding (for example ``console.log``)
by default because it would be a portability issue for some targets. Instead,
an application should provide its own ``console`` binding. This directory
contains an example binding:
* Add ``duk_console.c`` to list of C sources to compile.
* Ensure ``duk_console.h`` is in the include path.
* Include the extra header in calling code and initialize the bindings::
#include "duktape.h"
#include "duk_console.h"
/* After initializing the Duktape heap or when creating a new
* thread with a new global environment:
*/
duk_console_init(ctx, 0 /*flags*/);
Use the ``DUK_CONSOLE_PROXY_WRAPPER`` to enable a Proxy wrapper for the
console object. The wrapper allows all undefined methods (for example,
``console.foo``) to be handled as no-ops instead of throwing an error.
See ``duk_console.h`` for full flags list.
* After these steps, ``console`` will be registered to the global object
and is ready to use.
* By default the console object will use ``stdout`` for log levels up to
info, and ``stderr`` for warning and above. You can change this by
providing either ``DUK_CONSOLE_STDOUT_ONLY`` or ``DUK_CONSOLE_STDERR_ONLY``
in ``duk_console_init()`` flags.