New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@deskeen/web-builder

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@deskeen/web-builder

Node.js Web Builder

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Node.JS Website Builder

This tool allows you to build a website by performing a certain number of tasks called modules.

Usage

const builder = require('@deskeen/web-builder')

await builder.build({
  source: [
    // Either a file or a directory
  ],
  modules: [
    // Either:
    // A module name
    'module-name',
    // OR
    // An array containing the module name and the module options
    ['module-name-with-options', {  }],
    // OR
    // A custom function (See "Create your own modules" chapter)
    moduleFunction,
  ],
  log: false,
})

The build function accepts the following properties:

  • source: a list of files or directories that will be passed to the modules.
  • modules: a list of modules. A module can be a module name, an array containing a module name and the module options, or a function. If you add a module name, make sure to add it to to the package.json file and install it beforehand. If you want a function, please read the Create your own modules chapter.
  • log: Whether logs are shown.

A writeFile(filepath, data) function is also available.

Available Modules

Create your own modules

You can create your own modules and perform custom tasks by passing functions instead of package names.

function (sourceMap, opt, lib)

Three parameters will be passed to your module/function:

  • sourceMap: A Map object contaning the file path (i.e. /path/filename.xyz) as key and the content of the file as value provided by the user.
  • opt: An object containing the options also provided by the user.
  • lib: An object containing useful functions provided by the engine.

Three functions are included in the lib object:

  • getTag(tagName, tagValue): Returns a tag name, i.e. {{tagName:tagValue}}.
  • getTagList(tagName, text): Returns the list of tags included in a text (typically the file content).
  • findAsset(filename, directoryList): Find a specific filename in a list of directories.
  • log(text): Log text (if the user turned it on).

Example of module

Imagine your project contains JSON files that you would like to minify. You can create a module to do that:

const minifyJson = (fileMap, opt, { log }) => {
  // Loop through all the files provided by the user
  for (const [path, content] of fileMap.entries()) {

    // If file is a JSON file...
    if (path.endsWith('.json')) {
      // ...Replace the content of the file with a minified version
      fileMap.set(path, JSON.stringify(JSON.parse(content)))

      // Use the log function provided by the engine to log useful informations
      log(`Minify JSON file: ${filepath}`)
    }
  }
}

You JSON-minifier module can then be added to the list of modules:

const builder = require('@deskeen/web-builder')

await builder.build({
  source: [
    '/www/html/index.html',
    '/www/data/data.json',
  ],
  modules: [
    minifyJson
  ]
})

For more concrete examples, you can have a look at the source files of the existing modules.

Contact

You can reach me at {my_firstname}@{my_name}.fr

Licence

MIT Licence - Copyright (c) Morgan Schmiedt

Keywords

FAQs

Package last updated on 04 Sep 2020

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc