https://github.com/jag-k/rollup-plugin-scriptable
Create a Scriptable bundle from your project
https://github.com/jag-k/rollup-plugin-scriptable
rollup-plugin scriptable scriptable-app
Last synced: about 1 month ago
JSON representation
Create a Scriptable bundle from your project
- Host: GitHub
- URL: https://github.com/jag-k/rollup-plugin-scriptable
- Owner: jag-k
- License: apache-2.0
- Created: 2022-08-12T00:20:58.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-14T00:40:06.000Z (over 3 years ago)
- Last Synced: 2025-12-13T04:07:06.078Z (3 months ago)
- Topics: rollup-plugin, scriptable, scriptable-app
- Language: TypeScript
- Homepage: https://npmjs.com/package/@jag-k/rollup-plugin-scriptable
- Size: 35.2 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[npm]: https://img.shields.io/npm/v/@jag-k/rollup-plugin-scriptable
[npm-url]: https://www.npmjs.com/package/@jag-k/rollup-plugin-scriptable
[main-version]: https://img.shields.io/github/package-json/v/jag-k/rollup-plugin-scriptable?label=main%20version
[size]: https://packagephobia.com/badge?p=@jag-k/rollup-plugin-scriptable
[size-url]: https://packagephobia.com/result?p=@jag-k/rollup-plugin-scriptable
[license]: https://img.shields.io/github/license/jag-k/rollup-plugin-scriptable
# Rollup Plugin Scriptable
[![NPM][npm]][npm-url]
[![Main version][main-version]](package.json)
[![License][license]](LICENSE)
[![Install size][size]][size-url]
Create a [Scriptable](https://scriptable.app) bundle from your project
## Installation
```shell
npm i -D @jag-k/rollup-plugin-scriptable
```
## Usage
```js
// rollup.config.js
import scriptableBundle from "@jag-k/rollup-plugin-scriptable";
import * as config from "./config.json";
export default {
input: 'src/index.js',
output: [
{
file: `dist/widget.js`,
format: 'es',
plugins: [scriptableBundle(config)]
}
]
};
```
```json5
// config.json
{
"always_run_in_app": false,
"icon": {
"color": "blue",
"glyph": "users"
},
"name": "Widget",
"share_sheet_inputs": []
}
```
After build, you will get 2 files:
```
dist
├── HASS Persons.js
└── HASS Persons.scriptable
```
In `.js` file added banner for Scriptable app.
`.scriptable` file contains bundle for Scriptable app.
This is `config.json` file with `script` key which value is compiled code.
## Quick Tips
You can use [`rollup-plugin-copy`](https://npmjs.com/package/rollup-plugin-copy) to copy files to iCloud for easy
development and debugging Scriptable scripts.
```js
// rollup.config.js
import { homedir } from 'os';
import scriptableBundle from '@jag-k/rollup-plugin-scriptable';
import copy from 'rollup-plugin-copy';
import * as config from './config.json';
export default {
input: 'src/main.js',
output: [
{
file: `dist/${config.name}.js`,
format: 'es',
plugins: [scriptableBundle(config)]
},
],
plugins: process.env.COPY_TO_ICLOUD === 'true' ? [
copy({
hook: 'writeBundle',
targets: [
{
src: `dist/*.js`,
dest: `${homedir()}/Library/Mobile Documents/iCloud~dk~simonbs~Scriptable/Documents/`
},
]
})
] : []
};
```
## License
[Apache 2.0](LICENSE)