Gruntfile.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*jslint node: true */
  2. "use strict";
  3. const c8 = "npx c8 -x Gruntfile.js -x 'test/**'";
  4. module.exports = function (grunt)
  5. {
  6. grunt.initConfig(
  7. {
  8. jshint: {
  9. all: [ 'Gruntfile.js', 'index.js', 'lib/*.js', 'aedes/**/*.js', 'test/*.js', 'bench/**/*.js' ],
  10. options: {
  11. esversion: 9,
  12. node: true
  13. }
  14. },
  15. apidox: {
  16. input: 'lib/qlobber.js',
  17. output: 'README.md',
  18. fullSourceDescription: true,
  19. extraHeadingLevels: 1
  20. },
  21. exec: Object.fromEntries(Object.entries({
  22. test: {
  23. cmd: 'node --expose-gc ./node_modules/.bin/mocha test/*.js'
  24. },
  25. cover: {
  26. cmd: `${c8} npx grunt test`
  27. },
  28. cover_report: {
  29. cmd: `${c8} report -r lcov`
  30. },
  31. cover_check: {
  32. cmd: `${c8} check-coverage --statements 100 --branches 100 --functions 100 --lines 100`
  33. },
  34. bench: {
  35. cmd: 'npx bench -c 20000 -i bench/options/default.js,bench/options/dedup.js,bench/options/mapval.js,bench/options/default-native.js,bench/options/dedup-native.js,bench/options/default-cache-splits.js -k options bench/add bench/add_match_remove bench/match bench/match_search bench/test'
  36. },
  37. 'bench-check': {
  38. cmd: 'npx bench -c 20000 -i bench/options/check-default.js,bench/options/check-dedup.js,bench/options/check-mapval.js,bench/options/check-default-native.js,bench/options/check-dedup-native.js -k options bench/add bench/add_match_remove bench/match bench/match_search bench/test'
  39. },
  40. 'bench-many': {
  41. cmd: 'npx bench -c 1 -i bench/options/default.js,bench/options/dedup.js,bench/options/mapval.js,bench/options/default-native.js,bench/options/dedup-native.js,bench/options/default-cache-splits.js -k options bench/add_many bench/add_shortcut_many bench/match_many bench/match_search_many bench/test_many'
  42. }
  43. }).map(([k, v]) => [k, { stdio: 'inherit', ...v }]))
  44. });
  45. grunt.loadNpmTasks('grunt-contrib-jshint');
  46. grunt.loadNpmTasks('grunt-apidox');
  47. grunt.loadNpmTasks('grunt-exec');
  48. grunt.registerTask('lint', 'jshint');
  49. grunt.registerTask('test', 'exec:test');
  50. grunt.registerTask('docs', 'apidox');
  51. grunt.registerTask('coverage', ['exec:cover',
  52. 'exec:cover_report',
  53. 'exec:cover_check']);
  54. grunt.registerTask('bench', ['exec:bench',
  55. 'exec:bench-many']);
  56. grunt.registerTask('bench-check', 'exec:bench-check');
  57. grunt.registerTask('default', ['lint', 'test']);
  58. };