Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nikhil22/namespace-it

Apply a namespace to any block of code contained inside a function, or in a javascript file.
https://github.com/nikhil22/namespace-it

es6-javascript execution-context functions javascript namespace scope

Last synced: 8 days ago
JSON representation

Apply a namespace to any block of code contained inside a function, or in a javascript file.

Awesome Lists containing this project

README

        

# Namespace-It - Apply a namespace to any block of code contained inside a function, or in a javascript file.

## Overview of full workflow
Grab the scope variables of a function or a file.



## Usage - Step by Step
### Require the namespaceit module
```javascript
const NamespaceIt = require('namespaceit');
```

### Pick any function in your code block. For example...
```javascript
function someFunction() {
const number = 1;
const string = 'string';
const array = [1,2];
const object = {
hey: 'you',
fn: function() {
return 1;
}
};
function functionStatement() {
return 'I\'m a function statement';
};
const functionExpression = function() {
return 'I\'m a function expression';
};
}
```
### Initialize a new namespaceit object
```javascript
const namespaceIt = new NamespaceIt('A', someFunction);
```

### Call applyNamespace method
```javascript
namespaceIt.applyNamespace();
```

### See the magic happen
```javascript
A.object.fn(); //1
A.array; //[1,2]
```

### Clear the namespace if you want
```javascript
namespaceIt.clearNamespace();
//A is no longer defined!
```

## Limitations


  • Does not currently support arrow function syntax

  • Code must be properly linted with semi colons after each line

  • Functions with arguments are not yet supported

  • Variable declared as a reference to another variable in scope is not yet supported

## Improvements
All points under Limitations are being worked on until they are no longer limitations. If this project excites you, feel free to submit a pull request.

## External Modules/libraries used



  • esprima: npm module for parsing


  • Jasmine: javascript framework for unit testing

### Author
Nikhil Bhaskar