tauri.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. /* eslint-disable */
  2. /**
  3. * * THIS FILE IS GENERATED AUTOMATICALLY.
  4. * DO NOT EDIT.
  5. *
  6. * Please whitelist these API functions in tauri.conf.json
  7. *
  8. **/
  9. /**
  10. * @module tauri
  11. * @description This API interface makes powerful interactions available
  12. * to be run on client side applications. They are opt-in features, and
  13. * must be enabled in tauri.conf.json
  14. *
  15. * Each binding MUST provide these interfaces in order to be compliant,
  16. * and also whitelist them based upon the developer's settings.
  17. */
  18. function s4() {
  19. return Math.floor((1 + Math.random()) * 0x10000)
  20. .toString(16)
  21. .substring(1)
  22. }
  23. var uid = function () {
  24. return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
  25. s4() + '-' + s4() + s4() + s4()
  26. }
  27. function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
  28. function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
  29. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  30. function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  31. var __reject = function () {
  32. return new Promise(function (_, reject) {
  33. reject();
  34. });
  35. }
  36. window.tauri = {
  37. invoke: function invoke(args) {
  38. window.external.invoke(JSON.stringify(args));
  39. },
  40. listen: function listen(event, handler) {
  41. return __reject()
  42. },
  43. emit: function emit(evt, payload) {
  44. return __reject()
  45. },
  46. transformCallback: function transformCallback(callback) {
  47. var once = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  48. var identifier = Object.freeze(uid());
  49. window[identifier] = function (result) {
  50. if (once) {
  51. delete window[identifier];
  52. }
  53. return callback && callback(result);
  54. };
  55. return identifier;
  56. },
  57. promisified: function promisified(args) {
  58. var _this = this;
  59. return new Promise(function (resolve, reject) {
  60. _this.invoke(_objectSpread({
  61. callback: _this.transformCallback(resolve),
  62. error: _this.transformCallback(reject)
  63. }, args));
  64. });
  65. },
  66. readTextFile: function readTextFile(path) {
  67. return __reject()
  68. },
  69. readBinaryFile: function readBinaryFile(path) {
  70. return __reject()
  71. },
  72. writeFile: function writeFile(cfg) {
  73. return __reject()
  74. },
  75. listFiles: function listFiles(path) {
  76. return __reject()
  77. },
  78. listDirs: function listDirs(path) {
  79. return __reject()
  80. },
  81. setTitle: function setTitle(title) {
  82. return __reject()
  83. },
  84. open: function open(uri) {
  85. return __reject()
  86. },
  87. execute: function execute(command, args) {
  88. return __reject()
  89. },
  90. bridge: function bridge(command, payload) {
  91. return __reject()
  92. },
  93. loadAsset: function loadAsset(assetName, assetType) {
  94. return this.promisified({
  95. cmd: 'loadAsset',
  96. asset: assetName,
  97. asset_type: assetType || 'unknown'
  98. })
  99. }
  100. };
  101. // init tauri API
  102. try {
  103. window.tauri.invoke({
  104. cmd: 'init'
  105. })
  106. } catch (e) {
  107. window.addEventListener('DOMContentLoaded', function () {
  108. window.tauri.invoke({
  109. cmd: 'init'
  110. })
  111. }, true)
  112. }
  113. document.addEventListener('error', function (e) {
  114. var target = e.target
  115. while (target != null) {
  116. if (target.matches ? target.matches('img') : target.msMatchesSelector('img')) {
  117. window.tauri.loadAsset(target.src, 'image')
  118. .then(img => {
  119. target.src = img
  120. })
  121. break
  122. }
  123. target = target.parentElement
  124. }
  125. }, true)
  126. window.addEventListener('DOMContentLoaded', function () {
  127. // open <a href="..."> links with the Tauri API
  128. document.querySelector('body').addEventListener('click', function (e) {
  129. var target = e.target
  130. while (target != null) {
  131. if (target.matches ? target.matches('a') : target.msMatchesSelector('a')) {
  132. window.tauri.open(target.href)
  133. break
  134. }
  135. target = target.parentElement
  136. }
  137. }, true)
  138. }, true)