Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/nikhil22/namespace-it
- Owner: Nikhil22
- Created: 2017-03-22T23:34:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-03-23T00:20:40.000Z (over 7 years ago)
- Last Synced: 2024-10-12T08:26:49.980Z (about 1 month ago)
- Topics: es6-javascript, execution-context, functions, javascript, namespace, scope
- Language: JavaScript
- Size: 104 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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