UNPKG

1.38 kBTypeScriptView Raw
1import Container from './container.js'
2import Node, { NodeProps } from './node.js'
3
4interface CommentRaws extends Record<string, unknown> {
5 /**
6 * The space symbols before the node.
7 */
8 before?: string
9
10 /**
11 * The space symbols between `/*` and the comment’s text.
12 */
13 left?: string
14
15 /**
16 * The space symbols between the comment’s text.
17 */
18 right?: string
19}
20
21export interface CommentProps extends NodeProps {
22 /** Content of the comment. */
23 text: string
24 /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
25 raws?: CommentRaws
26}
27
28/**
29 * Represents a comment between declarations or statements (rule and at-rules).
30 *
31 * ```js
32 * Once (root, { Comment }) {
33 * let note = new Comment({ text: 'Note: …' })
34 * root.append(note)
35 * }
36 * ```
37 *
38 * Comments inside selectors, at-rule parameters, or declaration values
39 * will be stored in the `raws` properties explained above.
40 */
41export default class Comment extends Node {
42 type: 'comment'
43 parent: Container | undefined
44 raws: CommentRaws
45
46 /**
47 * The comment's text.
48 */
49 text: string
50
51 constructor(defaults?: CommentProps)
52 assign(overrides: object | CommentProps): this
53 clone(overrides?: Partial<CommentProps>): this
54 cloneBefore(overrides?: Partial<CommentProps>): this
55 cloneAfter(overrides?: Partial<CommentProps>): this
56}