summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2018-06-03 00:15:56 -0700
committerAlexander Early <alexander.early@gmail.com>2018-06-03 00:15:56 -0700
commit24c5601a19dbe7f7d865c283ab231132ed27f140 (patch)
treecd6e6d68629c73f7a808b19ab1093a5e1cb99ec2
parentc3925df2d1a5b553d4a339aba9e2c4e0f046c1f4 (diff)
downloadasync-24c5601a19dbe7f7d865c283ab231132ed27f140.tar.gz
refactor makefile, avoid using node in evaled targets
-rw-r--r--Makefile35
-rw-r--r--support/aliases.json24
-rw-r--r--support/aliases.txt22
-rw-r--r--support/generate-index.js14
-rwxr-xr-xsupport/get-alias.js12
-rwxr-xr-xsupport/list-aliases.js25
6 files changed, 54 insertions, 78 deletions
diff --git a/Makefile b/Makefile
index a497465..812cd13 100644
--- a/Makefile
+++ b/Makefile
@@ -16,17 +16,34 @@ DIST = dist
JS_INDEX = lib/index.js
SCRIPTS = ./support
JS_SRC := $(shell find lib/ -type f -name '*.js') lib/index.js
-INDEX_SRC := $(filter-out $(JS_SRC),$(JS_INDEX)) $(SCRIPTS)/index-template.js $(SCRIPTS)/aliases.json ${SCRIPTS}/generate-index.js
+INDEX_SRC := $(filter-out $(JS_INDEX),$(JS_SRC)) $(SCRIPTS)/index-template.js $(SCRIPTS)/aliases.txt ${SCRIPTS}/generate-index.js
LINT_FILES := lib/ test/ $(shell find perf/ -maxdepth 2 -type f) $(shell find support/ -maxdepth 2 -type f -name "*.js") karma.conf.js
UMD_BUNDLE := $(BUILDDIR)/dist/async.js
UMD_BUNDLE_MIN := $(BUILDDIR)/dist/async.min.js
UMD_BUNDLE_MAP := $(BUILDDIR)/dist/async.min.map
-ALIAS_ES := $(shell $(SCRIPTS)/list-aliases.js build-es/)
+ALIAS_ES := $(addprefix build-es/, $(addsuffix .js, $(shell cat $(SCRIPTS)/aliases.txt | cut -d ' ' -f1)))
ALIAS_CJS := $(patsubst build-es/%, build/%, $(ALIAS_ES))
ES_MODULES := $(patsubst lib/%.js, build-es/%.js, $(JS_SRC)) $(ALIAS_ES)
CJS_MODULES := $(patsubst lib/%.js, build/%.js, $(JS_SRC)) $(ALIAS_CJS)
+define ALIAS_SRC =
+$(shell cat $(SCRIPTS)/aliases.txt | grep "$(basename $(notdir $(1))) " | cut -d" " -f2 )
+endef
+
+define COMPILE_ALIAS =
+$(A): lib/$(call ALIAS_SRC,$(A)).js
+ mkdir -p "$$(@D)"
+ node $$(SCRIPTS)/build/compile-module.js --file $$< --output $$@
+endef
+$(foreach A,$(ALIAS_CJS),$(eval $(COMPILE_ALIAS)))
+
+define COPY_ES_ALIAS =
+$(A): lib/$(call ALIAS_SRC,$(A)).js
+ mkdir -p "$$(@D)"
+ cp $$< $$@
+endef
+$(foreach A,$(ALIAS_ES),$(eval $(COPY_ES_ALIAS)))
all: clean lint build test
@@ -57,13 +74,6 @@ $(BUILDDIR)/%.js: lib/%.js
node $(SCRIPTS)/build/compile-module.js --file $< --output $@
-define COMPILE_ALIAS
-$A: $(shell node $(SCRIPTS)/get-alias.js $A)
- mkdir -p "$$(@D)"
- node $(SCRIPTS)/build/compile-module.js --file $$< --output $$@
-endef
-$(foreach A,$(ALIAS_CJS),$(eval $(COMPILE_ALIAS)))
-
$(UMD_BUNDLE): $(ES_MODULES) package.json
mkdir -p "$(@D)"
node $(SCRIPTS)/build/aggregate-bundle.js
@@ -96,13 +106,6 @@ $(BUILD_ES)/%.js: lib/%.js
mkdir -p "$(@D)"
cat $< > $@
-define COPY_ES_ALIAS
-$A: $(shell node $(SCRIPTS)/get-alias.js $A)
- mkdir -p "$$(@D)"
- cat $$< > $$@
-endef
-$(foreach A,$(ALIAS_ES),$(eval $(COPY_ES_ALIAS)))
-
test-build: $(UMD_BUNDLE) $(UMD_BUNDLE_MIN)
mocha support/build.test.js
diff --git a/support/aliases.json b/support/aliases.json
deleted file mode 100644
index a7ed776..0000000
--- a/support/aliases.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "all": "every",
- "allLimit": "everyLimit",
- "allSeries": "everySeries",
- "any": "some",
- "anyLimit": "someLimit",
- "anySeries": "someSeries",
- "find": "detect",
- "findLimit": "detectLimit",
- "findSeries": "detectSeries",
- "forEach": "each",
- "forEachSeries": "eachSeries",
- "forEachLimit": "eachLimit",
- "forEachOf": "eachOf",
- "forEachOfSeries": "eachOfSeries",
- "forEachOfLimit": "eachOfLimit",
- "inject": "reduce",
- "foldl": "reduce",
- "foldr": "reduceRight",
- "select": "filter",
- "selectLimit": "filterLimit",
- "selectSeries": "filterSeries",
- "wrapSync": "asyncify"
-}
diff --git a/support/aliases.txt b/support/aliases.txt
new file mode 100644
index 0000000..174798a
--- /dev/null
+++ b/support/aliases.txt
@@ -0,0 +1,22 @@
+all every
+allLimit everyLimit
+allSeries everySeries
+any some
+anyLimit someLimit
+anySeries someSeries
+find detect
+findLimit detectLimit
+findSeries detectSeries
+forEach each
+forEachSeries eachSeries
+forEachLimit eachLimit
+forEachOf eachOf
+forEachOfSeries eachOfSeries
+forEachOfLimit eachOfLimit
+inject reduce
+foldl reduce
+foldr reduceRight
+select filter
+selectLimit filterLimit
+selectSeries filterSeries
+wrapSync asyncify
diff --git a/support/generate-index.js b/support/generate-index.js
index 4154d03..8e60f12 100644
--- a/support/generate-index.js
+++ b/support/generate-index.js
@@ -13,7 +13,7 @@ generateIndex(err => {
function generateIndex(cb) {
autoInject({
entries: cb => readEntries(cb),
- aliases: cb => cb(null, require('./aliases')),
+ aliases: cb => loadAliases(cb),
template: cb => fs.readFile(path.join(__dirname, './index-template.js'), 'utf8', cb),
generated: (entries, aliases, template, cb) => {
cb(null, renderTemplate(entries, aliases, template))
@@ -24,6 +24,18 @@ function generateIndex(cb) {
})
}
+function loadAliases (cb) {
+ const aliases = {}
+ fs.readFileSync(path.join(__dirname, 'aliases.txt'), 'utf8')
+ .split('\n')
+ .filter(Boolean)
+ .forEach(line => {
+ const [alias, src] = line.split(' ')
+ aliases[alias] = src
+ })
+ cb(null, aliases)
+}
+
function readEntries (cb) {
const libDir = path.join(__dirname, '../lib')
fs.readdir(libDir, (err, files) => {
diff --git a/support/get-alias.js b/support/get-alias.js
deleted file mode 100755
index 0323fc0..0000000
--- a/support/get-alias.js
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env node
-const path = require('path')
-const aliases = require('./aliases.json')
-
-const toAlias = process.argv[2]
-const baseName = path.basename(toAlias, '.js')
-
-const alias = aliases[baseName] || baseName
-
-process.stdout.write(toAlias
- .replace(/^[^/]+\//, 'lib/')
- .replace(baseName, alias))
diff --git a/support/list-aliases.js b/support/list-aliases.js
deleted file mode 100755
index d1eeed5..0000000
--- a/support/list-aliases.js
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env node
-const path = require('path')
-const yargs = require('yargs')
-const aliases = require('./aliases')
-
-const argv = yargs
- .option('sources', {
- type: 'boolean',
- default: false
- })
- .argv
-
-const prefix = argv._[0] || 'build-es/'
-
-const targets = Object.keys(aliases).map(argv.sources ? expandSource : expandAlias)
-process.stdout.write(targets.join(' '))
-
-
-function expandAlias (alias) {
- return path.join(prefix, `${alias}.js`)
-}
-
-function expandSource (alias) {
- return path.join(prefix, `${aliases[alias]}.js`)
-}