dojox.profile.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. var profile = (function(){
  2. var testResourceRe = /\/tests\//,
  3. nodeModulesRe = /\/node_modules\//,
  4. copyOnly = function(filename, mid){
  5. var list = {
  6. "dojox/dojox.profile":1,
  7. "dojox/package.json":1,
  8. "dojox/mobile/themes/utils/compile":1,
  9. "dojox/mobile/themes/utils/cleanup":1,
  10. "dojox/app/tests/layoutApp/build.profile": 1,
  11. "dojox/app/tests/globalizedApp/build.profile": 1
  12. };
  13. return (mid in list) || /^dojox\/resources\//.test(mid) ||
  14. /(png|jpg|jpeg|gif|tiff)$/.test(filename) ||
  15. /dojox\/app\/build\//.test(mid) ||
  16. nodeModulesRe.test(mid);
  17. },
  18. excludes = [
  19. "secure",
  20. "data/(demos|ItemExplorer|StoreExplorer|restListener)",
  21. "drawing/plugins/drawing/Silverlight",
  22. "embed/(IE)",
  23. "flash/_base",
  24. "help",
  25. "image/(Gallery|SlideShow|ThumbnailPicker)",
  26. "jq",
  27. "lang/(aspect|async|docs|observable|oo|typed|functional/(binrec|linrec|listcomp|multirec|numrec|tailrec|util))",
  28. "layout/(BorderContainer|dnd|ext-dijit)",
  29. "mobile/app/",
  30. "rails",
  31. "robot",
  32. "sql/",
  33. "storage/(_common|AirDBStorageProvider|AirEncryptedLocalStorageProvider|AirFileStorageProvider|BehaviorStorageProvider|CookieStorageProvider|FlashStorageProvider|GearsStorageProvider|WhatWGStorageProvider)",
  34. "widget/(AnalogGauge|BarGauge|DataPresentation|DocTester|DynamicTooltip|FeedPortlet|FilePicker|gauge|Iterator|Loader|RollingList|SortList)",
  35. "wire/",
  36. "xmpp"
  37. ],
  38. excludesRe = new RegExp(("^dojox/(" + excludes.join("|") + ")").replace(/\//, "\\/")),
  39. usesDojoProvideEtAl = function(mid){
  40. return excludesRe.test(mid);
  41. };
  42. return {
  43. resourceTags:{
  44. test: function(filename, mid){
  45. return testResourceRe.test(mid);
  46. },
  47. copyOnly: function(filename, mid){
  48. return copyOnly(filename, mid);
  49. },
  50. amd: function(filename, mid){
  51. return !testResourceRe.test(mid) && !copyOnly(filename, mid) && !usesDojoProvideEtAl(mid) && /\.js$/.test(filename);
  52. },
  53. miniExclude: function(filename, mid){
  54. return /\/demos\//.test(mid) || nodeModulesRe.test(mid);
  55. }
  56. }
  57. };
  58. })();