diff --git a/index.js b/index.js index 4b5a33b..c8061a0 100644 --- a/index.js +++ b/index.js @@ -232,10 +232,12 @@ * @example * import Chinotto from "./lib/index.mjs"; * Chinotto.register(); + * @return {Object} */ function register(){ for(const [names, fn] of methods) addMethod(names, fn); for(const [names, fn] of properties) addProperty(names, fn); + return this; } diff --git a/karma.conf.js b/karma.conf.js index d3cecb8..b425ea1 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -9,6 +9,7 @@ module.exports = karma => { files: [ "node_modules/chai/chai.js", "index.js", + "register.js", "test/dom-spec.js", ], preprocessors: { diff --git a/package.json b/package.json index a33d879..7e3bf29 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "repository": "https://github.com/Alhadis/Chinotto", "license": "ISC", "engines": {"node": ">=8.0.0"}, - "files": ["index.js"], + "files": ["index.js", "register.js"], "dependencies": {"chai": "*"}, "devDependencies": { "eslint": "^6.3.0", @@ -32,6 +32,9 @@ "all": true, "clean": false, "reporter": "text", - "include": ["index.js"] + "include": [ + "index.js", + "register.js" + ] } } diff --git a/register.js b/register.js new file mode 100644 index 0000000..e5eb77c --- /dev/null +++ b/register.js @@ -0,0 +1,3 @@ +"use strict"; +const main = ("object" === typeof global ? global : self); +main.Chinotto = (main.Chinotto || require("./index.js")).register(); diff --git a/test/dom-spec.js b/test/dom-spec.js index 1ad618b..aed592c 100644 --- a/test/dom-spec.js +++ b/test/dom-spec.js @@ -22,7 +22,7 @@ describe("DOM-specific extensions", () => { }; } - before(() => (isBrowser ? window.Chinotto : require("../index.js")).register()); + before(() => isBrowser || require("../register.js")); afterEach(() => [...document.body.childNodes].forEach(child => { if(Node.ELEMENT_NODE !== child.nodeType || !child.matches("#mocha")) diff --git a/test/filesystem-spec.js b/test/filesystem-spec.js index 279274f..b360e45 100644 --- a/test/filesystem-spec.js +++ b/test/filesystem-spec.js @@ -9,7 +9,7 @@ describe("Filesystem-related extensions", () => { const tmp = path.join(__dirname, "tmp"); before("Creating fixture directory", () => fs.existsSync(tmp) || fs.mkdirSync(tmp)); - before("Loading extensions", () => require("../index.js").register()); + before("Loading extensions", () => require("../register.js")); after("Emptying fixture directory", () => { for(const file of fs.readdirSync(tmp)) fs.unlinkSync(path.join(tmp, file)); diff --git a/test/utils-spec.js b/test/utils-spec.js index c179fe2..c274081 100644 --- a/test/utils-spec.js +++ b/test/utils-spec.js @@ -6,6 +6,8 @@ const {AssertionError} = Chai; describe("Utility functions", () => { + before("Loading extensions", () => require("../register.js")); + describe("addMethod()", () => { const {addMethod} = Chinotto;