Wappler Extensions

Use this category to ask questions, discuss and share any custom modules and formatters you’ve created.

About the Wappler Extensions category

Use this category to ask questions, discuss and share any custom modules and formatters you’ve created. Please check the available documentation explaining how to extend Wappler by creating custom mo…

Base64toFile - Custom Module - NodeJS

Hi there fellow Wapplers, Another simple extension. This enables you to easily decode a base64 string to a file using fs. bvase64tofile.zip (1012 Bytes) Happy Wapplering! bg Jelle edit: added pa…

Custom Module Not Found

Wonder if somebody could help me. I am trying to use the Base64 to image custom module. It will work fine on my local docker test but on the Digital Ocean live site it will not work. I am using Trafef…

:rocket: Faker 0.1

Hi, I’ve just released a custom module to make use of the Faker library. A library to generate fake data. Useful for testing and demos. This one implements the Faker generator wrapper which is a use…

:rocket: CropperJS v0.0.1-alpha

I just received my ambassador award so I thought that I should honour it by giving something back in return. I created a frontend extension based on cropperjs. The documentation for cropperjs ca…

API File Upload Action - NodeJS & PHP [Open Source]

Yo, Wappler provides a default API Action module in Server Action to call APIs. But it does not have the option to upload files. With this custom module, we extend Wappler to have this option as well…

(NodeJS) Web Push Notifications Extension

Hi. Created an extension with web-push to send push notifications to users! Below the explanation on how to set it up, apologies for the many steps. Let me know if you have any issues, ideas or op…

Clear all User Redis Sessions - NodeJS

I needed the option to log out all sessions from a user, so I coded an extension. That’s useful for something like a “Logout From All Sessions” button. It’s configured for a managed Redis database fr…

Get Header AUTHORIZATION value

You can edit the .htaccess, Wappler will only update the part bewteen ## Wappler routing and ## End Wappler routing and not touch any additional rules you add.

Custom extension (node, server) can't pass 0?

