types.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import type { Size } from 'electron/main';
  2. import type { NativeImage } from 'electron/common';
  3. export type ObjectMember = {
  4. name: string,
  5. value?: any,
  6. enumerable?: boolean,
  7. writable?: boolean,
  8. type?: 'method' | 'get'
  9. }
  10. export type ObjProtoDescriptor = {
  11. members: ObjectMember[],
  12. proto: ObjProtoDescriptor
  13. } | null
  14. export type MetaType = {
  15. type: 'object' | 'function',
  16. name: string,
  17. members: ObjectMember[],
  18. proto: ObjProtoDescriptor,
  19. id: number,
  20. } | {
  21. type: 'value',
  22. value: any,
  23. } | {
  24. type: 'buffer',
  25. value: Uint8Array,
  26. } | {
  27. type: 'array',
  28. members: MetaType[]
  29. } | {
  30. type: 'error',
  31. value: Error,
  32. members: ObjectMember[]
  33. } | {
  34. type: 'exception',
  35. value: MetaType,
  36. } | {
  37. type: 'promise',
  38. then: MetaType
  39. } | {
  40. type: 'nativeimage'
  41. value: NativeImage
  42. }
  43. export type MetaTypeFromRenderer = {
  44. type: 'value',
  45. value: any
  46. } | {
  47. type: 'remote-object',
  48. id: number
  49. } | {
  50. type: 'array',
  51. value: MetaTypeFromRenderer[]
  52. } | {
  53. type: 'buffer',
  54. value: Uint8Array
  55. } | {
  56. type: 'promise',
  57. then: MetaTypeFromRenderer
  58. } | {
  59. type: 'object',
  60. name: string,
  61. members: {
  62. name: string,
  63. value: MetaTypeFromRenderer
  64. }[]
  65. } | {
  66. type: 'function-with-return-value',
  67. value: MetaTypeFromRenderer
  68. } | {
  69. type: 'function',
  70. id: number,
  71. location: string,
  72. length: number
  73. } | {
  74. type: 'nativeimage',
  75. value: {
  76. size: Size,
  77. buffer: Buffer,
  78. scaleFactor: number,
  79. dataURL: string
  80. }[]
  81. }