mock.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* global require, module, window */
  2. var Handler = require('./mock/handler')
  3. var Util = require('./mock/util')
  4. var Random = require('./mock/random')
  5. var RE = require('./mock/regexp')
  6. var toJSONSchema = require('./mock/schema')
  7. var valid = require('./mock/valid')
  8. var XHR
  9. if (typeof window !== 'undefined') XHR = require('./mock/xhr')
  10. /*!
  11. Mock - 模拟请求 & 模拟数据
  12. https://github.com/nuysoft/Mock
  13. 墨智 mozhi.gyy@taobao.com nuysoft@gmail.com
  14. */
  15. var Mock = {
  16. Handler: Handler,
  17. Random: Random,
  18. Util: Util,
  19. XHR: XHR,
  20. RE: RE,
  21. toJSONSchema: toJSONSchema,
  22. valid: valid,
  23. heredoc: Util.heredoc,
  24. setup: function(settings) {
  25. return XHR.setup(settings)
  26. },
  27. _mocked: {}
  28. }
  29. Mock.version = '1.0.1-beta3'
  30. // 避免循环依赖
  31. if (XHR) XHR.Mock = Mock
  32. /*
  33. * Mock.mock( template )
  34. * Mock.mock( function() )
  35. * Mock.mock( rurl, template )
  36. * Mock.mock( rurl, function(options) )
  37. * Mock.mock( rurl, rtype, template )
  38. * Mock.mock( rurl, rtype, function(options) )
  39. 根据数据模板生成模拟数据。
  40. */
  41. Mock.mock = function(rurl, rtype, template) {
  42. // Mock.mock(template)
  43. if (arguments.length === 1) {
  44. return Handler.gen(rurl)
  45. }
  46. // Mock.mock(rurl, template)
  47. if (arguments.length === 2) {
  48. template = rtype
  49. rtype = undefined
  50. }
  51. // 拦截 XHR
  52. if (XHR) window.XMLHttpRequest = XHR
  53. Mock._mocked[rurl + (rtype || '')] = {
  54. rurl: rurl,
  55. rtype: rtype,
  56. template: template
  57. }
  58. return Mock
  59. }
  60. module.exports = Mock