forked from adopted-ember-addons/active-model-adapter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ember-cli-build.js
74 lines (63 loc) · 2.11 KB
/
ember-cli-build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*jshint node:true*/
/* global require, module */
var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
var merge = require('broccoli-merge-trees');
var babel = require('broccoli-babel-transpiler');
var stew = require('broccoli-stew');
var replace = require('broccoli-replace');
var concat = require('broccoli-concat');
var rename = stew.rename;
var funnel = require('broccoli-funnel');
var babelOptions = require('./babel-options');
var fs = require('fs');
var es3 = require('broccoli-es3-safe-recast');
var license = fs.readFileSync('./lib/license.js').toString();
module.exports = function(defaults) {
var app = new EmberAddon(defaults, {
// Add options here
});
/*
This build file specifes the options for the dummy test app of this
addon, located in `/tests/dummy`
This build file does *not* influence how the addon or the app using it
behave. You most likely want to be modifying `./index.js` or app's build file
*/
var addon = funnel('addon');
var addonTree = merge(['addon', 'app']);
var lib = babel('lib', babelOptions);
var bower = funnel('bower_components/loader.js', {include: ['loader.js']});
var compiled = babel(addonTree, babelOptions);
var moved = stew.mv(compiled, 'amd');
var combined = merge([moved, bower, lib]);
var concatted = concat(combined, {
inputFiles: [
'loader.js',
'ember.js',
'ember-data.js',
'amd/**/*.js',
'globals.js'
],
header: license + '\n(function() {\n',
footer: '\n' +
'require("globals");\n' +
'})();\n',
outputFile: '/active-model-adapter.js'
});
var bower = stew.mv('config', '/');
var bower = stew.find(bower, 'bower.json');
concatted = merge([concatted, bower]);
concatted = replace(concatted, {
files: ['**/*.{js,json}'],
patterns: [
{
match: /VERSION_STRING_PLACEHOLDER/g,
replacement: require('./package').version
},
{
match: /active\-model\-adapter\//g,
replacement: ''
}
]
});
return merge([app.toTree(), es3(concatted)]);
};