
Research
/Security News
Malicious npm Packages Target WhatsApp Developers with Remote Kill Switch
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
This is a simplified interface to use templates from filesystem with {dust} using Node.js.
Simplest way to install is to use npm, just simply npm install dustfs
. This will also install {dust} from npm.
MIT-style license, see INSTALL.txt.
File templates/hello.dust
:
Hello {name}!
File hello.js
:
var dustfs = require('dustfs');
dustfs.dirs('templates'); // Read templates from this directory
dustfs.render('hello.dust', {'name':'Captain Jack'}, function(err, out) {
if(err) console.log('Error: '+err);
else console.log(out);
});
Results for node hello.js
:
Hello Captain Jack!
File templates/layout.dust
:
<body>
<div id="header">
{+header}
Header
{/header}
</div>
<div id="content">
{+content}
Default content.
{/content}
</div>
</body>
File templates/partial.dust
:
{>"layout.dust"/}
{<header}
Hello, {name}!
{/header}
{<content}
This is our own content.
{/content}
File partial.js
:
var dustfs = require('dustfs');
dustfs.debug(true); // Enable optional debug using console.log
dustfs.dirs('templates'); // Read templates from that sub directory
dustfs.render('partial.dust', {'name':'Captain Jack'}, function(err, out) {
if(err) console.log('Error: '+err);
else console.log('Output:\n' + out);
});
Results for node partial.js
:
[dustfs] [partial.dust] Waiting until directory loading is done before rendering...
[dustfs] [layout.dust] Template compiled from templates/layout.dust
[dustfs] [layout.dust] Template loaded: templates/layout.dust
[dustfs] [hello.dust] Template compiled from templates/hello.dust
[dustfs] [hello.dust] Template loaded: templates/hello.dust
[dustfs] [partial.dust] Template compiled from templates/partial.dust
[dustfs] [partial.dust] Template loaded: templates/partial.dust
[dustfs] [partial.dust] Loading done! Let's render!
[dustfs] [partial.dust] Rendering template...
Output:
<body><div id="header">Hello, Captain Jack!</div><div id="content">This is our own content.</div></body>
dustfs.dirs(directory)
will compile and load all .dust files from the directory.
There is multiple ways to call dustfs.dirs
.
Full syntax is: [returns EventEmiter] dustfs.dirs(dir[, dir2[, ...[, callback]]])
Note that using callbacks is not required since dustfs.render() will also wait for any ongoing loading.
Call to dustfs.dirs(dir[, dir2[, ...]])
returns an EventEmitter which can be
used to catch errors or to catch when the loading has ended:
var loading = dustfs.dirs('templates', 'docroot');
loading.on('error', function(err) {
console.log('Error: '+err);
});
loading.on('end', function() {
console.log('Loading done!');
});
Call to dustfs.dirs(dir[, callback])
is a second way to handle events:
var loading = dustfs.dirs('templates', function(err) {
if(err) console.log('Errors: ' + err);
else console.log('Loading done!');
});
Call to dustfs.render(name, context, callback)
will render the named template
with provided context, and after that execute the callback with results:
dustfs.render('partial.dust', {'name':'Captain Jack'}, function(err, out) {
if(err) console.log('Error: '+err);
else console.log('Output:\n' + out);
});
FAQs
Simplified interface to {dust} and file templates for Node.js
We found that dustfs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.