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

cm-web-modules

Package Overview
Dependencies
Maintainers
0
Versions
146
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cm-web-modules

Collection of clean and small ES6 modules for the web

  • 2.3.9
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
63
decreased by-5.97%
Maintainers
0
Weekly downloads
 
Created
Source

cm-web-modules – Library of ES6 Web Modules

cm-web-modules is a library of JavaScript ES6 (ECMAScript 6) modules, used for coding chessmail.

The main purpose of cm-web-modules is, to prevent the usage of large libraries, and to provide needed functionality with the smallest and cleanest amount of code possible.

The cm-web-modules modules have no external dependencies, they don't use jQuery or other frameworks. They are written with modern vanilla JavaScript in ECMAScript 6 syntax.

The cm-web-modules modules are:

Modules

Audio

Module for the Web Audio API. For playing audio samples in a web page.

Cache

Cache data on client site.

Module to read, write and delete cookies.

I18n

Module to handle the internationalisation of frontend text.

const i18n = new I18n(props)

default props:

this.props = {
    locale: null,
    fallbackLang: "en" // used, when the translation was not found for locale
}

load language files:

i18n.load("translations.json").then(() => {
    // do this after loading
})

where the json file has the form

{
  "de": {
    "start_game": "Ein neues Spiel starten",
    "undo_move": "Zug zurück nehmen"
  },
  "en": {
    "start_game": "Start a new game",
    "undo_move": "Undo move"
  }
}

or directly add the translations in your js code

i18n.load({
    de: {
        "0_starts_game": "$0 startet ein neues Spiel",
        "undo_move": "Zug zurück nehmen"
    },
    en: {
        "0_starts_game": "$0 starts a new game",
        "undo_move": "Undo move"
    }
})

Use placeholder $n [0-9] to replace them when using.

To handle the translations in your frontend code use

i18n.t("0_starts_game", ["John Doe"])
i18n.t("undo_move")

to render the needed text in the needed language. You can specify the language in the props when calling new or it uses the browser preferences.

MessageBroker

Observe

Module to observe object properties used for reactive coding the simple way.

Stopwatch

const stopwatch = new Stopwatch({
    onStateChanged: (running) => {
        stateOutput.innerText = running
    },
    onTimeChanged: (seconds) => {
        secondsOutput.innerText = seconds.toFixed(1)
    }
})
buttonStart.addEventListener("click", () => {
    stopwatch.start()
})
buttonStop.addEventListener("click", () => {
    stopwatch.stop()
})
buttonReset.addEventListener("click", () => {
    stopwatch.reset()
})

SVG

Module to render SVG elements and load sprites.

Template

Utils

ArrayUtils, ColorUtils, CoreUtils, DateUtils, DomUtils, EncryptionUtils, EventUtils, TextUtils

LibraryManager

The LibraryManager is the glue between the web-modules.

It is configured in postinstall.js. Add postinstall.js to the automtically excuted install-scripts from npm by adding it to package.json like this

package.json

"scripts": {
    "test": "mocha --require babel-core/register ./test/*.js",
    "postinstall": "node postinstall.js"
  }

In postinstall.js, add the used modules via manager.addProject("module-name")

The source of the module is then copied to PROJECT_ROOT/lib/modules/name. It provides the same include-folder (/lib) for the local and for the via npm installed modules.

You must call npm install after every npm update, because it is only automatically started by the initial install.

Example postinstall.js

const LibraryManager = require("cm-web-modules/src/LibraryManager.js")
const manager = new LibraryManager(__dirname)

manager.addProject("cm-web-modules")
manager.addProject("chess.js", "", "chess.js")

Keywords

FAQs

Package last updated on 08 Nov 2024

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