scriptlet
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

scriptlet

scriptlet engine for node.js

What is a Scriptlet?

A scriptlet is a piece of JavaScript code that could finish running in finite time.

These kinds of code can be regarded as scriptlet

  • definition of a object / function / scalar constants
  • copy a file to another folder
  • connect to redis server and set a value
  • fetch a web page and save it to a database

These kinds of code can NOT be regarded as scriptlet

  • a web server
  • a job server

How to define and run a scriptlet

Unlike standard Node.js module, scriptlet are defined in AMD style.

You can easly run a scriptlet via this package.

// helper.js
//
// this defines a static object

define({
    log(message) {
        console.log(message)
    }
})

// rm.js
//
// this defines a async function, will be evaluated while running

// 'fs-extra' is a standard node.js module
// './helper' is a relative scriptlet file defined above
// '$in' is a injected value upon running, see 'index.js'
define('fs-extra', '../helper', '$in', async function(fs, helper, $in) {
    helper.log(`unlinking file ${$in}`)
    await fs.unlink($in)
})

// index.js
//
// this runs the scriptlet rm.js with $in injected
const scriptlet = require('scriptlet')
const path = require('path')
async function main() {
    await scriptlet.run(path.join(__dirname, 'rm.js'), {
        // inject the '$in' arguments
        extra: new Map(['$in', process.argv[2]]),
        // use mtime based cache policy
        cache: 'mtime'
    })
}
main()

More

You can build a scriptlet based web server with hot-reload support or even build your own Amazon Lambda Service.

Credits

Guo Y.K., MIT License

Package Sidebar

Install

npm i scriptlet

Weekly Downloads

0

Version

0.3.0

License

MIT

Unpacked Size

10.3 kB

Total Files

5

Last publish

Collaborators

  • yankeguo