# Utilities Some common utilities that are useful in building frontend apps. ## debounce Creates a function that will run only once in the specified number of wait time (milliseconds). In the following example, if you run `debouncedInput` function every time the user presses a key, it will run only once in every `500ms`. ```js import { debounce } from 'jingrow-ui' function onInput(e) { // do something with input event } let debouncedInput = debounce(onInput, 500) ``` ## fileToBase64 This function will return the base64 string of a [File object](https://developer.mozilla.org/en-US/docs/Web/API/File_API). ```js import { fileToBase64 } from 'jingrow-ui' let base64 = fileToBase64(file) // file must be an instance of File ``` ## pageMeta This is a plugin that can be used to update the `document.title` reactively as the page changes. Register the plugin in your `main.js` file. ```js import { pageMetaPlugin } from 'jingrow-ui' // ... app.use(pageMetaPlugin) ``` Now, in your page component, declare the `pageMeta` function. It must return an object with `title` and (`icon` or `emoji`) properties. The `pageMeta` function behaves like a computed property, if there are reactive dependences that change, `document.title` will also change accordingly. **Page.vue** ```vue ```