From 3a6ffedb4c7ad7acf5816a32b9ad095d8d9d673b Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 22 Oct 2018 16:03:41 -0700 Subject: [PATCH] Use babel so that other babel code can extend exported classes --- .gitignore | 2 ++ .npmignore | 3 +-- package.json | 9 ++++++--- spec/composite-disposable-spec.js | 4 ++-- spec/disposable-spec.js | 21 ++++++++++++++++++--- spec/emitter-spec.js | 2 +- 6 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 53b7910..560bd6d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ npm-debug.log *.swp .coffee api.json +dist +package-lock.json diff --git a/.npmignore b/.npmignore index 210aac2..a2f78f0 100644 --- a/.npmignore +++ b/.npmignore @@ -1,10 +1,9 @@ spec script src -*.coffee +lib .npmignore .DS_Store npm-debug.log .travis.yml .pairs -.coffee diff --git a/package.json b/package.json index 338cf59..db83acd 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,10 @@ "name": "event-kit", "version": "2.5.1", "description": "Simple library for implementing and consuming evented APIs", - "main": "./lib/event-kit", + "main": "./dist/event-kit", "scripts": { - "prepublish": "grunt shell:update-atomdoc atomdoc", - "test": "grunt test" + "prepublish": "babel lib --out-dir dist --presets @babel/env && grunt shell:update-atomdoc atomdoc", + "test": "jasmine-focused --captureExceptions --forceexit spec" }, "repository": { "type": "git", @@ -17,6 +17,9 @@ "license": "MIT", "dependencies": {}, "devDependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@babel/preset-env": "^7.1.0", "grunt": "^0.4.1", "grunt-atomdoc": "^1.0.0", "grunt-cli": "^0.1.8", diff --git a/spec/composite-disposable-spec.js b/spec/composite-disposable-spec.js index 34f2877..55e5a55 100644 --- a/spec/composite-disposable-spec.js +++ b/spec/composite-disposable-spec.js @@ -1,5 +1,5 @@ -const CompositeDisposable = require("../lib/composite-disposable") -const Disposable = require("../lib/disposable") +const CompositeDisposable = require("../dist/composite-disposable") +const Disposable = require("../dist/disposable") describe("CompositeDisposable", function() { let disposable1, disposable2, disposable3 diff --git a/spec/disposable-spec.js b/spec/disposable-spec.js index 9a7af11..0f9716d 100644 --- a/spec/disposable-spec.js +++ b/spec/disposable-spec.js @@ -1,4 +1,4 @@ -const Disposable = require("../lib/disposable") +const Disposable = require("../dist/disposable") describe("Disposable", function() { it("does not try to execute disposalAction when it is not a function", function() { @@ -23,7 +23,21 @@ describe("Disposable", function() { expect(disposalAction.callCount).toBe(1) }) - describe(".isDisposable(object)", () => + it('can be extended by ES5-style classes', () => { + function MyDisposable () { + // super + Disposable.apply(this, arguments) + } + + MyDisposable.prototype = new Disposable() + + let actionCalled = false + const disposable = new MyDisposable(() => { actionCalled = true }) + disposable.dispose() + expect(actionCalled).toBe(true) + }) + + describe(".isDisposable(object)", () => { it("true if the object implements the ::dispose function", function() { expect(Disposable.isDisposable(new Disposable(function() {}))).toBe(true) expect(Disposable.isDisposable({ dispose() {} })).toBe(true) @@ -32,5 +46,6 @@ describe("Disposable", function() { expect(Disposable.isDisposable(undefined)).toBe(false) expect(Disposable.isDisposable({ foo() {} })).toBe(false) expect(Disposable.isDisposable({ dispose: 1 })).toBe(false) - })) + }) + }) }) diff --git a/spec/emitter-spec.js b/spec/emitter-spec.js index 2ee2e8a..6f63b97 100644 --- a/spec/emitter-spec.js +++ b/spec/emitter-spec.js @@ -1,4 +1,4 @@ -const Emitter = require("../lib/emitter") +const Emitter = require("../dist/emitter") describe("Emitter", function() { it("invokes the observer when the named event is emitted until disposed", function() {