1 | var debug = require('debug')('compiled')
|
2 | var la = require('lazy-ass')
|
3 | var is = require('check-more-types')
|
4 | var join = require('path').join
|
5 | var exists = require('fs').existsSync
|
6 |
|
7 | function noConfig (pkg) {
|
8 | return !pkg.config
|
9 | }
|
10 |
|
11 | function noCompiled (config) {
|
12 | return !config.compiled
|
13 | }
|
14 |
|
15 | var isValidConfig = is.object
|
16 |
|
17 | function getConfig () {
|
18 | var filename = join(process.cwd(), 'package.json')
|
19 | debug('loading compiled config from', filename)
|
20 | if (!exists(filename)) {
|
21 | throw new Error('Cannot find file ' + filename)
|
22 | }
|
23 | var pkg = require(filename)
|
24 | if (noConfig(pkg)) {
|
25 | debug(pkg)
|
26 | throw new Error('Cannot find config object in package ' + filename)
|
27 | }
|
28 | if (noCompiled(pkg.config)) {
|
29 | debug(pkg.config)
|
30 | throw new Error('Cannot find settings for compiled in config in package ' + filename)
|
31 | }
|
32 | la(isValidConfig(pkg.config.compiled), 'invalid compiled config in', filename)
|
33 | return pkg.config.compiled
|
34 | }
|
35 |
|
36 | function getBuildConfig () {
|
37 | var config = getConfig()
|
38 | var isConfig = is.schema({
|
39 | dir: is.unemptyString,
|
40 | files: is.array
|
41 | })
|
42 | la(isConfig(config), 'invalid compiled config', config)
|
43 | return config
|
44 | }
|
45 |
|
46 | module.exports = getBuildConfig
|