]> git.gir.st - VimFx.git/commit
Make `require` more like Node.js
authorSimon Lydell <simon.lydell@gmail.com>
Sat, 6 Dec 2014 22:42:32 +0000 (23:42 +0100)
committerSimon Lydell <simon.lydell@gmail.com>
Sun, 14 Dec 2014 15:49:08 +0000 (16:49 +0100)
commit0880c831ef5ecb2de8529c15884b813ee244b94b
tree5e49c120d99dbc3faf426279a5f668122e4bafe5
parent0fee8a7e68aab8281f0caa87eb95242057653425
Make `require` more like Node.js

- Add support for `module.exports`.
- Add support for npm modules in `require()`. Note the following differences
  with Node’s `require()` though:
  - Only `require(path)` is supported, not `require.resolve()` or related
    `module` properties etc.
  - Absolute paths (`/foo/bar.js`) are not supported.
  - Only JavaScript files may be required (not JSON files, for example). Paths
    must not end with `.js`.

Moreover:

- `module.onShutdown(handler)` is used instead of
  `require('unloader').unloader.add(handler)`.
- bootstrap.coffee has been cleaned up. I had a lot of help from looking at
  <https://github.com/adblockplus/buildtools/blob/7a305df14bf3d26ff559f06082b87ff7cff4b3b8/bootstrap.js.tmpl>
- `extension/packages/` has been renamed to the more Node-style
  `extension/lib/`.
- The huffman module has become its own repository, and is now `npm install`ed.
24 files changed:
CONTRIBUTING.md
extension/bootstrap.coffee
extension/lib/button.coffee [moved from extension/packages/button.coffee with 97% similarity]
extension/lib/commands.coffee [moved from extension/packages/commands.coffee with 99% similarity]
extension/lib/events.coffee [moved from extension/packages/events.coffee with 97% similarity]
extension/lib/help.coffee [moved from extension/packages/help.coffee with 98% similarity]
extension/lib/key-utils.coffee [moved from extension/packages/key-utils.coffee with 100% similarity]
extension/lib/l10n.coffee [moved from extension/packages/l10n.coffee with 95% similarity]
extension/lib/main.coffee [new file with mode: 0644]
extension/lib/mode-hints/bloomfilter.coffee [moved from extension/packages/mode-hints/bloomfilter.coffee with 99% similarity]
extension/lib/mode-hints/hints.coffee [moved from extension/packages/mode-hints/hints.coffee with 97% similarity]
extension/lib/mode-hints/marker.coffee [moved from extension/packages/mode-hints/marker.coffee with 97% similarity]
extension/lib/mode-hints/mode-hints.coffee [moved from extension/packages/mode-hints/mode-hints.coffee with 95% similarity]
extension/lib/modes.coffee [moved from extension/packages/modes.coffee with 91% similarity]
extension/lib/options.coffee [moved from extension/packages/options.coffee with 93% similarity]
extension/lib/prefs.coffee [moved from extension/packages/prefs.coffee with 100% similarity]
extension/lib/utils.coffee [moved from extension/packages/utils.coffee with 99% similarity]
extension/lib/vim.coffee [moved from extension/packages/vim.coffee with 94% similarity]
extension/lib/window-utils.coffee [moved from extension/packages/window-utils.coffee with 96% similarity]
extension/packages/mode-hints/huffman.coffee [deleted file]
extension/packages/unloader.coffee [deleted file]
extension/require-data.js.tmpl [new file with mode: 0644]
gulpfile.coffee
package.json
Imprint / Impressum