11/*
2- *angular -data-mocks
3- * http://github.com/jmdobry/angular -data-mocks
2+ *js -data-angular -mocks
3+ * http://github.com/js-data/js -data-angular -mocks
44 *
5- * Copyright (c) 2014 Jason Dobry <http://jmdobry .github.io/angular -data-mocks>
6- * Licensed under the MIT license. <https://github.com/jmdobry/angular -data-mocks/blob/master/LICENSE>
5+ * Copyright (c) 2014 Jason Dobry <http://js-data .github.io/js -data-angular -mocks>
6+ * Licensed under the MIT license. <https://github.com/js-data/js -data-angular -mocks/blob/master/LICENSE>
77 */
88module . exports = function ( grunt ) {
99'use strict' ;
1010
1111require ( 'jit-grunt' ) ( grunt ) ;
1212require ( 'time-grunt' ) ( grunt ) ;
1313
14+ var webpack = require ( 'webpack' ) ;
1415var pkg = grunt . file . readJSON ( 'package.json' ) ;
16+ var banner = 'js-data-angular-mocks\n' +
17+ '@version ' + pkg . version + ' - Homepage <https://github.com/js-data/js-data-angular-mocks>\n' +
18+ '@author Jason Dobry <jason.dobry@gmail.com>\n' +
19+ '@copyright (c) 2014-2015 Jason Dobry \n' +
20+ '@license MIT <https://github.com/js-data/js-data-angular-mocks/blob/master/LICENSE>\n' +
21+ '\n' +
22+ '@overview A mock of js-data & js-data-angular for testing purposes.' ;
1523
1624// Project configuration.
1725grunt . initConfig ( {
@@ -20,30 +28,25 @@ module.exports = function (grunt) {
2028coverage :[ 'coverage/' ] ,
2129dist :[ 'dist/' ]
2230} ,
23- jshint :{
24- all :[ 'Gruntfile.js' , 'src/**/*.js' ] ,
25- test :[ 'test/**/*.js' ] ,
26- jshintrc :'.jshintrc'
27- } ,
2831watch :{
2932files :[ 'src/**/*.js' ] ,
3033tasks :[ 'build' ]
3134} ,
3235uglify :{
3336dist :{
3437options :{
35- banner :'/** \n' +
36- '*@author Jason Dobry <jason.dobry@gmail.com> \n' +
37- '* @file angular- data- mocks.min.js \n' +
38- '* @version <%= pkg.version %> - Homepage <https://github. com/jmdobry/angular-data-mocks >\n' +
39- '* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry />\n' +
40- '* @license MIT <https://github.com/jmdobry/angular -data-mocks/blob/master/LICENSE>\n' +
41- '*\n' +
42- '* @overview A mock ofangular -data for testing purposes.\n' +
43- '*/\n'
38+ banner :'/*! \n' +
39+ '*js-data-angular-mocks \n' +
40+ '* @version <%= pkg.version %> - Homepage <https://github.com/js- data/js-data-angular- mocks> \n' +
41+ '* @author Jason Dobry <jason.dobry@gmail. com>\n' +
42+ '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/js-data />\n' +
43+ '* @license MIT <https://github.com/js-data/js -data-angular -mocks/blob/master/LICENSE>\n' +
44+ '*\n' +
45+ '* @overview A mock ofjs -data & js-data-angular for testing purposes.\n' +
46+ '*/\n'
4447} ,
4548files :{
46- 'dist/angular -data-mocks.min.js' :[ 'dist/angular -data-mocks.js' ]
49+ 'dist/js -data-angular- mocks.min.js' :[ 'dist/js -data-angular -mocks.js' ]
4750}
4851}
4952} ,
@@ -64,9 +67,12 @@ module.exports = function (grunt) {
6467files :[
6568'bower_components/angular/angular.js' ,
6669'bower_components/angular-mocks/angular-mocks.js' ,
67- 'dist/angular-data.min.js' ,
68- 'test/integration/**/*.js' ,
69- 'karma.start.js'
70+ 'bower_components/js-data/dist/js-data.js' ,
71+ 'bower_components/js-data-angular/dist/js-data-angular.js' ,
72+ 'dist/js-data-angular-mocks.min.js' ,
73+ 'karma.start.js' ,
74+ 'test/testApp.js' ,
75+ 'test/test.js'
7076]
7177}
7278} ,
@@ -82,29 +88,62 @@ module.exports = function (grunt) {
8288
8389copy :{
8490dist :{
85- src :'dist/angular -data-mocks.js' ,
86- dest :'dist/angular -data-mocks.js' ,
91+ src :'dist/js -data-angular -mocks.js' ,
92+ dest :'dist/js -data-angular -mocks.js' ,
8793options :{
8894process :function ( content ) {
8995return content . replace ( / < % = p k g \. v e r s i o n % > / gi, pkg . version ) ;
9096}
9197}
9298}
9399} ,
94- browserify :{
100+ webpack :{
95101dist :{
96- files :{
97- 'dist/angular-data-mocks.js' :[ 'src/index.js' ]
98- }
102+ entry :'./src/index.js' ,
103+ output :{
104+ filename :'./dist/js-data-angular-mocks.js' ,
105+ libraryTarget :'umd' ,
106+ library :'jsDataAngularMocksModuleName'
107+ } ,
108+ externals :{
109+ 'js-data' :{
110+ amd :'js-data' ,
111+ commonjs :'js-data' ,
112+ commonjs2 :'js-data' ,
113+ root :'JSData'
114+ } ,
115+ 'js-data-angular' :{
116+ amd :'js-data-angular' ,
117+ commonjs :'js-data-angular' ,
118+ commonjs2 :'js-data-angular' ,
119+ root :'jsDataAngularModuleName'
120+ } ,
121+ 'sinon' :'sinon' ,
122+ 'angular' :'angular'
123+ } ,
124+ module :{
125+ loaders :[
126+ { test :/ ( s r c ) ( .+ ) \. j s $ / , exclude :/ n o d e _ m o d u l e s / , loader :'babel-loader?blacklist=useStrict' }
127+ ] ,
128+ preLoaders :[
129+ {
130+ test :/ ( s r c ) ( .+ ) \. j s $ | ( t e s t ) ( .+ ) \. j s $ / , // include .js files
131+ exclude :/ n o d e _ m o d u l e s / , // exclude any and all files in the node_modules folder
132+ loader :"jshint-loader?failOnHint=true"
133+ }
134+ ]
135+ } ,
136+ plugins :[
137+ new webpack . BannerPlugin ( banner )
138+ ]
99139}
100140}
101141} ) ;
102142
103- grunt . registerTask ( 'test' , [ 'clean:coverage ' , 'karma:dev ' ] ) ;
143+ grunt . registerTask ( 'test' , [ 'build' , 'karma:ci ', 'karma:min ' ] ) ;
104144grunt . registerTask ( 'build' , [
105145'clean' ,
106- 'jshint' ,
107- 'browserify' ,
146+ 'webpack' ,
108147'copy' ,
109148'uglify:dist'
110149] ) ;