Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexk111/node-red-node-typescript-starter
🏁 Quick-start template repository for creating new Node-RED node sets in TypeScript.
https://github.com/alexk111/node-red-node-typescript-starter
node node-red nodejs starter typescript
Last synced: about 2 months ago
JSON representation
🏁 Quick-start template repository for creating new Node-RED node sets in TypeScript.
- Host: GitHub
- URL: https://github.com/alexk111/node-red-node-typescript-starter
- Owner: alexk111
- License: mit
- Created: 2020-08-07T13:57:51.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-31T06:52:42.000Z (over 1 year ago)
- Last Synced: 2024-10-12T20:38:09.683Z (2 months ago)
- Topics: node, node-red, nodejs, starter, typescript
- Language: JavaScript
- Homepage:
- Size: 640 KB
- Stars: 86
- Watchers: 8
- Forks: 15
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nodered - typescript-starter - Quick-start template repository for creating new node sets in TypeScript. (Nodes / Development)
README
# Node-RED Node TypeScript Starter
This is a quick-start template repository for creating new Node-RED node sets in TypeScript.
## Project Structure
```
node-red-node-typescript-starter/
├──src/ * source files of the node set
│ ├──__tests__/ * tests for the node set (test file names should match *.test.ts glob pattern)
│ │ └──transform-text.test.ts * tests for the transform-text node
│ │
│ └──nodes/ * node set folder, where subfolder names = node types
│ ├──shared/ * folder for .ts files shared across multiple nodes in the node set
│ │
│ └──transform-text/ * source files of the transform-text node
│ ├──icons/ * custom icons used by the node set in the editor
│ │
│ ├──modules/ * .ts modules for the runtime side (transform-text.js file) of the node
│ │
│ ├──shared/ * folder for .ts files shared between the runtime side (.js file) and the editor side (.html file) of the node
│ │
│ ├──transform-text.html/ * files for compiling and bundling into the editor side (transform-text.html file) of the node
│ │ ├──modules/ * .ts modules
│ │ ├──editor.html * html template for the edit dialog
│ │ ├──help.html * html template for the help in the info tab
│ │ └──index.ts * entry file
│ │
| └──transform-text.ts * entry file for the runtime side (transform-text.js file) of the node
|
├──package.json * dependencies and node types for the Node-RED runtime to load
|
├──rollup.config.editor.json * rollup config for building the editor side of the nodes
|
├──tsconfig.json * base typescript config, for the code editor
├──tsconfig.runtime.json * config for creating a production build of the runtime side of the nodes
└──tsconfig.runtime.watch.json * config for watching and incremental building the runtime side of the nodes
```## Getting Started
1. Generate a new GitHub repository by clicking the `Use this template` button at the top of the repository homepage, then clone your new repo. Or you might just clone this repo: `git clone https://github.com/alexk111/node-red-node-typescript-starter.git` and cd into it: `cd node-red-node-typescript-starter`.
2. This project is designed to work with `yarn`. If you don't have `yarn` installed, you can install it with `npm install -g yarn`.
3. Install dependencies: `yarn install`.## Adding Nodes
You can quickly scaffold a new node and add it to the node set. Use the following command to create `my-new-node-type` node:
```
yarn add-node my-new-node-type
```The node generator is based on mustache templates. At the moment there are three templates available:
- `blank` (used by default) - basic node for Node-RED >=1.0
- `blank-0` - node with a backward compatibility for running on Node-RED <1.0
- `config` - configuration nodeTo generate a node using a template, specify it as the third argument:
```
yarn add-node my-new-node-type blank
```or
```
yarn add-node my-new-node-config config
```### Adding Node Templates
If you want to make your own template available, add it to `./utils/templates/`.
## Developing Nodes
Build & Test in Watch mode:
```
yarn dev
```## Building Node Set
Create a production build:
```
yarn build
```## Backers 💝
[[Become a backer](https://mynode.alexkaul.com/gh-donate)]
[![Backer](https://mynode.alexkaul.com/gh-backer/top/0/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/0/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/1/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/1/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/2/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/2/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/3/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/3/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/4/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/4/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/5/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/5/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/6/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/6/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/7/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/7/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/8/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/8/profile)
[![Backer](https://mynode.alexkaul.com/gh-backer/top/9/avatar/60)](https://mynode.alexkaul.com/gh-backer/top/9/profile)## Testing Node Set in Node-RED
[Read Node-RED docs](https://nodered.org/docs/creating-nodes/first-node#testing-your-node-in-node-red) on how to install the node set into your Node-RED runtime.
## License
MIT © Alex Kaul