From 7be4e1901a6d26eb9dc5122df6e545a82ab2f0c3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 26 Sep 2016 15:41:41 +0200 Subject: [PATCH] chore(package): use index-modules --- package.json | 3 +- src/api/.index-modules | 0 src/xapi/mixins/.index-modules | 0 src/xo-mixins/.index-modules | 0 tools/generate-index | 84 ---------------------------------- 5 files changed, 2 insertions(+), 85 deletions(-) create mode 100644 src/api/.index-modules create mode 100644 src/xapi/mixins/.index-modules create mode 100644 src/xo-mixins/.index-modules delete mode 100755 tools/generate-index diff --git a/package.json b/package.json index 4730d31e2..5f6ac0453 100644 --- a/package.json +++ b/package.json @@ -120,6 +120,7 @@ "gulp-plumber": "^1.0.0", "gulp-sourcemaps": "^1.5.1", "gulp-watch": "^4.2.2", + "index-modules": "0.0.0", "leche": "^2.1.1", "mocha": "^3.0.2", "must": "^0.13.1", @@ -131,7 +132,7 @@ "scripts": { "build": "npm run build-indexes && gulp build --production", "depcheck": "dependency-check ./package.json", - "build-indexes": "./tools/generate-index src/api src/xapi/mixins src/xo-mixins", + "build-indexes": "index-modules src/api src/xapi/mixins src/xo-mixins", "dev": "npm run build-indexes && gulp build", "dev-test": "mocha --opts .mocha.opts --watch --reporter=min \"dist/**/*.spec.js\"", "lint": "standard", diff --git a/src/api/.index-modules b/src/api/.index-modules new file mode 100644 index 000000000..e69de29bb diff --git a/src/xapi/mixins/.index-modules b/src/xapi/mixins/.index-modules new file mode 100644 index 000000000..e69de29bb diff --git a/src/xo-mixins/.index-modules b/src/xo-mixins/.index-modules new file mode 100644 index 000000000..e69de29bb diff --git a/tools/generate-index b/tools/generate-index deleted file mode 100755 index a4f75032d..000000000 --- a/tools/generate-index +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env node - -var join = require('path').join -var readdir = require('fs').readdirSync -var stat = require('fs').statSync -var writeFile = require('fs').writeFileSync - -// =================================================================== - -function bind (fn, thisArg) { - return function () { - return fn.apply(thisArg, arguments) - } -} - -function camelCase (str) { - return str.toLowerCase().replace(/[^a-z0-9]+([a-z0-9])/g, function (_, str) { - return str.toUpperCase() - }) -} - -function removeSuffix (str, sfx) { - var strLength = str.length - var sfxLength = sfx.length - - var pos = strLength - sfxLength - if (pos < 0 || str.indexOf(sfx, pos) !== pos) { - return false - } - - return str.slice(0, pos) -} - -// =================================================================== - -function handleEntry (entry, dir) { - var stats = stat(join(dir, entry)) - var base - if (stats.isDirectory()) { - base = entry - } else if (!( - stats.isFile() && ( - (base = removeSuffix(entry, '.coffee')) || - (base = removeSuffix(entry, '.js')) - ) - )) { - return - } - - var identifier = camelCase(base) - this( - 'import ' + identifier + " from './" + base + "'", - 'defaults.' + identifier + ' = ' + identifier, - 'export * as ' + identifier + " from './" + base + "'", - '' - ) -} - -function generateIndex (dir) { - var content = [ - '//', - '// This file has been generated by /tools/generate-index', - '//', - '// It is automatically re-generated each time a build is started.', - '//', - '', - 'const defaults = {}', - 'export default defaults', - '' - ] - var write = bind(content.push, content) - - readdir(dir).map(function (entry) { - if (entry === 'index.js') { - return - } - - handleEntry.call(write, entry, dir) - }) - - writeFile(dir + '/index.js', content.join('\n')) -} - -process.argv.slice(2).map(generateIndex)