config.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import type { Page } from "playwright";
  2. export type Config = {
  3. /**
  4. * URL to start the crawl
  5. * @example "https://www.builder.io/c/docs/developers"
  6. * @default ""
  7. */
  8. url: string;
  9. /**
  10. * Pattern to match against for links on a page to subsequently crawl
  11. * @example "https://www.builder.io/c/docs/**"
  12. * @default ""
  13. */
  14. match: string | string[];
  15. /**
  16. * Selector to grab the inner text from
  17. * @example ".docs-builder-container"
  18. * @default ""
  19. */
  20. selector?: string;
  21. /**
  22. * Don't crawl more than this many pages
  23. * @default 50
  24. */
  25. maxPagesToCrawl: number;
  26. /**
  27. * File name for the finished data
  28. * @default "output.json"
  29. */
  30. outputFileName: string;
  31. /** Optional cookie to be set. E.g. for Cookie Consent */
  32. cookie?: { name: string; value: string };
  33. /** Optional function to run for each page found */
  34. onVisitPage?: (options: {
  35. page: Page;
  36. pushData: (data: any) => Promise<void>;
  37. }) => Promise<void>;
  38. /** Optional timeout for waiting for a selector to appear */
  39. waitForSelectorTimeout?: number;
  40. /** Optional resources to exclude
  41. *
  42. * @example
  43. * ['png','jpg','jpeg','gif','svg','css','js','ico','woff','woff2','ttf','eot','otf','mp4','mp3','webm','ogg','wav','flac','aac','zip','tar','gz','rar','7z','exe','dmg','apk','csv','xls','xlsx','doc','docx','pdf','epub','iso','dmg','bin','ppt','pptx','odt','avi','mkv','xml','json','yml','yaml','rss','atom','swf','txt','dart','webp','bmp','tif','psd','ai','indd','eps','ps','zipx','srt','wasm','m4v','m4a','webp','weba','m4b','opus','ogv','ogm','oga','spx','ogx','flv','3gp','3g2','jxr','wdp','jng','hief','avif','apng','avifs','heif','heic','cur','ico','ani','jp2','jpm','jpx','mj2','wmv','wma','aac','tif','tiff','mpg','mpeg','mov','avi','wmv','flv','swf','mkv','m4v','m4p','m4b','m4r','m4a','mp3','wav','wma','ogg','oga','webm','3gp','3g2','flac','spx','amr','mid','midi','mka','dts','ac3','eac3','weba','m3u','m3u8','ts','wpl','pls','vob','ifo','bup','svcd','drc','dsm','dsv','dsa','dss','vivo','ivf','dvd','fli','flc','flic','flic','mng','asf','m2v','asx','ram','ra','rm','rpm','roq','smi','smil','wmf','wmz','wmd','wvx','wmx','movie','wri','ins','isp','acsm','djvu','fb2','xps','oxps','ps','eps','ai','prn','svg','dwg','dxf','ttf','fnt','fon','otf','cab']
  44. */
  45. resourceExclusions?: string[];
  46. };