growi-uri-injector.ts 734 B

12345678910111213141516171819202122232425262728
  1. export type GrowiUriWithOriginalData = {
  2. growiUri: string,
  3. originalData: string,
  4. }
  5. export type TypedBlock = {
  6. type: string,
  7. }
  8. /**
  9. * Type guard for GrowiUriWithOriginalData
  10. * @param data
  11. * @returns
  12. */
  13. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  14. export const isGrowiUriWithOriginalData = (data: any): data is GrowiUriWithOriginalData => {
  15. return data.growiUri != null && data.originalData != null;
  16. };
  17. export interface GrowiUriInjector<ISDATA, IDATA, ESDATA, EDATA> {
  18. shouldHandleToInject(data: ISDATA & any): data is IDATA;
  19. inject(data: IDATA, growiUri:string): void;
  20. shouldHandleToExtract(data: ESDATA & any): data is EDATA;
  21. extract(data: EDATA): GrowiUriWithOriginalData;
  22. }