From 7127b67f94a22247c36bf40e4f2685912e0f80e9 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Tue, 15 Dec 2015 12:36:20 +0100 Subject: Initial work in progress - modularization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add .DS_Store Extract util methods Fix createTester callback Fix notid exports Refactor settimediate and nexttick Fix dep path Create bundle using browserify Rename main file Rename main file Rename main file Use browserify standalone mode Modular interface for main methods 📦 Deleted unnecessary test Add script to generate modules package.json Delete noconflict module Improve how to generat browser bundle Update util modules references Add a way to generate module scaffold Fix version Remove unnecessary dependencies Require the dependency Add missing methods Add dependencies for each module Bumped 0.4.0 Add useful scripts Add .npmignore Updated Add npmignore files Refactor Fix little issues Fix library name Fix isarray module Update script Fix typo Fix template links Update deps Revert "Fix template links" This reverts commit 112a3822f5aeab04d3ebec2e286ade10639f4668. Bump 0.5.1 Fix mapseries reference Bump 0.5.2 --- gulpfile.js | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 gulpfile.js (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..2655edf --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,88 @@ +'use strict'; + +var gulp = require('gulp'); +var path = require('path'); +var fs = require('fs-extra'); +var pkg = require('./package.json'); +var jsonFuture = require('json-future'); +var template = require('lodash.template'); + +var moduleDeps = JSON.parse(template(fs.readFileSync('./support/dependencies.json').toString())({ + version: pkg.version} + )); + +var MODULES_PATH = './lib/'; + +function getFolders(dir) { + return fs.readdirSync(dir) + .filter(function(file) { + return fs.statSync(path.join(dir, file)).isDirectory(); + }); +} + +function generatePackage(name) { + function generateKeywords(name) { + var keywords = [ + 'async', + 'async-modularized' + ]; + + keywords.push(name); + return keywords; + } + + function generateDefaultFields(name) { + var ORIGINAL_FIELDS = [ + 'author', + 'version', + 'repository', + 'license' + ]; + + var structure = { + name: 'async.' + name, + description: 'async ' + name + 'method as module.', + main: './index.js', + repository: "async-js/async." + name + }; + + ORIGINAL_FIELDS.forEach(function(field) { + structure[field] = pkg[field]; + }); + + if (Object.keys(moduleDeps[name]).length > 0) + structure.dependencies = moduleDeps[name]; + + return structure; + } + + var modulePackage = generateDefaultFields(name); + modulePackage.keywords = generateKeywords(name); + return modulePackage; +} + +function generateReadme(name, dist) { + var filepath = path.resolve('support/module_template.md'); + var tpl = fs.readFileSync(filepath).toString(); + tpl = template(tpl)({name: name}); + fs.writeFileSync(dist, tpl); +} + +function copyMetaFiles(dist) { + var files = ['.editorconfig', '.jscsrc', '.jshintrc', '.gitignore']; + + files.forEach(function(file) { + var metafile = path.resolve(file); + var distFile = path.resolve(dist, file); + fs.copySync(metafile, distFile); + }); +} + +gulp.task('package', function() { + return getFolders(MODULES_PATH).map(function(module) { + var dist = path.resolve(MODULES_PATH, module); + jsonFuture.save(path.resolve(dist, 'package.json'), generatePackage(module)); + generateReadme(module, path.resolve(dist, 'README.md')); + copyMetaFiles(dist); + }); +}); -- cgit v1.2.1 From 1f79497635d63753686779238ba4df01bcad21fb Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Tue, 15 Dec 2015 12:36:20 +0100 Subject: use npm for lodash-es, rather than a git submodule --- gulpfile.js | 1 + 1 file changed, 1 insertion(+) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 2655edf..fbc58a1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,4 +1,5 @@ 'use strict'; +// This is used to generate individual packages for each async method var gulp = require('gulp'); var path = require('path'); -- cgit v1.2.1