source: node_modules/magic-string/dist/magic-string.es.d.mts@ 7deb3e2

Last change on this file since 7deb3e2 was 57e58a3, checked in by ste08 <sjovanoska@…>, 4 months ago

Initial commit

  • Property mode set to 100644
File size: 9.8 KB
Line 
1export interface BundleOptions {
2 intro?: string;
3 separator?: string;
4}
5
6export interface SourceMapOptions {
7 /**
8 * Whether the mapping should be high-resolution.
9 * Hi-res mappings map every single character, meaning (for example) your devtools will always
10 * be able to pinpoint the exact location of function calls and so on.
11 * With lo-res mappings, devtools may only be able to identify the correct
12 * line - but they're quicker to generate and less bulky.
13 * You can also set `"boundary"` to generate a semi-hi-res mappings segmented per word boundary
14 * instead of per character, suitable for string semantics that are separated by words.
15 * If sourcemap locations have been specified with s.addSourceMapLocation(), they will be used here.
16 */
17 hires?: boolean | 'boundary';
18 /**
19 * The filename where you plan to write the sourcemap.
20 */
21 file?: string;
22 /**
23 * The filename of the file containing the original source.
24 */
25 source?: string;
26 /**
27 * Whether to include the original content in the map's sourcesContent array.
28 */
29 includeContent?: boolean;
30}
31
32export type SourceMapSegment =
33 | [number]
34 | [number, number, number, number]
35 | [number, number, number, number, number];
36
37export interface DecodedSourceMap {
38 file: string;
39 sources: string[];
40 sourcesContent?: string[];
41 names: string[];
42 mappings: SourceMapSegment[][];
43 x_google_ignoreList?: number[];
44}
45
46export class SourceMap {
47 constructor(properties: DecodedSourceMap);
48
49 version: number;
50 file: string;
51 sources: string[];
52 sourcesContent?: string[];
53 names: string[];
54 mappings: string;
55 x_google_ignoreList?: number[];
56 debugId?: string;
57
58 /**
59 * Returns the equivalent of `JSON.stringify(map)`
60 */
61 toString(): string;
62 /**
63 * Returns a DataURI containing the sourcemap. Useful for doing this sort of thing:
64 * `generateMap(options?: SourceMapOptions): SourceMap;`
65 */
66 toUrl(): string;
67}
68
69export class Bundle {
70 constructor(options?: BundleOptions);
71 /**
72 * Adds the specified source to the bundle, which can either be a `MagicString` object directly,
73 * or an options object that holds a magic string `content` property and optionally provides
74 * a `filename` for the source within the bundle, as well as an optional `ignoreList` hint
75 * (which defaults to `false`). The `filename` is used when constructing the source map for the
76 * bundle, to identify this `source` in the source map's `sources` field. The `ignoreList` hint
77 * is used to populate the `x_google_ignoreList` extension field in the source map, which is a
78 * mechanism for tools to signal to debuggers that certain sources should be ignored by default
79 * (depending on user preferences).
80 */
81 addSource(
82 source: MagicString | { filename?: string; content: MagicString; ignoreList?: boolean },
83 ): this;
84 append(str: string, options?: BundleOptions): this;
85 clone(): this;
86 generateMap(
87 options?: SourceMapOptions,
88 ): Omit<SourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> };
89 generateDecodedMap(
90 options?: SourceMapOptions,
91 ): Omit<DecodedSourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> };
92 getIndentString(): string;
93 indent(indentStr?: string): this;
94 indentExclusionRanges: ExclusionRange | Array<ExclusionRange>;
95 prepend(str: string): this;
96 toString(): string;
97 trimLines(): this;
98 trim(charType?: string): this;
99 trimStart(charType?: string): this;
100 trimEnd(charType?: string): this;
101 isEmpty(): boolean;
102 length(): number;
103}
104
105export type ExclusionRange = [number, number];
106
107export interface MagicStringOptions {
108 filename?: string;
109 indentExclusionRanges?: ExclusionRange | Array<ExclusionRange>;
110 offset?: number;
111}
112
113export interface IndentOptions {
114 exclude?: ExclusionRange | Array<ExclusionRange>;
115 indentStart?: boolean;
116}
117
118export interface OverwriteOptions {
119 storeName?: boolean;
120 contentOnly?: boolean;
121}
122
123export interface UpdateOptions {
124 storeName?: boolean;
125 overwrite?: boolean;
126}
127
128export default class MagicString {
129 constructor(str: string, options?: MagicStringOptions);
130 /**
131 * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false.
132 */
133 addSourcemapLocation(char: number): void;
134 /**
135 * Appends the specified content to the end of the string.
136 */
137 append(content: string): this;
138 /**
139 * Appends the specified content at the index in the original string.
140 * If a range *ending* with index is subsequently moved, the insert will be moved with it.
141 * See also `s.prependLeft(...)`.
142 */
143 appendLeft(index: number, content: string): this;
144 /**
145 * Appends the specified content at the index in the original string.
146 * If a range *starting* with index is subsequently moved, the insert will be moved with it.
147 * See also `s.prependRight(...)`.
148 */
149 appendRight(index: number, content: string): this;
150 /**
151 * Does what you'd expect.
152 */
153 clone(): this;
154 /**
155 * Generates a version 3 sourcemap.
156 */
157 generateMap(options?: SourceMapOptions): SourceMap;
158 /**
159 * Generates a sourcemap object with raw mappings in array form, rather than encoded as a string.
160 * Useful if you need to manipulate the sourcemap further, but most of the time you will use `generateMap` instead.
161 */
162 generateDecodedMap(options?: SourceMapOptions): DecodedSourceMap;
163 getIndentString(): string;
164
165 /**
166 * Prefixes each line of the string with prefix.
167 * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character.
168 */
169 indent(options?: IndentOptions): this;
170 /**
171 * Prefixes each line of the string with prefix.
172 * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character.
173 *
174 * The options argument can have an exclude property, which is an array of [start, end] character ranges.
175 * These ranges will be excluded from the indentation - useful for (e.g.) multiline strings.
176 */
177 indent(indentStr?: string, options?: IndentOptions): this;
178 indentExclusionRanges: ExclusionRange | Array<ExclusionRange>;
179
180 /**
181 * Moves the characters from `start` and `end` to `index`.
182 */
183 move(start: number, end: number, index: number): this;
184 /**
185 * Replaces the characters from `start` to `end` with `content`, along with the appended/prepended content in
186 * that range. The same restrictions as `s.remove()` apply.
187 *
188 * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored
189 * for later inclusion in a sourcemap's names array — and a contentOnly property which determines whether only
190 * the content is overwritten, or anything that was appended/prepended to the range as well.
191 *
192 * It may be preferred to use `s.update(...)` instead if you wish to avoid overwriting the appended/prepended content.
193 */
194 overwrite(
195 start: number,
196 end: number,
197 content: string,
198 options?: boolean | OverwriteOptions,
199 ): this;
200 /**
201 * Replaces the characters from `start` to `end` with `content`. The same restrictions as `s.remove()` apply.
202 *
203 * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored
204 * for later inclusion in a sourcemap's names array — and an overwrite property which determines whether only
205 * the content is overwritten, or anything that was appended/prepended to the range as well.
206 */
207 update(start: number, end: number, content: string, options?: boolean | UpdateOptions): this;
208 /**
209 * Prepends the string with the specified content.
210 */
211 prepend(content: string): this;
212 /**
213 * Same as `s.appendLeft(...)`, except that the inserted content will go *before* any previous appends or prepends at index
214 */
215 prependLeft(index: number, content: string): this;
216 /**
217 * Same as `s.appendRight(...)`, except that the inserted content will go *before* any previous appends or prepends at `index`
218 */
219 prependRight(index: number, content: string): this;
220 /**
221 * Removes the characters from `start` to `end` (of the original string, **not** the generated string).
222 * Removing the same content twice, or making removals that partially overlap, will cause an error.
223 */
224 remove(start: number, end: number): this;
225 /**
226 * Reset the modified characters from `start` to `end` (of the original string, **not** the generated string).
227 */
228 reset(start: number, end: number): this;
229 /**
230 * Returns the content of the generated string that corresponds to the slice between `start` and `end` of the original string.
231 * Throws error if the indices are for characters that were already removed.
232 */
233 slice(start: number, end: number): string;
234 /**
235 * Returns a clone of `s`, with all content before the `start` and `end` characters of the original string removed.
236 */
237 snip(start: number, end: number): this;
238 /**
239 * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start and end.
240 */
241 trim(charType?: string): this;
242 /**
243 * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start.
244 */
245 trimStart(charType?: string): this;
246 /**
247 * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the end.
248 */
249 trimEnd(charType?: string): this;
250 /**
251 * Removes empty lines from the start and end.
252 */
253 trimLines(): this;
254 /**
255 * String replacement with RegExp or string.
256 */
257 replace(
258 regex: RegExp | string,
259 replacement: string | ((substring: string, ...args: any[]) => string),
260 ): this;
261 /**
262 * Same as `s.replace`, but replace all matched strings instead of just one.
263 */
264 replaceAll(
265 regex: RegExp | string,
266 replacement: string | ((substring: string, ...args: any[]) => string),
267 ): this;
268
269 lastChar(): string;
270 lastLine(): string;
271 /**
272 * Returns true if the resulting source is empty (disregarding white space).
273 */
274 isEmpty(): boolean;
275 length(): number;
276
277 /**
278 * Indicates if the string has been changed.
279 */
280 hasChanged(): boolean;
281
282 original: string;
283 /**
284 * Returns the generated string.
285 */
286 toString(): string;
287
288 offset: number;
289}
Note: See TracBrowser for help on using the repository browser.