123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- /**
- * Created by Tivie on 12-11-2014.
- */
- module.exports = function (grunt) {
- if (grunt.option('q') || grunt.option('quiet')) {
- require('quiet-grunt');
- }
- // Project configuration.
- var config = {
- pkg: grunt.file.readJSON('package.json'),
- concat: {
- options: {
- sourceMap: true,
- banner: ';/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */\n(function(){\n',
- footer: '}).call(this);\n'
- },
- dist: {
- src: [
- 'src/options.js',
- 'src/showdown.js',
- 'src/helpers.js',
- 'src/subParsers/makehtml/*.js',
- 'src/subParsers/makemarkdown/*.js',
- 'src/converter.js',
- 'src/loader.js'
- ],
- dest: 'dist/<%= pkg.name %>.js'
- },
- test: {
- src: '<%= concat.dist.src %>',
- dest: '.build/<%= pkg.name %>.js',
- options: {
- sourceMap: false
- }
- }
- },
- clean: ['.build/'],
- uglify: {
- options: {
- sourceMap: true,
- banner: '/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */'
- },
- dist: {
- files: {
- 'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
- }
- }
- },
- endline: {
- dist: {
- files: {
- 'dist/<%= pkg.name %>.js': 'dist/<%= pkg.name %>.js',
- 'dist/<%= pkg.name %>.min.js': 'dist/<%= pkg.name %>.min.js'
- }
- }
- },
- jshint: {
- options: {
- jshintrc: '.jshintrc',
- reporterOutput: ''
- },
- files: [
- 'Gruntfile.js',
- 'src/**/*.js',
- 'test/**/*.js'
- ]
- },
- eslint: {
- options: {
- config: '.eslintrc.json'
- },
- target: [
- 'Gruntfile.js',
- 'src/**/*.js',
- 'test/**/*.js'
- ]
- },
- conventionalChangelog: {
- options: {
- changelogOpts: {
- preset: 'angular'
- }
- },
- release: {
- src: 'CHANGELOG.md'
- }
- },
- conventionalGithubReleaser: {
- release: {
- options: {
- auth: {
- type: 'oauth',
- token: process.env.GH_TOEKN
- },
- changelogOpts: {
- preset: 'angular'
- }
- }
- }
- },
- simplemocha: {
- functional: {
- src: 'test/functional/**/*.js',
- options: {
- globals: ['should'],
- timeout: 3000,
- ignoreLeaks: true,
- reporter: 'spec'
- }
- },
- unit: {
- src: 'test/unit/**/*.js',
- options: {
- globals: ['should'],
- timeout: 3000,
- ignoreLeaks: true,
- reporter: 'spec'
- }
- },
- single: {
- src: 'test/node/**/*.js',
- options: {
- globals: ['should'],
- timeout: 3000,
- ignoreLeaks: false,
- reporter: 'spec'
- }
- }
- }
- };
- grunt.initConfig(config);
- /**
- * Load common tasks for legacy and normal tests
- */
- grunt.loadNpmTasks('grunt-contrib-clean');
- grunt.loadNpmTasks('grunt-contrib-concat');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-simple-mocha');
- grunt.loadNpmTasks('grunt-endline');
- grunt.loadNpmTasks('grunt-contrib-jshint');
- /**
- * Generate Changelog
- */
- grunt.registerTask('generate-changelog', function () {
- 'use strict';
- grunt.loadNpmTasks('grunt-conventional-changelog');
- grunt.loadNpmTasks('grunt-conventional-github-releaser');
- grunt.task.run('conventionalChangelog');
- });
- /**
- * Lint tasks
- */
- grunt.registerTask('lint', function () {
- 'use strict';
- grunt.loadNpmTasks('grunt-eslint');
- grunt.task.run('jshint', 'eslint');
- });
- /**
- * Performance task
- */
- grunt.registerTask('performancejs', function () {
- 'use strict';
- var perf = require('./test/performance/performance.js');
- perf.runTests();
- perf.generateLogs();
- });
- /**
- * Run a single test
- */
- grunt.registerTask('single-test', function (grep) {
- 'use strict';
- grunt.config.merge({
- simplemocha: {
- single: {
- options: {
- grep: grep
- }
- }
- }
- });
- grunt.task.run(['lint', 'concat:test', 'simplemocha:single', 'clean']);
- });
- /**
- * Tasks
- */
- grunt.registerTask('test', ['clean', 'lint', 'concat:test', 'simplemocha:unit', 'simplemocha:functional', 'clean']);
- grunt.registerTask('test-functional', ['concat:test', 'simplemocha:functional', 'clean']);
- grunt.registerTask('test-unit', ['concat:test', 'simplemocha:unit', 'clean']);
- grunt.registerTask('performance', ['concat:test', 'performancejs', 'clean']);
- grunt.registerTask('build', ['test', 'concat:dist', 'uglify', 'endline']);
- grunt.registerTask('build-without-test', ['concat:dist', 'uglify', 'endline']);
- grunt.registerTask('prep-release', ['build', 'generate-changelog']);
- // Default task(s).
- grunt.registerTask('default', ['test']);
- };
|