workflow-data.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { fileSaver, openFilePicker } from './helper';
  2. import Workflow from '@/models/workflow';
  3. export function importWorkflow() {
  4. openFilePicker(['application/json'])
  5. .then((file) => {
  6. const reader = new FileReader();
  7. reader.onload = ({ target }) => {
  8. const workflow = JSON.parse(target.result);
  9. Workflow.insert({ data: { ...workflow, createdAt: Date.now() } });
  10. };
  11. reader.readAsText(file);
  12. })
  13. .catch((error) => {
  14. console.error(error);
  15. });
  16. }
  17. export function exportWorkflow(workflow) {
  18. const keys = [
  19. 'name',
  20. 'icon',
  21. 'version',
  22. 'drawflow',
  23. 'settings',
  24. 'globalData',
  25. 'description',
  26. 'dataColumns',
  27. ];
  28. const content = {
  29. extVersion: chrome.runtime.getManifest().version,
  30. };
  31. keys.forEach((key) => {
  32. content[key] = workflow[key];
  33. });
  34. const blob = new Blob([JSON.stringify(content)], {
  35. type: 'application/json',
  36. });
  37. const url = URL.createObjectURL(blob);
  38. fileSaver(`${workflow.name}.json`, url);
  39. }
  40. export default {
  41. export: exportWorkflow,
  42. import: importWorkflow,
  43. };