Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing a method for unregistering modules #6

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tomasperezv
Copy link

@tomasperezv tomasperezv commented May 18, 2016

Goal

This PR adds a new method to the modulejs interface in order to be able to unregister modules.

modulejs.define('a', function () {});
const module = modulejs.require('a'); // => returns the 'a' module

modulejs.unregister('a');
modulejs.require('a'); // The module is not defined now

Why

Unregistering modules can be useful in some specific scenarios for instance for testing. We could, of course, modify directly the _private.definitions variable, as explained in #2. However it's a bit cleaner if we can avoid accessing to the private values externally. Also this way we can include some logic in order to verify if the module is defined, etc.

How

I've added the unregister method, expose it, and implemented corresponding unit tests. I've also run the different check scripts.

I've tried to follow the coding style defined in the library, I'm of course very open to feedback and comments.

Note: I haven't added the built distribution files since I wanted to hear your feedback first. If you agree with this PR I can do push them and increase the version number in the package.json, or if you prefer you can do it.

@tomasperezv
Copy link
Author

Hi @lrsjng, I've updated this PR's code in order to be compatible with your latest changes. Would be great to get some feedback and/or discuss implementation details in case there is something you would like me to change in order to be able to merge this PR.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant