Skip to content

quaos/qwiz-js

Repository files navigation

qwiz-js

Q'Wiz Utilities, for JS

by Chakrit W. [email protected]

This is a minimal collection of tools for my most frequently-needed repetitive tasks

I try to make this depend on the least number of most lightweight tools & frameworks, such as browserify and intl (instead of webpack and moment.js, you got the idea)

Modules

utils

  • forEachField({Object} obj, {Function<String, *>} callback

    Shallow Object Iteration

  • walkObject({Object} obj, {Object} opts)

    Deep Object Iteration

    See: walkObject.Options

  • walkObject.Options

    {Number|Boolean} maxDepth

    {Object} expressionsMap

    {Function<*, walkObject.Context>|*} defaultExpression

  • merge({Object} dest, {Object} src, {Object} opts)

    Shallow&Deep Object Merge

  • clone({Object} src, {Object} opts)

    Shallow&Deep Object Clone

  • extendClass({Function} parentCls, {Object} childProto, {Object} childStatic)

    Prototype/class Extension

  • attachExtension({Function} targetCls, {Function} extClass)

    Class Extension Attachment

utils.text

TODO:

utils.datetime

TODO:

web.WebView

TODO:

web.IndexView

TODO:

web.WebApiClient

Web API client Interface & registry point for implementations

web.WebApiClientImpl_Fetch

(also aliased as web.WebApiClient) TODO:

Grunt Tasks

  • build: Build library for Browser use (output to dist/qwiz.bundle.js and minified version dist/qwiz.bundle.min.js, and copy dist/qwiz.bundle.js to web-demo/assets/js/)

  • web-demo: Run demo web server on localhost:3000 to test web libs functionality

NPM Scripts

  • browserify: Build library for Browser use (output to dist/qwiz.bundle.js and minified version dist/qwiz.bundle.min.js)

    npm run browserify

  • lint: Run eslint

    npm run lint

  • lint-fix: Run eslint with auto-fix mode

    npm run lint-fix

  • test: Run mocha unit tests

    npm test

  • test-debug: Run mocha unit tests in debug mode (can be inspected by tools like Chrome node.js inspector)

    npm run test-debug

Usage in NodeJS & other runtimes

//For ES6 Modules:
//import qwiz from "qwiz/src/index";

//For pre-ES6-Modules Node.JS:
const qwiz = require("qwiz");

qwiz.utils.merge(dest, src, { deep: true });
/* .... */

Usage in Browsers

<!--<script src="assets/js/qwiz.bundle.js"></script>--><!-- For Development -->
<script src="assets/js/qwiz.bundle.min.js"></script><!-- For Production -->
<script type="text/javascript">
(function(qwiz) {

const api = new qwiz.web.WebApiClient({
    window: window,
    document: document,
    /* ... */
});
api.on(qwiz.web.WebApiClient.EVT_ERROR, (err) => {
    /* ... */
});

const view = new qwiz.web.WebView({
    window: window,
    document: document,
    /* ... */
});
view.on(qwiz.web.WebView.EVT_INIT_COMPLETE, (stepResults) => {
    /* ... */
});
view.on(qwiz.web.WebView.EVT_ERROR, (err) => {
    /* ... */
});
view.initOnReady();

/* .... */

})(com.chakritw.qwiz);
</script>

Runtime Dependencies

About

Q'Wiz JS Library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages