main.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. const Uppy = require('../../src/core')
  2. const Dashboard = require('../../src/plugins/Dashboard')
  3. const Instagram = require('../../src/plugins/Instagram')
  4. const GoogleDrive = require('../../src/plugins/GoogleDrive')
  5. const Webcam = require('../../src/plugins/Webcam')
  6. const Tus = require('../../src/plugins/Tus')
  7. const Form = require('../../src/plugins/Form')
  8. // const Dropbox = require('../../src/plugins/Dropbox')
  9. // const XHRUpload = require('../../src/plugins/XHRUpload')
  10. // const FileInput = require('../../src/plugins/FileInput')
  11. // const MetaData = require('../../src/plugins/MetaData')
  12. // const Informer = require('../../src/plugins/Informer')
  13. // const StatusBar = require('../../src/plugins/StatusBar')
  14. // const DragDrop = require('../../src/plugins/DragDrop')
  15. // const GoldenRetriever = require('../../src/plugins/GoldenRetriever')
  16. const TUS_ENDPOINT = 'https://master.tus.io/files/'
  17. const uppy = Uppy({
  18. debug: true,
  19. autoProceed: false,
  20. meta: {
  21. username: 'John',
  22. license: 'Creative Commons'
  23. }
  24. // restrictions: {
  25. // maxFileSize: 300000,
  26. // maxNumberOfFiles: 10,
  27. // minNumberOfFiles: 2,
  28. // allowedFileTypes: ['image/*', 'video/*']
  29. // }
  30. // onBeforeFileAdded: (currentFile, files) => {
  31. // if (currentFile.name === 'pitercss-IMG_0616.jpg') {
  32. // return Promise.resolve()
  33. // }
  34. // return Promise.reject('this is not the file I was looking for')
  35. // },
  36. // onBeforeUpload: (files) => {
  37. // if (Object.keys(files).length < 2) {
  38. // return Promise.reject('too few files')
  39. // }
  40. // return Promise.resolve()
  41. // }
  42. })
  43. .use(Dashboard, {
  44. trigger: '#pick-files',
  45. metaFields: [
  46. { id: 'license', name: 'License', placeholder: 'specify license' },
  47. { id: 'caption', name: 'Caption', placeholder: 'add caption' }
  48. ]
  49. // target: '.uppy-target',
  50. // inline: true,
  51. // maxWidth: 500,
  52. // maxHeight: 350,
  53. // replaceTargetContent: true,
  54. // closeModalOnClickOutside: false,
  55. // note: 'Images and video only, 300kb or less',
  56. // locale: {
  57. // strings: { browse: 'browse' }
  58. // }
  59. })
  60. .use(GoogleDrive, { target: Dashboard, host: 'http://localhost:3020' })
  61. .use(Instagram, { target: Dashboard, host: 'http://localhost:3020' })
  62. .use(Webcam, { target: Dashboard })
  63. .use(Tus, { endpoint: TUS_ENDPOINT })
  64. .use(Form, { target: '#upload-form' })
  65. // .use(GoldenRetriever, {serviceWorker: true})
  66. .run()
  67. uppy.on('complete', (result) => {
  68. if (result.failed.length === 0) {
  69. console.log('Upload successful 😀')
  70. } else {
  71. console.warn('Upload failed 😞')
  72. }
  73. console.log('successful files:', result.successful)
  74. console.log('failed files:', result.failed)
  75. })
  76. if ('serviceWorker' in navigator) {
  77. navigator.serviceWorker
  78. .register('/sw.js')
  79. .then((registration) => {
  80. console.log('ServiceWorker registration successful with scope: ', registration.scope)
  81. })
  82. .catch((error) => {
  83. console.log('Registration failed with ' + error)
  84. })
  85. }
  86. // var modalTrigger = document.querySelector('#uppyModalOpener')
  87. // if (modalTrigger) modalTrigger.click()