You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
874 B

4 years ago
  1. import { RawSourceMap, VueTemplateCompiler, VueTemplateCompilerParseOptions } from './types';
  2. export interface ParseOptions {
  3. source: string;
  4. filename?: string;
  5. compiler: VueTemplateCompiler;
  6. compilerParseOptions?: VueTemplateCompilerParseOptions;
  7. sourceRoot?: string;
  8. needMap?: boolean;
  9. }
  10. export interface SFCCustomBlock {
  11. type: string;
  12. content: string;
  13. attrs: {
  14. [key: string]: string | true;
  15. };
  16. start: number;
  17. end: number;
  18. map?: RawSourceMap;
  19. }
  20. export interface SFCBlock extends SFCCustomBlock {
  21. lang?: string;
  22. src?: string;
  23. scoped?: boolean;
  24. module?: string | boolean;
  25. }
  26. export interface SFCDescriptor {
  27. template: SFCBlock | null;
  28. script: SFCBlock | null;
  29. styles: SFCBlock[];
  30. customBlocks: SFCCustomBlock[];
  31. }
  32. export declare function parse(options: ParseOptions): SFCDescriptor;