UNPKG

occasion-sdk

Version:

An SDK library that enables access to Occasion's application, providing a rich DSL for creating and managing bookings.

221 lines (212 loc) 6.51 kB
module.exports = function(grunt) { // configure the tasks grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), clean: { dist: { src: [ 'dist' ] }, build: { src: [ 'build/**/*.js', '!build/module.js', '!build/occasion-sdk.js', '!build/occasion-sdk.min.js' ] }, specs: { src: 'spec/spec.js' } }, babel: { options: { plugins: [ 'transform-class-properties', 'transform-object-rest-spread' ], presets: ['es2015'] }, build: { files: { 'build/occasion-sdk.js': 'build/occasion-sdk.js' } }, specs: { files: { 'spec/spec.js': 'spec/spec.js' } } }, umd: { build: { options: { src: 'build/occasion-sdk.js', objectToExport: 'Occasion', deps: { 'default': [ { 'active-resource': 'ActiveResource' }, 'axios', { 'decimal.js-light': 'Decimal' }, 'moment', { 'underscore': '_' }, { 'underscore.string': 's' }, { 'moment-timezone-with-data-2010-2020': null } ] } } }, specs: { options: { src: 'spec/spec.js', objectToExport: 'OccasionSDKSpecs', deps: { 'default': [ 'moxios', { 'active-resource': 'ActiveResource' }, { 'occasion-sdk': 'Occasion' }, { 'underscore': '_' }, { 'jquery': '$' }, { 'decimal.js-light': 'Decimal' }, 'moment', 'qs', { 'jasmine-jquery': null }, { 'jasmine-promises': null }, { 'moment-timezone-with-data-2010-2020': null }, ] } } } }, uglify: { build: { options: { mangle: false }, files: { 'build/occasion-sdk.min.js': 'build/occasion-sdk.js' } } }, concat: { raw: { options: { banner: '/*\n' + '\tOccasion Javascript SDK <%= pkg.version %>\n' + '\t(c) <%= grunt.template.today("yyyy") %> Peak Labs, LLC DBA Occasion App\n' + '\tOccasion Javascript SDK may be freely distributed under the MIT license\n' + '*/\n\n' }, src: 'build/occasion-sdk.js', dest: 'dist/occasion-sdk.js' }, min: { options: { banner: '/*\n' + '\tOccasion Javascript SDK <%= pkg.version %>\n' + '\t(c) <%= grunt.template.today("yyyy") %> Peak Labs, LLC DBA Occasion App\n' + '\tOccasion Javascript SDK may be freely distributed under the MIT license\n' + '*/\n\n' }, src: 'build/occasion-sdk.min.js', dest: 'dist/occasion-sdk.min.js' }, build: { src: [ 'src/init/client.js', 'src/init/modules.js', 'src/construct_calendar.js', 'src/*.js', 'src/**/*.js', ], dest: 'build/occasion-sdk.js' }, specs: { src: ['spec/support/*.js', 'spec/**/*.js'], dest: 'spec/spec.js' } }, watch: { source: { files: 'src/**/*.coffee', tasks: [ 'build' ] } }, connect: { test: { options: { port: 8000 } } }, jasmine: { build: { options: { keepRunner: true, specs: 'spec/spec.js', host: 'http://127.0.0.1:8000', vendor: [ '/node_modules/jquery/dist/jquery.min.js' ], template: require('grunt-template-jasmine-requirejs'), templateOptions: { requireConfig: { baseUrl: '/', paths: { "active-resource": '/node_modules/active-resource/build/active-resource', "axios": '/node_modules/axios/dist/axios', "decimal.js-light": '/node_modules/decimal.js-light/decimal.min', "qs": '/node_modules/qs/dist/qs', "es6-promise": '/node_modules/es6-promise/dist/es6-promise', "underscore": '/node_modules/underscore/underscore-min', "underscore.string": '/node_modules/underscore.string/dist/underscore.string.min', "underscore.inflection": '/node_modules/underscore.inflection/lib/underscore.inflection', "occasion-sdk": '/build/occasion-sdk', "moment": '/node_modules/moment/min/moment.min', "moment-timezone-with-data-2010-2020": '/node_modules/moment-timezone-with-data-2010-2020/index', "moxios": '/node_modules/moxios/dist/moxios.min', "jquery": '/node_modules/jquery/dist/jquery.min', "jasmine-jquery": '/node_modules/jasmine-jquery/lib/jasmine-jquery', "jasmine-promises": '/node_modules/jasmine-promises/dist/jasmine-promises' } } } } } } }); // load the tasks grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-umd'); grunt.loadNpmTasks('grunt-babel'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-jasmine'); // define the tasks grunt.registerTask( 'compile', 'Compiles the source files into 1) a raw UMD module file and 2) a minified UMD module file.', [ 'concat:build', 'babel:build', 'umd:build', 'uglify', 'clean:build' ] ); grunt.registerTask( 'spec', 'Compiles and runs the Javascript spec files to test source code.', [ 'clean:specs', 'concat:specs', 'babel:specs', 'umd:specs', 'connect:test', 'jasmine:build' ] ) grunt.registerTask( 'build', 'Creates a temporary build of the library in the build folder, then runs the specs on it.', [ 'clean:build', 'compile', 'spec' ] ); grunt.registerTask( 'release', 'Creates a new release of the library in the dist folder.', [ 'clean:dist', 'compile', 'concat' ] ); grunt.registerTask( 'default', 'Watches the project for changes, automatically builds them and runs specs.', [ 'build', 'watch' ] ); };