Got a very simple extension: const randomize = require('randomatic'); exports.randomatic = function (options, name) { // Parse the 'text input' - if nothing is used, set to 'null' let patter…

Keep large JSON in-memory accessible for every request

Hi, I want to load a large JSON file (all cities and states) and keep it in-memory, accessible for every request. Kind of like $_CUSTOM.cities. Loading the file at every request is inefficient Any t…

:rocket: RunJS 1.3.2

Inspired by @Apple And very thankful for his insights and ideas I just released a custom extension for nodejs to run custom js code without having to create a custom module or a formatter. Sometime…

RabbitMQ Queues for NodeJS

This custom module for server connect allows to send out RabbiMQ Queues. This comes in handy when you want to issue a queue that is consumed as a trigger by a third-party API eg: those created in n8n…

Issue a requestUpdate() for a specific component

First you need to get the instance of the component. On the component you then can call the $update method like: const component = dmx.app.find('mycomponent'); if (component) { // did we find the co…

🦬 Bull Queues for Node

This module extension for server connect allows for the user of Bull Queues to execute Library actions in the background. Links to latest versions in comments below. The module is free to all, and …

Nested data scheme in Wappler Extensions

Here’s a sample: dataScheme: [ { name: 'results', type: 'array', sub: [ { name: 'location', type: 'object', s…

SC extensibility: create global

@George is it possible to create a new custom global UI module as part of the extensibility? Is this available via hjson?

Custom module - dropdown: populate a global variable?

Hello, I’m trying to retrieve all the Oauth2 providers declared in a project globals to put them as inputs in a dropdown in the GUI of a custom module. Right now I am writing this manually: { name:…

HTML to PDF Action - NodeJS & PHP [Open Source]

Yo, Presenting HTML to PDF custom module. This extension adds to the already great set of components Wappler provided by default. Its available for both PHP and NodeJS server models. Add HTML to P…

XLSX Export

Custom extension to Export XLSX using SheetJS. It’s may help someone. One node package need to be install npm install --save https://cdn.sheetjs.com/xlsx-0.18.7/xlsx-0.18.7.tgz Download it-NodeJS …

Bull Queues - Authenticate API Jobs

I started using @mebeingken’s Bull Queue extension, and it’s working great. I’m not using it to queue library jobs but exclusively to queue API jobs. So I was wondering how other people are authentic…

Help with config issue ... installing html2pdf and no longer building

Hi @sid dhant, For info, All good now up+running. thanks for your help and the component. If you’re ever looking for a great job, ping me. John@orthobridge

PDFToBase64 - Custom Module - NodeJS

Hi there fellow Wapplers, Inspired by the simplicity of @sid’s module: (ImageToBase64 - Custom Module - NodeJS) Here is a variation that handles pdf to base64, instead of image to base64. Install …

RFC: Repeating regions in email

Hi all, Repeating regions for email is quite a requested feature. I’ve been working on a custom extension for this(nodejs). The idea behind the extension is that you will create a template file t…

Get File from API Action - NodeJS [OpenSource] (v0.2)

Hi there fellow Wapplers, I have created my first extension Well…not really. I have only copied @mebeingken’s extension: Custom File Actions [Node] And adjusted it to suit my needs. Also learned …

Paged custom query

Hi @patrick, I’m trying to extend the paged query. Can you let me know what is the structure of options.sql object so I can reuse as much code as possible from the standard? Unless I’m better off e…

MODULE: Generate PDF from EJS Template with Puppeteer

First and foremost, a lot of credit has to go to @sid. Their module for HTML to PDF was the basis of this one. SO WHY CREATE ANOTHER PDF MODULE? The reasoning here was to make it easier to generate a…

Any good resources for using extensions?

Hello all, Wappler newb here. I am curious if anybody knows of some good videos or articles that can help get me started with installing and using 3rd party node.js extensions. Any recommendations f…

NodeJS Extension for SSH & SFTP

That’s an early version that allows you to run commands on a remote server via SSH. I’m planning to extend this over time but I’ll package it in releases on GitHub so that you can decide for yourself…

(NodeJs) Create Avatars (Initials, Pixel Art)

Hi! Created this simple extension to create random avatars with initials of a name like it’s used in this community for example. It’s using dicebear, they offer a free API to do all but I wanted to l…

NodeJS Extension to Change File & Folder Permissions

The extension lets you change file and folder permissions server side. Instructions and the module can be found here:

Extension bug? data picker doensn't show up

I think I’m going crazy. Making a quick nodejs server extension… I just need 2 inputs: pattern and length This is in my .hsjon: { name: 'pattern', optionName: 'pattern',…

NodeJS Extension to Create/Write/Append Files

Create a file or write to a file using custom encoding and custom flags. I documented how to use the extension in the GitHub repo.

🚀 Nano ID 0.1

I just finished building the custom module extension for nanoid A tiny, secure, URL-friendly, unique string ID generator for JavaScript. Think of UUID but faster. You can grab it from the public …

XLSX import

Custom extension to import XLSX using SheetJS It’s may help someone. One node package need to be install npm install --save https://cdn.sheetjs.com/xlsx-0.18.7/xlsx-0.18.7.tgz Download-NodeJS onl…

Help with custom module output

Just when i thought i had got my head around such things. Written several custom formatters and had no issues Now on my first tries of custom modules and having on issue regarding returned values …

AC component props not updating on time to render component

The update method has indeed 2 arguments, previous it only had 1. update: function(oldProps, changed) { ... } In the update function you can access the properties of the component with this.props. T…

ImageToBase64 - Custom Module - NodeJS

Hi. Trying out the new Wappler Extensibility prowess - custom modules - I created and implemented a NodeJS module which accepts an image path and return is base64 encoded string. This string can be …

Confusing HJSON documentation

In the HJSON, the following is confusing: type, module I don’t understand the difference: To me it looks like the same Another example: What’s the different between name and optionName? It’s …

How to get a database connection inside a Wappler extension? (NodeJS)

It is the database connection name. You can create an additional input in the extension HSJON to write the DB connection name used in Wappler.

Define Schema on Wappler Extensions

How to add the Define Schema button to a third-party extension step? Like the one in Set Value, to allow (dynamically) defining the metadata of the output

Login

Hi there Wappler community, Since the last Wappler update (4.9.0) the login popup is allways appearing. I have a valid subscription!

Custom block to insert steps inside

Actually now we have a new ‘group’ action that will allow you to group together multiple action steps. It is also useful to created nested data output. Just make sure you give it a name.

Validator for CPF and CNPJ (brazilian tax numbers)

Custom extension to validate CNPJ and CPF (brazilian tax numbers). /extensions/server_connect/modules/check_doc.hjson: [ { type: 'check_doc', module : 'check_doc', action : 'check', …

Custom Function difference() relative to the soundex() value (node)

Following for my previous post regarding a custom soundex() function this custom function extends soundex() to allow flexible match levels The soundex() function returns a 4 digit representation of t…

Implementation of Soundex() for Server Connect (node)

My background is very much in database management, starting back in the mid 1980s Most of my early systems were Customer Relations Management, Medical Records, Human Resources Systems and Criminal In…

How to improve this blocking code

I have a custom module that returns an array of keys ( I need all keys in local_keys that are not in current_keys.) Both input arrays are ~150k records. It works, but is blocking other requests duri…

Bcrypt Laravel Hash/Verify

This is a NodeJS extension to allow Wappler to verify against Laravel bcrypt hashes. This is only useful if you’re porting a PHP or Laravel web application into Wappler, and want to keep using the sam…

JSON output only in console, not in browser

Hi, Sorry about that, I’ve just realized I gave you an incomplete solution… So, you’re returning something in the function processFile(), that’s good. However, where your code is processFile(conten…

Read file in custom extension

Thanks guys for tips. I figured out that it needs to be ‘/opt/node_app//public/xml/full_tst_1item.xml’ because it is Docker (what I forgot to mention)

Server Side Read & Write File

Hi , During project development, I wanted to create a TXT file and add a log to this file. Thanks to Wappler’s expandable feature, it was quite good to prepare it in my own way and use it the way I w…

Custom File Actions [Node]

Here’s a couple of Node custom file actions for anybody in need: Retrieve and save a file from a remote url Determine the mime type of a file based on the content of the file rather than the filenam…

Custom Module - Upload Image to CloudFlare - Works need help with file path

You forgot this: fs.createReadStream(path) Where: data.append(‘file’, path); Should be: data.append(‘file’, fs.createReadStream(path));

Fakevars 1.0.1

I was tired of having to change code in my SC flows or work with a frontend or an api tool to test out something. Enter Fakevars. Now you can define manually your GET, POST, and PARAM variables to te…

Wappler Custom Extensions Market Place

@JonL @George @karh @MH2ag @Teodor @spearstone @mimuk @Antony @sid Im sure i saw a post somewhere that George said its ok… but he does not want to get involved and it should be independent… just ma…

Can a Wappler extension execute actions from the Library?

Hi, Could a server connect custom module execute actions in the Library of the current project? Context: Queue module, where you would select which action you want to execute

How to pass Redis connection to module?

Hello, Is Redis connection information available on globals? I want to pass that to a server connect extension/module

Sending response to client side

Found the error. My hjson file was missing the name property { name: 'name', optionName: 'name', title: 'Name<sup style="color:red">*</sup>', type: 'text', required: true, defaultValue: ''},

Output field in custom module defaultValue not working

Well defaultValue just indicates what is the value that when entered the whole option should be omitted. If you want to make the checkbox checked initially add: initValue: true, defaultValue: false

Custom extension for Sendgrid API?

I normally use the rest API to interact with Sendgrid but I was thinking on creating a native extension using their js api. Just checking with the community if having this in a custom module(for node…

🎉 BetterResponse v2

Sometimes you need something faster than the amazing Wappler devs can arrange. So to answer my own topic (How to send a response with custom header) I created a module that allows me to set headers in…

MailChimp - My first module... Its working :) Just need a little help returning the response

MailChimp - My first module… Its working Just need a little help returning the response… this is the part i can figure out… as I need to get a response… It adds to user and user gets confirmation…

NodeJS Custom Formatters - parameters not as expected

The first argument in the formatter function is always the value it is attached to, the remaining parameters are the ones that you will add in the interface. When you only need one parameter then you …

Custom Module from mPDF to TCPDF

Hi, Please, I need a little help with this, I’m not programmer I’m trying to modify a custom module for TCPDF using the mPDF custom module created by sid (HTML to PDF Action - NodeJS & PHP [Open So…

🚀 Argon2 0.1

In the past before Custom Modules existed I implemented Argon2 for node via a custom formatter. The only problem with this approach was that formatters are synchronous and Argon2 for node would only …

🚀 Image EXIF data 0.1

Small SC extension to retrieve EXIF data from any image sponsored by @psweb You will need to install exif-reader library. As the schema is quite big you will need to select in code view th…

:globe_with_meridians: Browser Extended extension 0.1

I’m happy to announce the first frontend App Connect custom component release. This is just a small example that shows how to extend a core App Connect component. This one extends the core browser co…

UUID - NodeJS & PHP [Open Source]

Yo, Here’s another quick extension which allows you to generate UUID quickly whenever needed. Here is the full source and documentation: NodeJS: https://gitlab.com/wappler-extensions/uuid-nodejs

Paged Custom Query - NodeJS & PHP [Paid]

Yo, We are happy to share our latest extension for Wappler which allows you to create a custom query with pagination support. This extension is currently in beta and has been tested on PHP & NodeJS …

Steps templates

Yes you can use indeed the steps template in your custom module. Just add all the predefined steps there like: { groupTitle : 'S3 Connector', groupIcon : 'fas fa-lg fa-cloud-upload comp-files…

Custom middleware(routing) to discriminate URL parameters

======== TEMPLATE BUG FORM ======== Wappler Version : 3.2.1 Operating System : Mac Project: NodeJS, MySql, Docker. Expected behavior What do you think should happen? When a user visits the URL …

Custom Formatters List For Server Connect 0.1

Several formatters are available to use Wappler more flexibly and more powerfully. I will be constantly updating the list and I will be completing different modules soon. You can write the PHP formatt…

Custom Module Conditional Items Show Up Incorrectly

Hi, We just released a new custom module for File Upload on server side. We have lots on controls for user input, which are shown/hidden based on values of other input. We have seen that the Wappler…

Sleep/Wait for PHP

EDIT: Please refer the post here for latest NodeJS & PHP Wait custom module. Hi. Have created a simple SLEEP custom module for PHP. This was required in my project to delay calling of third-party API…

Add grid display type for modules and formatters

Right now the number of parameter values a formatter will accept is fixed. This could be improved by allowing the enum type as I am just interested in the value of them. I have a custom formatter tha…

Can you write your own custom extensions without them being a node module / on npm?

Hey, I’ve written a custom JS function that acts as a ‘mini algorithm’ on a set of data. Currently its just running client side but I’d like to move it server side and use it through the Wappler Ext…

Two Wappler Extension Studs on GitHub

This is the first morning where I’ve looked at the Github Wappler Extensions project that has been referred to in this Category of the forum. https://gitlab.com/wappler-extensions I just want to sen…

Select spesific records out of database - in range of the count.. does that even make sense

I won’t do it like that - returning 1000 records and then load them using data view. Better set up a paged query, set the limit to 13: Then on the page, use the paged query as a source for the rep…

Wait - NodeJS & PHP [Open Source]

Yo, This is a simple wait/sleep/delay custom module for NodeJS & PHP. The need of it came from calling a 3rd party API in a loop which had a rate-limit. Similar to the Wait option in client-side Flo…

I made a wait module - "wait x seconds"

Hi everyone I just joined the community 2 days ago. Albeit some UI bugs here and there, an autosave option… I’m very happy with Wappler and looking forward to its future, great job! Back to the to…

Custom module (php) - invoking connection

Hello, I need to write a custom module/server extension in PHP to export a portion of my MySQL database. I’m struggling to find the portion of code to invoke the current connection from wappler (wh…

Custom module PHP properties and methods

@patrick Do you have php versions for these two posts?

Call a function in NodeJS

I am trying to call a custom function using NodeJS Created the custom function in a file ‘shortuuid.js’ in folders: extensions > server_connect > modules I then created a function in API: in the …

Server Data Bindings do not evaluate to their values when using Custom Modules

I think I found it George: Testing now. EDIT: All good…just had to use the parseRequired as Patrick documented in the above post. This just opens up a whole world of fun!

Custom Module (NodeJS): PDF to Text

I was looking for a possibility of searching through PDF’s. With the following custom module you can extract text from a searchable PDF and save it to your db or use the output directly. The module m…

Custom formatters multiple input fields

When creating the custom module, I need something like the screenshot. Can you share an example for this? so I need to be able to send more than one variable.

Need some help with custom code

I have a script in old MySql to exactly place a pointer on a google maps position for real estate. It needs to be converted to work with a link from a Wappler project. I managed to get all but one er…

Extensions UI fields show and hide

This is improved in Wappler 3.4.2