micro-namespace

0.2.1 • Public • Published

micro-namespace


Wrap libraries into a namespace.

clone

repository

$ hg clone https://bitbucket.org/frostbane/micro-namespace

npm

$ npm install micro-namespace

usage

AMD require

var ns = require("micro-namespace");

include script

<script type="text/javascript"
        src="micro-namespace.js"></script>

examples

simple namespace

// create fb.common.util namespace
namespace("fb.common.util");

// add methods to fb.common.util
fb.common.util.formatDate = function(...){ ... };
fb.common.util.logError   = function(...){ ... };

// use the methods/classes
if(!fb.common.util.formatDate("2017/12/14")){
    fb.common.util.logError("format failed");
}

namespace and object

// create fb.common.extra namespace with methods
namespace("fb.common.extra", {
    getDateNow   :function(){ ... },
    getServerUrl :function(){ ... },
    AjaxParser   :function(){ ... },
});

// use the methods/classes
var now = fb.common.extra.getDateNow();

var host = fb.common.extra.getServerUrl();

var ax = new fb.common.extra.AjaxParser();

amd require

var ns = require("micro-namespace");

ns("fb.ajax", {
    getUsername :function(){ ... },
});

var user = fb.ajax.getUsername();

initialize object

the third parameter (init) is called under the context of the second parameter (obj) after the namespace is created.

namespace("fb.common.upload", {
    uploadFile   :function(){},
    initUploader :function(){},
    resetErrors  :function(){},
}, function(){
    // exported methods can be accessed with this
    this.initUploader();
    
    this.resetErrors();
    
    $(function(){
        $("#cal").datepicker();
    });
});

Readme

Keywords

Package Sidebar

Install

npm i micro-namespace

Weekly Downloads

8

Version

0.2.1

License

SEE LICENSE IN LICENSE.md

Unpacked Size

11.9 kB

Total Files

4

Last publish

Collaborators

  • frostbane