betajs/betajs-scoped

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# betajs-scoped 0.0.22
[![Build Status](https://api.travis-ci.org/betajs/betajs-scoped.svg?branch=master)](https://travis-ci.org/betajs/betajs-scoped)
[![Code Climate](https://codeclimate.com/github/betajs/betajs-scoped/badges/gpa.svg)](https://codeclimate.com/github/betajs/betajs-scoped)
[![NPM](https://img.shields.io/npm/v/betajs-scoped.svg?style=flat)](https://www.npmjs.com/package/betajs-scoped)
[![Gitter Chat](https://badges.gitter.im/betajs/betajs-scoped.svg)](https://gitter.im/betajs/betajs-scoped)

BetaJS-Scoped is a small module for scoped loading of modules and dependencies.



## Getting Started


You can use the library in the browser, in your NodeJS project and compile it as well.

#### Browser

```javascript
    <script src="betajs-scoped/dist/scoped.min.js"></script>
``` 

#### NodeJS

```javascript
    var Scoped = require('betajs-scoped/dist/scoped.js');
```

#### Compile

```javascript
    git clone https://github.com/betajs/betajs-scoped.git
    npm install
    grunt
```



## Basic Usage


```javascript
(function () {

var Scoped = this.subScope();

Scoped.binding("module", "global:MyLibrary");
Scoped.binding("dependency1", "global:ExternalDependency1");
Scoped.binding("dependency2", "global:ExternalDependency2");

// Library code

}).call(Scoped);
```

```javascript
Scoped.require(['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.
});

Scoped.define('ns:module', ['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.
    return {
        // Return ns:module definition.
    };
});

Scoped.extend('ns:module', ['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.
    return {
        // Return ns:module extension.
    };
});
```


## Links
| Resource   | URL |
| :--------- | --: |
| Homepage   | [https://betajs.com](https://betajs.com) |
| Git        | [git://github.com/betajs/betajs-scoped.git](git://github.com/betajs/betajs-scoped.git) |
| Repository | [https://github.com/betajs/betajs-scoped](https://github.com/betajs/betajs-scoped) |
| Blog       | [https://blog.betajs.com](https://blog.betajs.com) | 
| Twitter    | [https://twitter.com/thebetajs](https://twitter.com/thebetajs) | 
| Gitter     | [https://gitter.im/betajs/betajs-scoped](https://gitter.im/betajs/betajs-scoped) | 



## Compatability
| Target | Versions |
| :----- | -------: |
| Firefox | 3 - Latest |
| Chrome | 18 - Latest |
| Safari | 4 - Latest |
| Opera | 12 - Latest |
| Internet Explorer | 6 - Latest |
| Edge | 12 - Latest |
| Yandex | Latest |
| iOS | 3.0 - Latest |
| Android | 4.4 - Latest |
| NodeJS | 4.0 - Latest |


## CDN
| Resource | URL |
| :----- | -------: |
| scoped.js | [http://cdn.rawgit.com/betajs/betajs-scoped/master/dist/scoped.js](http://cdn.rawgit.com/betajs/betajs-scoped/master/dist/scoped.js) |
| scoped.min.js | [http://cdn.rawgit.com/betajs/betajs-scoped/master/dist/scoped.min.js](http://cdn.rawgit.com/betajs/betajs-scoped/master/dist/scoped.min.js) |


## Unit Tests
| Resource | URL |
| :----- | -------: |
| Test Suite | [Run](http://rawgit.com/betajs/betajs-scoped/master/tests/tests.html) |



## Weak Dependencies
| Name | URL |
| :----- | -------: |
| betajs-shims | [Open](https://github.com/betajs/betajs-shims) |


## Main Contributors

- Oliver Friedmann

## License

Apache-2.0






## Sponsors

- Ziggeo
- Browserstack