@tinacms/app 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/appFiles/node_modules/.package-lock.json +16 -16
- package/appFiles/node_modules/@babel/generator/lib/buffer.js +1 -16
- package/appFiles/node_modules/@babel/generator/lib/buffer.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/base.js +0 -2
- package/appFiles/node_modules/@babel/generator/lib/generators/base.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/classes.js +0 -6
- package/appFiles/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js +1 -6
- package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/flow.js +0 -2
- package/appFiles/node_modules/@babel/generator/lib/generators/flow.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/methods.js +4 -11
- package/appFiles/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/modules.js +0 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/modules.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/statements.js +0 -3
- package/appFiles/node_modules/@babel/generator/lib/generators/statements.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/types.js +1 -5
- package/appFiles/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js +2 -4
- package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/index.js +0 -6
- package/appFiles/node_modules/@babel/generator/lib/index.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/node/index.js +0 -1
- package/appFiles/node_modules/@babel/generator/lib/node/index.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/node/parentheses.js +3 -14
- package/appFiles/node_modules/@babel/generator/lib/node/parentheses.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/node/whitespace.js +1 -15
- package/appFiles/node_modules/@babel/generator/lib/node/whitespace.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/printer.js +5 -45
- package/appFiles/node_modules/@babel/generator/lib/printer.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/source-map.js +0 -4
- package/appFiles/node_modules/@babel/generator/lib/source-map.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/package.json +2 -2
- package/appFiles/node_modules/@babel/parser/lib/index.js +189 -707
- package/appFiles/node_modules/@babel/parser/lib/index.js.map +1 -1
- package/appFiles/node_modules/@babel/parser/package.json +1 -1
- package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2203.js +170 -167
- package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2203R.js +188 -0
- package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +170 -167
- package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +187 -0
- package/appFiles/node_modules/@babel/runtime/package.json +10 -1
- package/appFiles/node_modules/@babel/traverse/lib/context.js +2 -14
- package/appFiles/node_modules/@babel/traverse/lib/context.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/index.js +1 -4
- package/appFiles/node_modules/@babel/traverse/lib/index.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/ancestry.js +0 -19
- package/appFiles/node_modules/@babel/traverse/lib/path/ancestry.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/comments.js +0 -2
- package/appFiles/node_modules/@babel/traverse/lib/path/comments.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/context.js +5 -21
- package/appFiles/node_modules/@babel/traverse/lib/path/context.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/conversion.js +6 -30
- package/appFiles/node_modules/@babel/traverse/lib/path/conversion.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/evaluation.js +14 -20
- package/appFiles/node_modules/@babel/traverse/lib/path/evaluation.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/family.js +3 -9
- package/appFiles/node_modules/@babel/traverse/lib/path/family.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/index.js +1 -6
- package/appFiles/node_modules/@babel/traverse/lib/path/index.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/index.js +1 -9
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/index.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js +1 -13
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/inferers.js +2 -5
- package/appFiles/node_modules/@babel/traverse/lib/path/inference/inferers.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/introspection.js +16 -62
- package/appFiles/node_modules/@babel/traverse/lib/path/introspection.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/hoister.js +1 -22
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/hoister.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js +1 -7
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js +0 -2
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/virtual-types.js +0 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/modification.js +7 -24
- package/appFiles/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/removal.js +0 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/removal.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/path/replacement.js +2 -16
- package/appFiles/node_modules/@babel/traverse/lib/path/replacement.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/scope/binding.js +1 -6
- package/appFiles/node_modules/@babel/traverse/lib/scope/binding.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/scope/index.js +9 -53
- package/appFiles/node_modules/@babel/traverse/lib/scope/index.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/scope/lib/renamer.js +4 -8
- package/appFiles/node_modules/@babel/traverse/lib/scope/lib/renamer.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/lib/visitors.js +2 -23
- package/appFiles/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
- package/appFiles/node_modules/@babel/traverse/package.json +2 -2
- package/appFiles/node_modules/css-to-react-native/README.md +4 -2
- package/appFiles/node_modules/css-to-react-native/index.js +13 -6
- package/appFiles/node_modules/css-to-react-native/package.json +2 -1
- package/appFiles/node_modules/css-to-react-native/src/__tests__/fontVariant.js +8 -0
- package/appFiles/node_modules/css-to-react-native/src/transforms/fontVariant.js +14 -0
- package/appFiles/node_modules/css-to-react-native/src/transforms/index.js +5 -7
- package/appFiles/src/fields/rich-text/monaco/index.tsx +12 -10
- package/appFiles/src/fields/rich-text/monaco/mdx.js +41 -35
- package/appFiles/src/lib/machines/document-machine.ts +1 -1
- package/dist/index.js +8 -2
- package/package.json +5 -4
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"node_modules/@babel/generator": {
|
|
17
|
-
"version": "7.20.
|
|
18
|
-
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.
|
|
19
|
-
"integrity": "sha512-
|
|
17
|
+
"version": "7.20.14",
|
|
18
|
+
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz",
|
|
19
|
+
"integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/types": "^7.20.7",
|
|
22
22
|
"@jridgewell/gen-mapping": "^0.3.2",
|
|
@@ -120,9 +120,9 @@
|
|
|
120
120
|
}
|
|
121
121
|
},
|
|
122
122
|
"node_modules/@babel/parser": {
|
|
123
|
-
"version": "7.20.
|
|
124
|
-
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.
|
|
125
|
-
"integrity": "sha512-
|
|
123
|
+
"version": "7.20.15",
|
|
124
|
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz",
|
|
125
|
+
"integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==",
|
|
126
126
|
"bin": {
|
|
127
127
|
"parser": "bin/babel-parser.js"
|
|
128
128
|
},
|
|
@@ -131,9 +131,9 @@
|
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
"node_modules/@babel/runtime": {
|
|
134
|
-
"version": "7.20.
|
|
135
|
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.
|
|
136
|
-
"integrity": "sha512-
|
|
134
|
+
"version": "7.20.13",
|
|
135
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
|
|
136
|
+
"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
|
|
137
137
|
"dependencies": {
|
|
138
138
|
"regenerator-runtime": "^0.13.11"
|
|
139
139
|
},
|
|
@@ -155,9 +155,9 @@
|
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
157
|
"node_modules/@babel/traverse": {
|
|
158
|
-
"version": "7.20.
|
|
159
|
-
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.
|
|
160
|
-
"integrity": "sha512
|
|
158
|
+
"version": "7.20.13",
|
|
159
|
+
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz",
|
|
160
|
+
"integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==",
|
|
161
161
|
"dependencies": {
|
|
162
162
|
"@babel/code-frame": "^7.18.6",
|
|
163
163
|
"@babel/generator": "^7.20.7",
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
"@babel/helper-function-name": "^7.19.0",
|
|
166
166
|
"@babel/helper-hoist-variables": "^7.18.6",
|
|
167
167
|
"@babel/helper-split-export-declaration": "^7.18.6",
|
|
168
|
-
"@babel/parser": "^7.20.
|
|
168
|
+
"@babel/parser": "^7.20.13",
|
|
169
169
|
"@babel/types": "^7.20.7",
|
|
170
170
|
"debug": "^4.1.0",
|
|
171
171
|
"globals": "^11.1.0"
|
|
@@ -394,9 +394,9 @@
|
|
|
394
394
|
}
|
|
395
395
|
},
|
|
396
396
|
"node_modules/css-to-react-native": {
|
|
397
|
-
"version": "3.
|
|
398
|
-
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.
|
|
399
|
-
"integrity": "sha512-
|
|
397
|
+
"version": "3.1.0",
|
|
398
|
+
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.1.0.tgz",
|
|
399
|
+
"integrity": "sha512-AryfkFA29b4I3vG7N4kxFboq15DxwSXzhXM37XNEjwJMgjYIc8BcqfiprpAqX0zadI5PMByEIwAMzXxk5Vcc4g==",
|
|
400
400
|
"dependencies": {
|
|
401
401
|
"camelize": "^1.0.0",
|
|
402
402
|
"css-color-keywords": "^1.0.0",
|
|
@@ -59,7 +59,6 @@ class Buffer {
|
|
|
59
59
|
}
|
|
60
60
|
return this._queue[--this._queueCursor];
|
|
61
61
|
}
|
|
62
|
-
|
|
63
62
|
get() {
|
|
64
63
|
this._flush();
|
|
65
64
|
const map = this._map;
|
|
@@ -91,7 +90,6 @@ class Buffer {
|
|
|
91
90
|
};
|
|
92
91
|
return result;
|
|
93
92
|
}
|
|
94
|
-
|
|
95
93
|
append(str, maybeNewline) {
|
|
96
94
|
this._flush();
|
|
97
95
|
this._append(str, this._sourcePosition, maybeNewline);
|
|
@@ -100,7 +98,6 @@ class Buffer {
|
|
|
100
98
|
this._flush();
|
|
101
99
|
this._appendChar(char, 1, this._sourcePosition);
|
|
102
100
|
}
|
|
103
|
-
|
|
104
101
|
queue(char) {
|
|
105
102
|
if (char === 10) {
|
|
106
103
|
while (this._queueCursor !== 0) {
|
|
@@ -114,7 +111,6 @@ class Buffer {
|
|
|
114
111
|
const sourcePosition = this._sourcePosition;
|
|
115
112
|
this._pushQueue(char, 1, sourcePosition.line, sourcePosition.column, sourcePosition.identifierName, sourcePosition.filename);
|
|
116
113
|
}
|
|
117
|
-
|
|
118
114
|
queueIndentation(char, repeat) {
|
|
119
115
|
this._pushQueue(char, repeat, undefined, undefined, undefined, undefined);
|
|
120
116
|
}
|
|
@@ -160,20 +156,16 @@ class Buffer {
|
|
|
160
156
|
filename
|
|
161
157
|
} = sourcePos;
|
|
162
158
|
let line = sourcePos.line;
|
|
163
|
-
|
|
164
159
|
let i = str.indexOf("\n");
|
|
165
160
|
let last = 0;
|
|
166
|
-
|
|
167
161
|
if (i !== 0) {
|
|
168
162
|
this._mark(line, column, identifierName, filename);
|
|
169
163
|
}
|
|
170
|
-
|
|
171
164
|
while (i !== -1) {
|
|
172
165
|
position.line++;
|
|
173
166
|
position.column = 0;
|
|
174
167
|
last = i + 1;
|
|
175
|
-
|
|
176
|
-
if (last < len) {
|
|
168
|
+
if (last < len && line !== undefined) {
|
|
177
169
|
this._mark(++line, 0, identifierName, filename);
|
|
178
170
|
}
|
|
179
171
|
i = str.indexOf("\n", last);
|
|
@@ -200,7 +192,6 @@ class Buffer {
|
|
|
200
192
|
const queueCursor = this._queueCursor;
|
|
201
193
|
return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;
|
|
202
194
|
}
|
|
203
|
-
|
|
204
195
|
getNewlineCount() {
|
|
205
196
|
const queueCursor = this._queueCursor;
|
|
206
197
|
let count = 0;
|
|
@@ -213,7 +204,6 @@ class Buffer {
|
|
|
213
204
|
}
|
|
214
205
|
return count === queueCursor && this._last === 10 ? count + 1 : count;
|
|
215
206
|
}
|
|
216
|
-
|
|
217
207
|
endsWithCharAndNewline() {
|
|
218
208
|
const queue = this._queue;
|
|
219
209
|
const queueCursor = this._queueCursor;
|
|
@@ -227,28 +217,23 @@ class Buffer {
|
|
|
227
217
|
}
|
|
228
218
|
}
|
|
229
219
|
}
|
|
230
|
-
|
|
231
220
|
hasContent() {
|
|
232
221
|
return this._queueCursor !== 0 || !!this._last;
|
|
233
222
|
}
|
|
234
|
-
|
|
235
223
|
exactSource(loc, cb) {
|
|
236
224
|
if (!this._map) return cb();
|
|
237
225
|
this.source("start", loc);
|
|
238
226
|
cb();
|
|
239
227
|
this.source("end", loc);
|
|
240
228
|
}
|
|
241
|
-
|
|
242
229
|
source(prop, loc) {
|
|
243
230
|
if (!this._map) return;
|
|
244
|
-
|
|
245
231
|
this._normalizePosition(prop, loc, 0, 0);
|
|
246
232
|
}
|
|
247
233
|
sourceWithOffset(prop, loc, lineOffset, columnOffset) {
|
|
248
234
|
if (!this._map) return;
|
|
249
235
|
this._normalizePosition(prop, loc, lineOffset, columnOffset);
|
|
250
236
|
}
|
|
251
|
-
|
|
252
237
|
withSource(prop, loc, cb) {
|
|
253
238
|
if (!this._map) return cb();
|
|
254
239
|
this.source(prop, loc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Buffer","constructor","map","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_position","line","column","_sourcePosition","identifierName","undefined","filename","_allocQueue","queue","i","push","char","repeat","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","lineOffset","columnOffset","withSource","pos","target","getCurrentColumn","lastIndex","getCurrentLine"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n identifierName?: string;\n filename?: string;\n};\ntype SourcePos = {\n identifierName: string | undefined;\n line: number | undefined;\n column: number | undefined;\n filename: string | undefined;\n};\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map?: SourceMap | null) {\n this._map = map;\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: SourcePos = {\n identifierName: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.identifierName = identifierName;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.identifierName,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcmap marker.\n */\n queueIndentation(char: number, repeat: number): void {\n this._pushQueue(char, repeat, undefined, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(char: number, repeat: number, sourcePos: SourcePos): void {\n this._last = char;\n\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n }\n\n _append(str: string, sourcePos: SourcePos, maybeNewline: boolean): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, filename } = sourcePos;\n let line = sourcePos.line;\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, filename);\n }\n\n // Now, find each reamining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n if (last < len) {\n this._mark(++line, 0, identifierName, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(this._position, line, column, identifierName, filename);\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n *\n * @param {*} ch\n * @memberof Buffer\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) return cb();\n\n this.source(\"start\", loc);\n\n cb();\n\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we re-use the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n lineOffset: number,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, lineOffset, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (!this._map) return cb();\n\n this.source(prop, loc);\n\n cb();\n }\n\n _normalizePosition(\n prop: \"start\" | \"end\",\n loc: Loc,\n lineOffset: number,\n columnOffset: number,\n ) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n target.identifierName =\n (prop === \"start\" && loc.identifierName) || undefined;\n if (pos) {\n target.line = pos.line + lineOffset;\n target.column = pos.column + columnOffset;\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Buffer","constructor","map","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_position","line","column","_sourcePosition","identifierName","undefined","filename","_allocQueue","queue","i","push","char","repeat","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","lineOffset","columnOffset","withSource","pos","target","getCurrentColumn","lastIndex","getCurrentLine"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n identifierName?: string;\n filename?: string;\n};\ntype SourcePos = {\n identifierName: string | undefined;\n line: number | undefined;\n column: number | undefined;\n filename: string | undefined;\n};\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map?: SourceMap | null) {\n this._map = map;\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: SourcePos = {\n identifierName: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.identifierName = identifierName;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.identifierName,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcmap marker.\n */\n queueIndentation(char: number, repeat: number): void {\n this._pushQueue(char, repeat, undefined, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(char: number, repeat: number, sourcePos: SourcePos): void {\n this._last = char;\n\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n }\n\n _append(str: string, sourcePos: SourcePos, maybeNewline: boolean): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, filename } = sourcePos;\n let line = sourcePos.line;\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, filename);\n }\n\n // Now, find each reamining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, identifierName, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(this._position, line, column, identifierName, filename);\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n *\n * @param {*} ch\n * @memberof Buffer\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) return cb();\n\n this.source(\"start\", loc);\n\n cb();\n\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we re-use the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n lineOffset: number,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, lineOffset, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (!this._map) return cb();\n\n this.source(prop, loc);\n\n cb();\n }\n\n _normalizePosition(\n prop: \"start\" | \"end\",\n loc: Loc,\n lineOffset: number,\n columnOffset: number,\n ) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n target.identifierName =\n (prop === \"start\" && loc.identifierName) || undefined;\n if (pos) {\n target.line = pos.line + lineOffset;\n target.column = pos.column + columnOffset;\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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"}
|
|
@@ -58,7 +58,6 @@ function Directive(node) {
|
|
|
58
58
|
this.print(node.value, node);
|
|
59
59
|
this.semicolon();
|
|
60
60
|
}
|
|
61
|
-
|
|
62
61
|
const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/;
|
|
63
62
|
const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/;
|
|
64
63
|
function DirectiveLiteral(node) {
|
|
@@ -70,7 +69,6 @@ function DirectiveLiteral(node) {
|
|
|
70
69
|
const {
|
|
71
70
|
value
|
|
72
71
|
} = node;
|
|
73
|
-
|
|
74
72
|
if (!unescapedDoubleQuoteRE.test(value)) {
|
|
75
73
|
this.token(`"${value}"`);
|
|
76
74
|
} else if (!unescapedSingleQuoteRE.test(value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["File","node","program","print","interpreter","Program","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","newline","body","printSequence","trailingCommentsLineOffset","trailingComments","BlockStatement","token","indent","sourceWithOffset","loc","rightBrace","Directive","value","semicolon","unescapedSingleQuoteRE","unescapedDoubleQuoteRE","DirectiveLiteral","raw","getPossibleRaw","format","minified","undefined","test","Error","InterpreterDirective","Placeholder","name","expectedNode"],"sources":["../../src/generators/base.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function File(this: Printer, node: t.File) {\n if (node.program) {\n // Print this here to ensure that Program node 'leadingComments' still\n // get printed after the hashbang.\n this.print(node.program.interpreter, node);\n }\n\n this.print(node.program, node);\n}\n\nexport function Program(this: Printer, node: t.Program) {\n // An empty Program doesn't have any inner tokens, so\n // we must explicitly print its inner comments.\n this.noIndentInnerCommentsHere();\n this.printInnerComments();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n indent: true,\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node, { indent: true });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value, node);\n this.semicolon();\n}\n\n// These regexes match an even number of \\ followed by a quote\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\n\nexport function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const { value } = node;\n\n // NOTE: In directives we can't change escapings,\n // because they change the behavior.\n // e.g. \"us\\x65 strict\" (\\x65 is e) is not a \"use strict\" directive.\n\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\n \"Malformed AST: it is not possible to print a directive containing\" +\n \" both unescaped single and double quotes.\",\n );\n }\n}\n\nexport function InterpreterDirective(\n this: Printer,\n node: t.InterpreterDirective,\n) {\n this.token(`#!${node.value}`);\n this.newline(1, true);\n}\n\nexport function Placeholder(this: Printer, node: t.Placeholder) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGO,SAASA,IAAI,CAAgBC,IAAY,EAAE;EAChD,IAAIA,IAAI,CAACC,OAAO,EAAE;IAGhB,IAAI,CAACC,KAAK,CAACF,IAAI,CAACC,OAAO,CAACE,WAAW,EAAEH,IAAI,CAAC;EAC5C;EAEA,IAAI,CAACE,KAAK,CAACF,IAAI,CAACC,OAAO,EAAED,IAAI,CAAC;AAChC;AAEO,SAASI,OAAO,CAAgBJ,IAAe,EAAE;EAAA;EAGtD,IAAI,CAACK,yBAAyB,EAAE;EAChC,IAAI,CAACC,kBAAkB,EAAE;EAEzB,MAAMC,aAAa,uBAAGP,IAAI,CAACQ,UAAU,qBAAf,iBAAiBC,MAAM;EAC7C,IAAIF,aAAa,EAAE;IAAA;IACjB,MAAMG,OAAO,GAAGV,IAAI,CAACW,IAAI,CAACF,MAAM,GAAG,CAAC,GAAG,CAAC;IACxC,IAAI,CAACG,aAAa,CAACZ,IAAI,CAACQ,UAAU,EAAER,IAAI,EAAE;MACxCa,0BAA0B,EAAEH;IAC9B,CAAC,CAAC;IACF,IAAI,2BAACV,IAAI,CAACQ,UAAU,CAACD,aAAa,GAAG,CAAC,CAAC,CAACO,gBAAgB,aAAnD,sBAAqDL,MAAM,GAAE;MAChE,IAAI,CAACC,OAAO,CAACA,OAAO,CAAC;IACvB;EACF;EAEA,IAAI,CAACE,aAAa,CAACZ,IAAI,CAACW,IAAI,EAAEX,IAAI,CAAC;AACrC;AAEO,SAASe,cAAc,CAAgBf,IAAsB,EAAE;EAAA;EACpE,IAAI,CAACgB,SAAK,KAAK;EAEf,MAAMT,aAAa,wBAAGP,IAAI,CAACQ,UAAU,qBAAf,kBAAiBC,MAAM;EAC7C,IAAIF,aAAa,EAAE;IAAA;IACjB,MAAMG,OAAO,GAAGV,IAAI,CAACW,IAAI,CAACF,MAAM,GAAG,CAAC,GAAG,CAAC;IACxC,IAAI,CAACG,aAAa,CAACZ,IAAI,CAACQ,UAAU,EAAER,IAAI,EAAE;MACxCiB,MAAM,EAAE,IAAI;MACZJ,0BAA0B,EAAEH;IAC9B,CAAC,CAAC;IACF,IAAI,4BAACV,IAAI,CAACQ,UAAU,CAACD,aAAa,GAAG,CAAC,CAAC,CAACO,gBAAgB,aAAnD,uBAAqDL,MAAM,GAAE;MAChE,IAAI,CAACC,OAAO,CAACA,OAAO,CAAC;IACvB;EACF;EAEA,IAAI,CAACE,aAAa,CAACZ,IAAI,CAACW,IAAI,EAAEX,IAAI,EAAE;IAAEiB,MAAM,EAAE;EAAK,CAAC,CAAC;EAErD,IAAI,CAACC,gBAAgB,CAAC,KAAK,EAAElB,IAAI,CAACmB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAE7C,IAAI,CAACC,UAAU,EAAE;AACnB;AAEO,SAASC,SAAS,CAAgBrB,IAAiB,EAAE;EAC1D,IAAI,CAACE,KAAK,CAACF,IAAI,CAACsB,KAAK,EAAEtB,IAAI,CAAC;EAC5B,IAAI,CAACuB,SAAS,EAAE;AAClB
|
|
1
|
+
{"version":3,"names":["File","node","program","print","interpreter","Program","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","newline","body","printSequence","trailingCommentsLineOffset","trailingComments","BlockStatement","token","indent","sourceWithOffset","loc","rightBrace","Directive","value","semicolon","unescapedSingleQuoteRE","unescapedDoubleQuoteRE","DirectiveLiteral","raw","getPossibleRaw","format","minified","undefined","test","Error","InterpreterDirective","Placeholder","name","expectedNode"],"sources":["../../src/generators/base.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function File(this: Printer, node: t.File) {\n if (node.program) {\n // Print this here to ensure that Program node 'leadingComments' still\n // get printed after the hashbang.\n this.print(node.program.interpreter, node);\n }\n\n this.print(node.program, node);\n}\n\nexport function Program(this: Printer, node: t.Program) {\n // An empty Program doesn't have any inner tokens, so\n // we must explicitly print its inner comments.\n this.noIndentInnerCommentsHere();\n this.printInnerComments();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n indent: true,\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node, { indent: true });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value, node);\n this.semicolon();\n}\n\n// These regexes match an even number of \\ followed by a quote\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\n\nexport function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const { value } = node;\n\n // NOTE: In directives we can't change escapings,\n // because they change the behavior.\n // e.g. \"us\\x65 strict\" (\\x65 is e) is not a \"use strict\" directive.\n\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\n \"Malformed AST: it is not possible to print a directive containing\" +\n \" both unescaped single and double quotes.\",\n );\n }\n}\n\nexport function InterpreterDirective(\n this: Printer,\n node: t.InterpreterDirective,\n) {\n this.token(`#!${node.value}`);\n this.newline(1, true);\n}\n\nexport function Placeholder(this: Printer, node: t.Placeholder) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGO,SAASA,IAAI,CAAgBC,IAAY,EAAE;EAChD,IAAIA,IAAI,CAACC,OAAO,EAAE;IAGhB,IAAI,CAACC,KAAK,CAACF,IAAI,CAACC,OAAO,CAACE,WAAW,EAAEH,IAAI,CAAC;EAC5C;EAEA,IAAI,CAACE,KAAK,CAACF,IAAI,CAACC,OAAO,EAAED,IAAI,CAAC;AAChC;AAEO,SAASI,OAAO,CAAgBJ,IAAe,EAAE;EAAA;EAGtD,IAAI,CAACK,yBAAyB,EAAE;EAChC,IAAI,CAACC,kBAAkB,EAAE;EAEzB,MAAMC,aAAa,uBAAGP,IAAI,CAACQ,UAAU,qBAAf,iBAAiBC,MAAM;EAC7C,IAAIF,aAAa,EAAE;IAAA;IACjB,MAAMG,OAAO,GAAGV,IAAI,CAACW,IAAI,CAACF,MAAM,GAAG,CAAC,GAAG,CAAC;IACxC,IAAI,CAACG,aAAa,CAACZ,IAAI,CAACQ,UAAU,EAAER,IAAI,EAAE;MACxCa,0BAA0B,EAAEH;IAC9B,CAAC,CAAC;IACF,IAAI,2BAACV,IAAI,CAACQ,UAAU,CAACD,aAAa,GAAG,CAAC,CAAC,CAACO,gBAAgB,aAAnD,sBAAqDL,MAAM,GAAE;MAChE,IAAI,CAACC,OAAO,CAACA,OAAO,CAAC;IACvB;EACF;EAEA,IAAI,CAACE,aAAa,CAACZ,IAAI,CAACW,IAAI,EAAEX,IAAI,CAAC;AACrC;AAEO,SAASe,cAAc,CAAgBf,IAAsB,EAAE;EAAA;EACpE,IAAI,CAACgB,SAAK,KAAK;EAEf,MAAMT,aAAa,wBAAGP,IAAI,CAACQ,UAAU,qBAAf,kBAAiBC,MAAM;EAC7C,IAAIF,aAAa,EAAE;IAAA;IACjB,MAAMG,OAAO,GAAGV,IAAI,CAACW,IAAI,CAACF,MAAM,GAAG,CAAC,GAAG,CAAC;IACxC,IAAI,CAACG,aAAa,CAACZ,IAAI,CAACQ,UAAU,EAAER,IAAI,EAAE;MACxCiB,MAAM,EAAE,IAAI;MACZJ,0BAA0B,EAAEH;IAC9B,CAAC,CAAC;IACF,IAAI,4BAACV,IAAI,CAACQ,UAAU,CAACD,aAAa,GAAG,CAAC,CAAC,CAACO,gBAAgB,aAAnD,uBAAqDL,MAAM,GAAE;MAChE,IAAI,CAACC,OAAO,CAACA,OAAO,CAAC;IACvB;EACF;EAEA,IAAI,CAACE,aAAa,CAACZ,IAAI,CAACW,IAAI,EAAEX,IAAI,EAAE;IAAEiB,MAAM,EAAE;EAAK,CAAC,CAAC;EAErD,IAAI,CAACC,gBAAgB,CAAC,KAAK,EAAElB,IAAI,CAACmB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAE7C,IAAI,CAACC,UAAU,EAAE;AACnB;AAEO,SAASC,SAAS,CAAgBrB,IAAiB,EAAE;EAC1D,IAAI,CAACE,KAAK,CAACF,IAAI,CAACsB,KAAK,EAAEtB,IAAI,CAAC;EAC5B,IAAI,CAACuB,SAAS,EAAE;AAClB;AAGA,MAAMC,sBAAsB,GAAG,uBAAuB;AACtD,MAAMC,sBAAsB,GAAG,uBAAuB;AAE/C,SAASC,gBAAgB,CAAgB1B,IAAwB,EAAE;EACxE,MAAM2B,GAAG,GAAG,IAAI,CAACC,cAAc,CAAC5B,IAAI,CAAC;EACrC,IAAI,CAAC,IAAI,CAAC6B,MAAM,CAACC,QAAQ,IAAIH,GAAG,KAAKI,SAAS,EAAE;IAC9C,IAAI,CAACf,KAAK,CAACW,GAAG,CAAC;IACf;EACF;EAEA,MAAM;IAAEL;EAAM,CAAC,GAAGtB,IAAI;EAMtB,IAAI,CAACyB,sBAAsB,CAACO,IAAI,CAACV,KAAK,CAAC,EAAE;IACvC,IAAI,CAACN,KAAK,CAAE,IAAGM,KAAM,GAAE,CAAC;EAC1B,CAAC,MAAM,IAAI,CAACE,sBAAsB,CAACQ,IAAI,CAACV,KAAK,CAAC,EAAE;IAC9C,IAAI,CAACN,KAAK,CAAE,IAAGM,KAAM,GAAE,CAAC;EAC1B,CAAC,MAAM;IACL,MAAM,IAAIW,KAAK,CACb,mEAAmE,GACjE,2CAA2C,CAC9C;EACH;AACF;AAEO,SAASC,oBAAoB,CAElClC,IAA4B,EAC5B;EACA,IAAI,CAACgB,KAAK,CAAE,KAAIhB,IAAI,CAACsB,KAAM,EAAC,CAAC;EAC7B,IAAI,CAACZ,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;AACvB;AAEO,SAASyB,WAAW,CAAgBnC,IAAmB,EAAE;EAC9D,IAAI,CAACgB,KAAK,CAAC,IAAI,CAAC;EAChB,IAAI,CAACd,KAAK,CAACF,IAAI,CAACoC,IAAI,CAAC;EACrB,IAAI,CAACpB,KAAK,CAAC,IAAI,CAAC;EAEhB,IAAIhB,IAAI,CAACqC,YAAY,KAAK,WAAW,EAAE;IACrC,IAAI,CAACd,SAAS,EAAE;EAClB;AACF"}
|
|
@@ -70,7 +70,6 @@ function ClassBody(node) {
|
|
|
70
70
|
function ClassProperty(node) {
|
|
71
71
|
var _node$key$loc, _node$key$loc$end;
|
|
72
72
|
this.printJoin(node.decorators, node);
|
|
73
|
-
|
|
74
73
|
const endLine = (_node$key$loc = node.key.loc) == null ? void 0 : (_node$key$loc$end = _node$key$loc.end) == null ? void 0 : _node$key$loc$end.line;
|
|
75
74
|
if (endLine) this.catchUp(endLine);
|
|
76
75
|
this.tsPrintClassMemberModifiers(node);
|
|
@@ -82,7 +81,6 @@ function ClassProperty(node) {
|
|
|
82
81
|
this._variance(node);
|
|
83
82
|
this.print(node.key, node);
|
|
84
83
|
}
|
|
85
|
-
|
|
86
84
|
if (node.optional) {
|
|
87
85
|
this.tokenChar(63);
|
|
88
86
|
}
|
|
@@ -101,10 +99,8 @@ function ClassProperty(node) {
|
|
|
101
99
|
function ClassAccessorProperty(node) {
|
|
102
100
|
var _node$key$loc2, _node$key$loc2$end;
|
|
103
101
|
this.printJoin(node.decorators, node);
|
|
104
|
-
|
|
105
102
|
const endLine = (_node$key$loc2 = node.key.loc) == null ? void 0 : (_node$key$loc2$end = _node$key$loc2.end) == null ? void 0 : _node$key$loc2$end.line;
|
|
106
103
|
if (endLine) this.catchUp(endLine);
|
|
107
|
-
|
|
108
104
|
this.tsPrintClassMemberModifiers(node);
|
|
109
105
|
this.word("accessor", true);
|
|
110
106
|
this.space();
|
|
@@ -116,7 +112,6 @@ function ClassAccessorProperty(node) {
|
|
|
116
112
|
this._variance(node);
|
|
117
113
|
this.print(node.key, node);
|
|
118
114
|
}
|
|
119
|
-
|
|
120
115
|
if (node.optional) {
|
|
121
116
|
this.tokenChar(63);
|
|
122
117
|
}
|
|
@@ -161,7 +156,6 @@ function ClassPrivateMethod(node) {
|
|
|
161
156
|
function _classMethodHead(node) {
|
|
162
157
|
var _node$key$loc3, _node$key$loc3$end;
|
|
163
158
|
this.printJoin(node.decorators, node);
|
|
164
|
-
|
|
165
159
|
const endLine = (_node$key$loc3 = node.key.loc) == null ? void 0 : (_node$key$loc3$end = _node$key$loc3.end) == null ? void 0 : _node$key$loc3$end.line;
|
|
166
160
|
if (endLine) this.catchUp(endLine);
|
|
167
161
|
this.tsPrintClassMemberModifiers(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","format","decoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","indent","printSequence","dedent","endsWith","sourceWithOffset","loc","rightBrace","ClassProperty","endLine","key","end","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","ClassPrivateProperty","static","ClassMethod","_classMethodHead","ClassPrivateMethod","_methodHead","StaticBlock"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n if (process.env.BABEL_8_BREAKING) {\n this.printJoin(node.decorators, node);\n } else {\n if (\n !this.format.decoratorsBeforeExport ||\n (!isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent))\n ) {\n this.printJoin(node.decorators, node);\n }\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id, node);\n }\n\n this.print(node.typeParameters, node);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass, node);\n this.print(node.superTypeParameters, node);\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements, node);\n }\n\n this.space();\n this.print(node.body, node);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n\n this.indent();\n this.printSequence(node.body, node);\n this.dedent();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n this.tsPrintClassMemberModifiers(node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators, node);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.key, node);\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n this._methodHead(node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, node, {\n indent: true,\n });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","format","decoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","indent","printSequence","dedent","endsWith","sourceWithOffset","loc","rightBrace","ClassProperty","endLine","key","end","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","ClassPrivateProperty","static","ClassMethod","_classMethodHead","ClassPrivateMethod","_methodHead","StaticBlock"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n if (process.env.BABEL_8_BREAKING) {\n this.printJoin(node.decorators, node);\n } else {\n if (\n !this.format.decoratorsBeforeExport ||\n (!isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent))\n ) {\n this.printJoin(node.decorators, node);\n }\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id, node);\n }\n\n this.print(node.typeParameters, node);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass, node);\n this.print(node.superTypeParameters, node);\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements, node);\n }\n\n this.space();\n this.print(node.body, node);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n\n this.indent();\n this.printSequence(node.body, node);\n this.dedent();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n this.tsPrintClassMemberModifiers(node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators, node);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.key, node);\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n this._methodHead(node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, node, {\n indent: true,\n });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n"],"mappings":"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"}
|
|
@@ -38,8 +38,7 @@ const {
|
|
|
38
38
|
isNewExpression
|
|
39
39
|
} = _t;
|
|
40
40
|
function UnaryExpression(node) {
|
|
41
|
-
if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" ||
|
|
42
|
-
node.operator === "throw") {
|
|
41
|
+
if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || node.operator === "throw") {
|
|
43
42
|
this.word(node.operator);
|
|
44
43
|
this.space();
|
|
45
44
|
} else {
|
|
@@ -92,7 +91,6 @@ function NewExpression(node, parent) {
|
|
|
92
91
|
}
|
|
93
92
|
this.print(node.typeArguments, node);
|
|
94
93
|
this.print(node.typeParameters, node);
|
|
95
|
-
|
|
96
94
|
if (node.optional) {
|
|
97
95
|
this.token("?.");
|
|
98
96
|
}
|
|
@@ -165,12 +163,10 @@ function OptionalMemberExpression(node) {
|
|
|
165
163
|
function OptionalCallExpression(node) {
|
|
166
164
|
this.print(node.callee, node);
|
|
167
165
|
this.print(node.typeParameters, node);
|
|
168
|
-
|
|
169
166
|
if (node.optional) {
|
|
170
167
|
this.token("?.");
|
|
171
168
|
}
|
|
172
169
|
this.print(node.typeArguments, node);
|
|
173
|
-
|
|
174
170
|
this.tokenChar(40);
|
|
175
171
|
this.printList(node.arguments, node);
|
|
176
172
|
this.tokenChar(41);
|
|
@@ -211,7 +207,6 @@ function YieldExpression(node) {
|
|
|
211
207
|
function EmptyStatement() {
|
|
212
208
|
this.semicolon(true);
|
|
213
209
|
}
|
|
214
|
-
|
|
215
210
|
function ExpressionStatement(node) {
|
|
216
211
|
this.print(node.expression, node);
|
|
217
212
|
this.semicolon();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isCallExpression","isLiteral","isMemberExpression","isNewExpression","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","expression","UpdateExpression","prefix","printTerminatorless","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","printList","SequenceExpression","expressions","ThisExpression","Super","isDecoratorMemberExpression","type","computed","property","object","shouldParenthesizeDecoratorExpression","Decorator","newline","OptionalMemberExpression","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","AssignmentPattern","left","typeAnnotation","right","AssignmentExpression","parens","inForStatementInitCounter","n","needsParens","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","sourceWithOffset","loc","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as n from \"../node\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n if (\n node.operator === \"void\" ||\n node.operator === \"delete\" ||\n node.operator === \"typeof\" ||\n // throwExpressions\n node.operator === \"throw\"\n ) {\n this.word(node.operator);\n this.space();\n } else {\n this.token(node.operator);\n }\n\n this.print(node.argument, node);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument, node);\n } else {\n this.printTerminatorless(node.argument, node, true);\n this.token(node.operator);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test, node);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent, node);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate, node);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee, node);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n // TODO: This can never happen\n this.token(\"?.\");\n }\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions, node);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nfunction isDecoratorMemberExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\nfunction shouldParenthesizeDecoratorExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n) {\n if (node.type === \"ParenthesizedExpression\") {\n // We didn't check extra?.parenthesized here because we don't track decorators in needsParen\n return false;\n }\n return !isDecoratorMemberExpression(\n node.type === \"CallExpression\" ? node.callee : node,\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n const { expression } = node;\n if (shouldParenthesizeDecoratorExpression(expression)) {\n this.token(\"(\");\n this.print(expression, node);\n this.token(\")\");\n } else {\n this.print(expression, node);\n }\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n if (node.optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n if (!node.optional) {\n this.token(\".\");\n }\n this.print(node.property, node);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee, node);\n\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments, node); // Flow\n\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee, node);\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n this.word(\"yield\", true);\n\n if (node.delegate) {\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument, node);\n }\n } else {\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.print(node.expression, node);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left, node);\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n if (node.left.optional) this.token(\"?\");\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n this.print(node.left.typeAnnotation, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right, node);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression,\n parent: t.Node,\n) {\n // Somewhere inside a for statement `init` node but doesn't usually\n // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\n const parens =\n this.inForStatementInitCounter &&\n node.operator === \"in\" &&\n !n.needsParens(node, parent);\n\n if (parens) {\n this.token(\"(\");\n }\n\n this.print(node.left, node);\n\n this.space();\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n this.word(node.operator);\n } else {\n this.token(node.operator);\n }\n this.space();\n\n this.print(node.right, node);\n\n if (parens) {\n this.token(\")\");\n }\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object, node);\n this.token(\"::\");\n this.print(node.callee, node);\n}\n\nexport {\n AssignmentExpression as BinaryExpression,\n AssignmentExpression as LogicalExpression,\n};\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n this.token(\".\");\n this.print(node.property, node);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta, node);\n this.token(\".\");\n this.print(node.property, node);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id, node);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body, node);\n this.dedent();\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n this.rightBrace();\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isCallExpression","isLiteral","isMemberExpression","isNewExpression","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","expression","UpdateExpression","prefix","printTerminatorless","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","printList","SequenceExpression","expressions","ThisExpression","Super","isDecoratorMemberExpression","type","computed","property","object","shouldParenthesizeDecoratorExpression","Decorator","newline","OptionalMemberExpression","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","AssignmentPattern","left","typeAnnotation","right","AssignmentExpression","parens","inForStatementInitCounter","n","needsParens","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","sourceWithOffset","loc","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as n from \"../node\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n if (\n node.operator === \"void\" ||\n node.operator === \"delete\" ||\n node.operator === \"typeof\" ||\n // throwExpressions\n node.operator === \"throw\"\n ) {\n this.word(node.operator);\n this.space();\n } else {\n this.token(node.operator);\n }\n\n this.print(node.argument, node);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument, node);\n } else {\n this.printTerminatorless(node.argument, node, true);\n this.token(node.operator);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test, node);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent, node);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate, node);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee, node);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n // TODO: This can never happen\n this.token(\"?.\");\n }\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions, node);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nfunction isDecoratorMemberExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\nfunction shouldParenthesizeDecoratorExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n) {\n if (node.type === \"ParenthesizedExpression\") {\n // We didn't check extra?.parenthesized here because we don't track decorators in needsParen\n return false;\n }\n return !isDecoratorMemberExpression(\n node.type === \"CallExpression\" ? node.callee : node,\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n const { expression } = node;\n if (shouldParenthesizeDecoratorExpression(expression)) {\n this.token(\"(\");\n this.print(expression, node);\n this.token(\")\");\n } else {\n this.print(expression, node);\n }\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n if (node.optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n if (!node.optional) {\n this.token(\".\");\n }\n this.print(node.property, node);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee, node);\n\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments, node); // Flow\n\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee, node);\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n this.word(\"yield\", true);\n\n if (node.delegate) {\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument, node);\n }\n } else {\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.print(node.expression, node);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left, node);\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n if (node.left.optional) this.token(\"?\");\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n this.print(node.left.typeAnnotation, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right, node);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression,\n parent: t.Node,\n) {\n // Somewhere inside a for statement `init` node but doesn't usually\n // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\n const parens =\n this.inForStatementInitCounter &&\n node.operator === \"in\" &&\n !n.needsParens(node, parent);\n\n if (parens) {\n this.token(\"(\");\n }\n\n this.print(node.left, node);\n\n this.space();\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n this.word(node.operator);\n } else {\n this.token(node.operator);\n }\n this.space();\n\n this.print(node.right, node);\n\n if (parens) {\n this.token(\")\");\n }\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object, node);\n this.token(\"::\");\n this.print(node.callee, node);\n}\n\nexport {\n AssignmentExpression as BinaryExpression,\n AssignmentExpression as LogicalExpression,\n};\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n this.token(\".\");\n this.print(node.property, node);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta, node);\n this.token(\".\");\n this.print(node.property, node);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id, node);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body, node);\n this.dedent();\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n this.rightBrace();\n}\n"],"mappings":"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"}
|
|
@@ -335,7 +335,6 @@ function FunctionTypeAnnotation(node, parent) {
|
|
|
335
335
|
this.print(node.rest, node);
|
|
336
336
|
}
|
|
337
337
|
this.tokenChar(41);
|
|
338
|
-
|
|
339
338
|
if (parent && (parent.type === "ObjectTypeCallProperty" || parent.type === "ObjectTypeInternalSlot" || parent.type === "DeclareFunction" || parent.type === "ObjectTypeProperty" && parent.method)) {
|
|
340
339
|
this.tokenChar(58);
|
|
341
340
|
} else {
|
|
@@ -508,7 +507,6 @@ function ObjectTypeAnnotation(node) {
|
|
|
508
507
|
} else {
|
|
509
508
|
this.tokenChar(123);
|
|
510
509
|
}
|
|
511
|
-
|
|
512
510
|
const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])];
|
|
513
511
|
if (props.length) {
|
|
514
512
|
this.newline();
|