oxc-codegen 0.147.0 → 0.149.0
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/README.md +10 -10
- package/dist/index.d.ts +7 -4
- package/dist/index.js +1 -1
- package/dist/print_js.js +52 -52
- package/dist/print_js_maps.js +53 -53
- package/dist/print_ts.js +76 -76
- package/dist/print_ts_maps.js +77 -77
- package/package.json +5 -5
package/dist/print_ts.js
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
Uint8Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,e=>e.charCodeAt(0));const
|
|
2
|
-
`,3),
|
|
3
|
-
`,3);
|
|
1
|
+
const e={dummy:0},t=t=>{e.dummy^=t.indexOf(` `)},n=e=>{let{output:n}=e;e.output=``,t(n);let{outputChunks:r}=e;r===null?e.outputChunks=[n]:r.push(n)};Uint8Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,e=>e.charCodeAt(0));const r=(e,t,n)=>{e.last=n,e.output+=t},i=(e,t)=>{e.last=0,e.output+=t},a=(e,t)=>{e.last=0,e.output+=`#`,e.output+=t},o=(e,t)=>{e.output+=t},s={__proto__:null,"**":17,"*":16,"/":16,"%":16,"+":15,"-":15,"<<":14,">>":14,">>>":14,"<":13,">":13,"<=":13,">=":13,instanceof:13,in:13,"==":12,"!=":12,"===":12,"!==":12,"&":11,"^":10,"|":9,"&&":8,"||":7,"??":6},c={__proto__:null,"**":` ** `,"*":` * `,"/":` / `,"%":` % `,"+":` + `,"-":` - `,"<<":` << `,">>":` >> `,">>>":` >>> `,"<":` < `,">":` > `,"<=":` <= `,">=":` >= `,instanceof:` instanceof `,in:` in `,"==":` == `,"!=":` != `,"===":` === `,"!==":` !== `,"&":` & `,"^":` ^ `,"|":` | `,"&&":` && `,"||":` || `,"??":` ?? `},ee={__proto__:null,"=":` = `,"+=":` += `,"-=":` -= `,"*=":` *= `,"/=":` /= `,"%=":` %= `,"**=":` **= `,"<<=":` <<= `,">>=":` >>= `,">>>=":` >>>= `,"&=":` &= `,"^=":` ^= `,"|=":` |= `,"&&=":` &&= `,"||=":` ||= `,"??=":` ??= `},te=e=>{switch(e){case`+`:return 12;case`-`:return 14;case`!`:return 10;default:return 3}},ne=e=>e===`++`?13:15,l=e=>{for(;e.type===`ParenthesizedExpression`;)e=e.expression;return e},re=(e,t,n,r)=>{let i={e,precedence:n,ctx:r,leftPrecedence:0,operator:e.operator,wrap:!1,rightPrecedence:0,parent:null};for(;;){ie(i,t);let e=l(i.e.left);if(e.type===`BinaryExpression`||e.type===`LogicalExpression`){if(e.type===`BinaryExpression`&&e.left.type===`PrivateIdentifier`){Ze(e,t,0),u(i,t);break}i={e,precedence:i.leftPrecedence,ctx:i.ctx,leftPrecedence:0,operator:i.operator,wrap:!1,rightPrecedence:0,parent:i}}else{V(i.e.left,t,i.leftPrecedence,i.ctx),u(i,t);break}}for(;(i=i.parent)!==null;)u(i,t)},ie=(e,t)=>{let{e:n}=e,i=n.operator,a=s[i],o=e.precedence>=a&&(!ae(e.operator)||e.precedence!==s[e.operator]);e.operator=i,e.wrap=o||i===`in`&&!!(e.ctx&1),e.wrap&&(r(t,`(`,3),e.ctx&=-2);let c=a-1;if(e.leftPrecedence=c,e.rightPrecedence=c,a===17?e.leftPrecedence=a:e.rightPrecedence=a,i===`??`){let t=l(n.left);t.type===`LogicalExpression`&&t.operator!==`??`&&(e.leftPrecedence=18);let r=l(n.right);r.type===`LogicalExpression`&&r.operator!==`??`&&(e.rightPrecedence=18)}else if(i===`**`){let t=l(n.left);(t.type===`UnaryExpression`||t.type===`AwaitExpression`||t.type===`TSTypeAssertion`||t.type===`Literal`&&(typeof t.value==`number`||t.bigint!=null))&&(e.leftPrecedence=21)}},ae=e=>e===`&&`||e===`||`||e===`??`,u=(e,t)=>{r(t,c[e.operator],3),V(e.e.right,t,e.rightPrecedence,e.ctx),e.wrap&&r(t,`)`,9)},d=e=>{e.last<=2&&r(e,` `,3)},f=(e,t)=>{let n=e.last;n>=11&&oe(e,n,t)},oe=(e,t,n)=>{(t===12&&(n===12||n===13)||t===14&&(n===14||n===15)||t===11&&n===15)&&r(e,` `,3)},p=e=>{if(e.output.length>=16384&&n(e),e.pendingIndentAsSpace){r(e,` `,3),e.pendingIndentAsSpace=!1;return}let t=e.indentLevel;if(t>0){let{indents:n}=e;r(e,t<n.length?n[t]:se(e,t),3)}},se=(e,t)=>{let{indents:n,indentString:r}=e,{length:i}=n,a=n[i-1];for(;i<=t;i++)a=[a,r].join(``),n.push(a);return a},m=(e,t)=>{Number.isInteger(t)?t<1e3?r(e,String(t),1):ce(e,t):le(e,t)},ce=(e,t)=>{let n=String(t);if(t>=1e21){if(h(e,t,n.length-1))return;ue(e,n,n.indexOf(`e`));return}let{length:a}=n;if(!h(e,t,a)){if(n.charCodeAt(a-1)===48){let t=1;for(;n.charCodeAt(a-1-t)===48;)t++;let r=String(t);if(r.length+1<t){o(e,n.slice(0,a-t)),o(e,`e`),i(e,r);return}}r(e,n,1)}},le=(e,t)=>{let n=String(t);if(n.charCodeAt(0)===48){if(n.charCodeAt(2)===48){let t=3;for(;n.charCodeAt(t)===48;)t++;let r=String(n.length-2);if(r.length+2<t-1){o(e,n.slice(t)),o(e,`e-`),i(e,r);return}}i(e,n.slice(1));return}let r=n.indexOf(`e`);if(r===-1){i(e,n);return}ue(e,n,r)},ue=(e,t,n)=>{let r=t.charCodeAt(n+1)===43?t.slice(n+2):t.slice(n+1);if(n>1){let a=String(Number(r)-(n-2));if(a.length<=r.length){o(e,t[0]),o(e,t.slice(2,n)),o(e,`e`),i(e,a);return}}o(e,t.slice(0,n+1)),i(e,r)},h=(e,t,n)=>{if(n<13)return!1;let r=BigInt(t).toString(16);return r.length+2>=n?!1:(o(e,`0x`),i(e,r),!0)},de=/[\0\x07\b\v\f\n\r\x1B\\"\u2028\u2029\xA0\uD800-\uDFFF]|<\/script/i,g=(e,t)=>{o(e,`"`),de.test(t)?fe(e,t):o(e,t),r(e,`"`,3)},fe=(e,t)=>{let n=0,{length:r}=t;for(let i=0;i<r;i++){let a=null,s=t.charCodeAt(i);switch(s){case 0:if(i+1<r){let e=t.charCodeAt(i+1);if(e>=48&&e<=57){a=`\\x00`;break}}a=`\\0`;break;case 7:a=`\\x07`;break;case 8:a=`\\b`;break;case 11:a=`\\v`;break;case 12:a=`\\f`;break;case 10:a=`\\n`;break;case 13:a=`\\r`;break;case 27:a=`\\x1B`;break;case 92:a=`\\\\`;break;case 34:a=`\\"`;break;case 60:if(/^<\/script/i.test(t.slice(i,i+8))){a=`<\\`;break}continue;case 8232:a=`\\u2028`;break;case 8233:a=`\\u2029`;break;case 160:a=`\\xA0`;break;default:if(s>=55296&&s<=57343){if(s<=56319&&i+1<r){let e=t.charCodeAt(i+1);if(e>=56320&&e<=57343){i++;continue}}a=`\\u`+s.toString(16);break}continue}o(e,t.slice(n,i)),o(e,a),n=i+1}o(e,t.slice(n))},pe=e=>e.includes(`</`)?e.replace(/<\/(script)/gi,`<\\/$1`):e,_=(e,t,n,i)=>{let{value:a}=e;switch(typeof a){case`string`:g(t,a);break;case`number`:me(e,t,n,i);break;case`boolean`:d(t),r(t,a?`true`:`false`,0);break;default:e.regex==null?e.bigint==null?(d(t),r(t,`null`,0)):ge(e,t,n):he(e,t)}},me=(e,t,n,i)=>{let{value:a}=e;if(i&4&&e.raw!=null){let{raw:n}=e;r(t,n,n[n.length-1]===`.`?3:0);return}if(a>0&&a<1/0)d(t),m(t,a);else if(Number.isNaN(a))d(t),r(t,`NaN`,0);else if(Number.isFinite(a))Object.is(a,0)?(d(t),r(t,`0`,1)):n>=18?(o(t,`(-`),m(t,-a),r(t,`)`,9)):(f(t,14),o(t,`-`),m(t,-a));else{let e=a<0,i=e&&n>=18;i&&r(t,`(`,3),e?(f(t,14),o(t,`-`)):d(t),r(t,`Infinity`,0),i&&r(t,`)`,9)}},he=(e,t)=>{o(t,`/`),o(t,e.regex.pattern);let{flags:n}=e.regex;n===``?r(t,`/`,2):(o(t,`/`),i(t,n))},ge=(e,t,n)=>{d(t);let a=e.bigint;a.startsWith(`-`)&&n>=18?(o(t,`(`),o(t,a),r(t,`n)`,9)):(o(t,a),i(t,`n`))},_e=(e,t,n,i)=>{let a=n>=13;a&&r(t,`(`,3),V(e.expression,t,17,i),r(t,e.type===`TSAsExpression`?` as `:` satisfies `,3),v(e.typeAnnotation,t),a&&r(t,`)`,9)},v=(e,t)=>{switch(e.type){case`TSTypeReference`:y(e.typeName,t),b(e.typeArguments,t);break;case`TSStringKeyword`:d(t),i(t,`string`);break;case`TSNumberKeyword`:d(t),i(t,`number`);break;case`TSBooleanKeyword`:d(t),i(t,`boolean`);break;case`TSAnyKeyword`:d(t),i(t,`any`);break;case`TSVoidKeyword`:d(t),i(t,`void`);break;case`TSUnknownKeyword`:d(t),i(t,`unknown`);break;case`TSNeverKeyword`:d(t),i(t,`never`);break;case`TSUndefinedKeyword`:d(t),i(t,`undefined`);break;case`TSNullKeyword`:d(t),i(t,`null`);break;case`TSObjectKeyword`:d(t),i(t,`object`);break;case`TSSymbolKeyword`:d(t),i(t,`symbol`);break;case`TSBigIntKeyword`:d(t),i(t,`bigint`);break;case`TSIntrinsicKeyword`:d(t),i(t,`intrinsic`);break;case`TSThisType`:d(t),i(t,`this`);break;case`TSLiteralType`:ve(e.literal,t);break;case`TSUnionType`:ye(e,t);break;case`TSIntersectionType`:xe(e,t);break;case`TSArrayType`:{let n=x(e.elementType);n&&r(t,`(`,3),v(e.elementType,t),n&&o(t,`)`),r(t,`[]`,9);break}case`TSTypeLiteral`:Ce(e,t);break;case`TSFunctionType`:De(e,t);break;case`TSConstructorType`:e.abstract&&r(t,`abstract `,3),r(t,`new `,3),w(e.typeParameters,t),N(e.params,t),v(C(e.returnType),t);break;case`TSTupleType`:{r(t,`[`,3);let{elementTypes:n}=e,{length:i}=n;for(let e=0;e<i;e++)e>0&&r(t,`, `,3),E(n[e],t);r(t,`]`,9);break}case`TSConditionalType`:Oe(e,t);break;case`TSInferType`:r(t,`infer `,3),T(e.typeParameter,t);break;case`TSIndexedAccessType`:{let n=x(e.objectType);n&&r(t,`(`,3),v(e.objectType,t),n&&r(t,`)`,9),r(t,`[`,3),v(e.indexType,t),r(t,`]`,9);break}case`TSMappedType`:ke(e,t);break;case`TSTypeOperator`:Ae(e,t);break;case`TSTypePredicate`:je(e,t);break;case`TSTypeQuery`:r(t,`typeof `,3),Me(e.exprName,t),b(e.typeArguments,t);break;case`TSImportType`:Ne(e,t);break;case`TSTemplateLiteralType`:{o(t,"`");let{quasis:n,types:i}=e,{length:a}=n;for(let e=0;e<a;e++)e!==0&&(r(t,"${",3),v(i[e-1],t),o(t,`}`)),o(t,n[e].value.raw);r(t,"`",3);break}case`TSParenthesizedType`:r(t,`(`,3),v(e.typeAnnotation,t),r(t,`)`,9);break;case`TSNamedTupleMember`:E(e,t);break;case`TSQualifiedName`:y(e,t);break;case`TSOptionalType`:case`TSRestType`:E(e,t);break;case`TSJSDocUnknownType`:d(t),i(t,`unknown`);break;case`TSJSDocNullableType`:e.postfix?(v(C(e.typeAnnotation),t),r(t,`?`,5)):(t.last===5&&r(t,` `,3),r(t,`?`,5),v(C(e.typeAnnotation),t));break;case`TSJSDocNonNullableType`:e.postfix?(v(C(e.typeAnnotation),t),r(t,`!`,10)):(r(t,`!`,10),v(C(e.typeAnnotation),t));break;default:throw Error(`Unknown type node: ${e.type}`)}},y=(e,t)=>{e.type===`TSQualifiedName`?(y(e.left,t),r(t,`.`,3),i(t,e.right.name)):e.type===`ThisExpression`?(d(t),r(t,`this`,0)):(d(t),i(t,e.name))},b=(e,t)=>{if(e==null)return;r(t,`<`,4);let{params:n}=e,{length:i}=n;for(let e=0;e<i;e++)e>0&&r(t,`, `,3),v(n[e],t);r(t,`>`,3)},ve=(e,t)=>{e.type===`Literal`?_(e,t,0,4):V(e,t,+(e.type===`UnaryExpression`),4)},ye=(e,t)=>{let{types:n}=e,{length:i}=n;for(let e=0;e<i;e++){e>0&&r(t,` | `,3);let i=be(n[e]);i&&r(t,`(`,3),v(n[e],t),i&&r(t,`)`,9)}},be=e=>{switch(e.type){case`TSUnionType`:return e.types.length>1;case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:return!0;default:return!1}},xe=(e,t)=>{let{types:n}=e,{length:i}=n;for(let e=0;e<i;e++){e>0&&r(t,` & `,3);let i=Se(n[e]);i&&r(t,`(`,3),v(n[e],t),i&&r(t,`)`,9)}},Se=e=>e.type===`TSIntersectionType`?e.types.length>1:be(e),x=e=>{switch(e.type){case`TSUnionType`:case`TSIntersectionType`:case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:case`TSTypeOperator`:return!0;default:return!1}},Ce=(e,t)=>{let{members:n}=e,{length:i}=n;if(i===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
2
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++)p(t),we(n[e],t,4),r(t,`;
|
|
3
|
+
`,3);t.indentLevel--,p(t),r(t,`}`,3)},we=(e,t,n)=>{switch(e.type){case`TSPropertySignature`:e.readonly&&r(t,`readonly `,3),e.computed?(r(t,`[`,3),V(e.key,t,1,n),r(t,`]`,9)):Te(e.key,t,n),e.optional&&r(t,`?`,5),e.typeAnnotation!=null&&S(e.typeAnnotation,t);break;case`TSIndexSignature`:Ee(e,t);break;case`TSMethodSignature`:e.kind===`get`?r(t,`get `,3):e.kind===`set`&&r(t,`set `,3),e.computed?(r(t,`[`,3),V(e.key,t,1,n),r(t,`]`,9)):Te(e.key,t,n),e.optional&&r(t,`?`,5),w(e.typeParameters,t),j(e.params,t),e.returnType!=null&&S(e.returnType,t);break;case`TSCallSignatureDeclaration`:w(e.typeParameters,t),j(e.params,t),e.returnType!=null&&S(e.returnType,t);break;case`TSConstructSignatureDeclaration`:r(t,`new `,3),w(e.typeParameters,t),j(e.params,t),e.returnType!=null&&S(e.returnType,t);break;default:throw Error(`Unknown signature type: ${e.type}`)}},Te=(e,t,n)=>{switch(e.type){case`Identifier`:d(t),i(t,e.name);break;case`PrivateIdentifier`:a(t,e.name);break;case`Literal`:typeof e.value==`string`?g(t,e.value):_(e,t,1,n);break;default:V(e,t,1,n)}},S=(e,t)=>{r(t,`: `,3),v(C(e),t)},C=e=>e.type===`TSTypeAnnotation`?e.typeAnnotation:e,Ee=(e,t)=>{e.static&&r(t,`static `,3),e.readonly&&r(t,`readonly `,3),r(t,`[`,3);let n=e.parameters[0];i(t,n.name),r(t,`: `,3),v(C(n.typeAnnotation),t),r(t,`]: `,3),v(C(e.typeAnnotation),t)},w=(e,t)=>{if(e==null)return;let{params:n}=e,{length:i}=n,a=i>=2;if(r(t,`<`,4),a){t.indentLevel++;for(let e=0;e<i;e++)r(t,e===0?`
|
|
4
4
|
`:`,
|
|
5
|
-
`,3),p(
|
|
6
|
-
`,3),
|
|
7
|
-
`,3),
|
|
8
|
-
`,3),
|
|
9
|
-
`,3);
|
|
10
|
-
`,3),
|
|
5
|
+
`,3),p(t),T(n[e],t);r(t,`
|
|
6
|
+
`,3),t.indentLevel--,p(t)}else{for(let e=0;e<i;e++)e>0&&r(t,`, `,3),T(n[e],t);t.isJsx&&r(t,`,`,3)}r(t,`>`,3)},T=(e,t)=>{e.const&&o(t,`const `),e.in&&o(t,`in `),e.out&&o(t,`out `),i(t,e.name.name),e.constraint!=null&&(r(t,` extends `,3),v(e.constraint,t)),e.default!=null&&(r(t,` = `,3),v(e.default,t))},De=(e,t)=>{w(e.typeParameters,t),N(e.params,t),v(C(e.returnType),t)},E=(e,t)=>{switch(e.type){case`TSOptionalType`:{let n=x(e.typeAnnotation);n&&r(t,`(`,3),v(e.typeAnnotation,t),n&&r(t,`)`,9),r(t,`?`,5);break}case`TSRestType`:r(t,`...`,3),v(e.typeAnnotation,t);break;case`TSNamedTupleMember`:i(t,e.label.name),e.optional&&r(t,`?`,5),r(t,`: `,3),v(e.elementType,t);break;default:v(e,t)}},Oe=(e,t)=>{let{checkType:n,extendsType:i}=e,a=n.type===`TSFunctionType`||n.type===`TSConstructorType`||n.type===`TSConditionalType`;a&&r(t,`(`,3),v(n,t),a&&r(t,`)`,9),r(t,` extends `,3);let o=i.type===`TSConditionalType`;o&&r(t,`(`,3),v(i,t),o&&r(t,`)`,9),r(t,` ? `,3),v(e.trueType,t),r(t,` : `,3),v(e.falseType,t)},ke=(e,t)=>{o(t,`{ `);let{readonly:n}=e;n===!0?o(t,`readonly `):n===`+`?o(t,`+readonly `):n===`-`&&o(t,`-readonly `),o(t,`[`),o(t,e.key.name),r(t,` in `,3),v(e.constraint,t),e.nameType!=null&&(r(t,` as `,3),v(e.nameType,t)),o(t,`]`);let{optional:i}=e;i===!0?o(t,`?`):i===`+`?o(t,`+?`):i===`-`&&o(t,`-?`),e.typeAnnotation!=null&&(r(t,`: `,3),v(C(e.typeAnnotation),t)),r(t,` }`,3)},Ae=(e,t)=>{i(t,e.operator),r(t,` `,3);let n=C(e.typeAnnotation),a=n.type,o=a===`TSUnionType`||a===`TSIntersectionType`||a===`TSFunctionType`||a===`TSConstructorType`||a===`TSConditionalType`;o&&r(t,`(`,3),v(n,t),o&&r(t,`)`,9)},je=(e,t)=>{e.asserts&&r(t,`asserts `,3);let{parameterName:n}=e;n.type===`TSThisType`?i(t,`this`):(d(t),i(t,n.name)),e.typeAnnotation!=null&&(r(t,` is `,3),v(C(e.typeAnnotation),t))},Me=(e,t)=>{e.type===`TSImportType`?Ne(e,t):y(e,t)},Ne=(e,t)=>{r(t,`import(`,3),g(t,e.source.value),e.options!=null&&(r(t,`, `,3),V(e.options,t,0,4)),r(t,`)`,9),e.qualifier!=null&&(r(t,`.`,3),Pe(e.qualifier,t)),b(e.typeArguments,t)},Pe=(e,t)=>{e.type===`TSQualifiedName`?(Pe(e.left,t),r(t,`.`,3),i(t,e.right.name)):i(t,e.name)},Fe=(e,t,n,i)=>{let a=n>=18;a&&r(t,`(`,3),t.last===4&&r(t,` `,3),r(t,`<`,4),e.typeAnnotation.type===`TSFunctionType`&&r(t,` `,3),v(e.typeAnnotation,t),r(t,`>`,3),V(e.expression,t,17,i),a&&r(t,`)`,9)},D=(e,t)=>{e.declare&&r(t,`declare `,3);let{kind:n}=e;if(i(t,n),n!==`global`){r(t,` `,3);let{id:n}=e;n.type===`Literal`?g(t,n.value):y(n,t)}let{body:a}=e;if(a==null){r(t,`;`,3);return}r(t,` `,3),Ie(a,t)},Ie=(e,t)=>{let n=e.body;if(n.length===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
7
|
+
`,3),t.indentLevel++,Y(n,t),t.indentLevel--,p(t),r(t,`}`,3)},O=(e,t)=>{d(t),e.declare&&r(t,`declare `,3),r(t,`interface `,3),i(t,e.id.name),w(e.typeParameters,t);let n=e.extends;if(n!=null&&n.length>0){r(t,` extends `,3);let{length:e}=n;for(let i=0;i<e;i++){i>0&&r(t,`, `,3);let e=n[i];V(e.expression,t,21,0),b(e.typeArguments,t)}}r(t,` `,3);let a=e.body.body,{length:s}=a;if(s===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
8
|
+
`,3),t.indentLevel++;for(let e=0;e<s;e++)p(t),we(a[e],t,0),r(t,`;
|
|
9
|
+
`,3);t.indentLevel--,p(t),r(t,`}`,3)},Le=(e,t)=>{e.declare&&r(t,`declare `,3),r(t,`type `,3),i(t,e.id.name),w(e.typeParameters,t),r(t,` = `,3);let n=Re(e.typeAnnotation);n&&r(t,`(`,3),v(e.typeAnnotation,t),n&&r(t,`)`,9)},Re=e=>{for(;;)switch(e.type){case`TSTypeReference`:return e.typeArguments==null&&e.typeName.type===`Identifier`&&e.typeName.name===`intrinsic`;case`TSArrayType`:e=e.elementType;break;case`TSIndexedAccessType`:e=e.objectType;break;case`TSUnionType`:case`TSIntersectionType`:if(e.types.length===0)return!1;e=e.types[0];break;case`TSConditionalType`:e=e.checkType;break;default:return!1}},ze=(e,t)=>{d(t),e.declare&&r(t,`declare `,3),e.const&&r(t,`const `,3),r(t,`enum `,3),i(t,e.id.name),r(t,` `,3);let{body:n}=e,{members:a}=n,{length:s}=a;if(s===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
10
|
+
`,3),t.indentLevel++;let c=s-1;for(let e=0;e<s;e++)p(t),Be(a[e],t),r(t,e===c?`
|
|
11
11
|
`:`,
|
|
12
|
-
`,3);
|
|
13
|
-
`,3),
|
|
14
|
-
`,3),
|
|
15
|
-
`,3);break;case`PropertyDefinition`:case`TSAbstractPropertyDefinition`:
|
|
16
|
-
`,3);break;case`StaticBlock`:
|
|
17
|
-
`,3);break;case`AccessorProperty`:case`TSAbstractAccessorProperty`:
|
|
18
|
-
`,3);break;case`TSIndexSignature`:
|
|
19
|
-
`,3);break;default:throw Error(`Unknown class element type: ${
|
|
20
|
-
`,3),
|
|
12
|
+
`,3);t.indentLevel--,p(t),r(t,`}`,3)},Be=(e,t)=>{let{id:n}=e;n.type===`Identifier`?(d(t),i(t,n.name)):n.type===`Literal`?g(t,n.value):(n.type===`TemplateLiteral`?(o(t,"[`"),o(t,n.quasis[0].value.raw),r(t,"`",3)):(r(t,`[`,3),V(n,t,1,0)),r(t,`]`,9)),e.initializer!=null&&(r(t,` = `,3),V(e.initializer,t,0,0))},k=(e,t)=>{r(t,`import `,3),e.importKind===`type`&&r(t,`type `,3),i(t,e.id.name),r(t,` = `,3);let n=e.moduleReference;n.type===`TSExternalModuleReference`?(r(t,`require(`,3),g(t,n.expression.value),r(t,`)`,9)):y(n,t)},A=(e,t)=>{let n=!1;e.type===`FunctionExpression`&&(n=(t.last|1)==7),n&&r(t,`(`,3),d(t),e.declare?(r(t,`declare `,3),i(t,e.async?`async function`:`function`)):r(t,e.async?`async function`:`function`,0),e.generator&&r(t,`* `,3);let{id:a}=e;a!=null&&(d(t),i(t,a.name)),w(e.typeParameters,t),j(e.params,t),e.returnType!=null&&S(e.returnType,t),e.body==null?r(t,`;`,3):(r(t,` `,3),M(e.body,t)),n&&r(t,`)`,9)},j=(e,t)=>{if(e.length===0){r(t,`()`,9);return}r(t,`(`,3),Ve(e,t),r(t,`)`,9)},Ve=(e,t)=>{let{length:n}=e;for(let a=0;a<n;a++){a>0&&r(t,`, `,3);let n=e[a];if(n.type===`Identifier`&&n.name===`this`){i(t,`this`),n.typeAnnotation!=null&&S(n.typeAnnotation,t);continue}let{decorators:s}=n;s!=null&&s.length>0&&F(s,t),n.type===`TSParameterProperty`?(n.accessibility!=null&&(d(t),o(t,n.accessibility),r(t,` `,3)),n.override&&(d(t),r(t,`override `,3)),n.readonly&&(d(t),r(t,`readonly `,3)),W(n.parameter,t)):W(n,t)}},M=(e,t)=>{let n=e.body;if(n.length===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
13
|
+
`,3),t.indentLevel++,Y(n,t),t.indentLevel--,p(t),r(t,`}`,3)},N=(e,t)=>{if(e.length===0){r(t,`() => `,3);return}r(t,`(`,3),Ve(e,t),r(t,`) => `,3)},P=(e,t)=>{let n=!1;e.type===`ClassExpression`&&(n=(t.last|1)==7),n&&r(t,`(`,3);let{decorators:a}=e;a!=null&&a.length>0&&F(a,t),d(t);let o=e.declare,s=e.abstract;o&&r(t,`declare `,3),s&&r(t,`abstract `,3),o||s?i(t,`class`):r(t,`class`,0),e.id!=null&&(r(t,` `,3),i(t,e.id.name)),w(e.typeParameters,t),e.superClass!=null&&(r(t,` extends `,3),V(e.superClass,t,19,0),b(e.superTypeArguments,t));let{implements:c}=e;if(c!=null&&c.length>0){r(t,` implements `,3);let{length:e}=c;for(let n=0;n<e;n++){n>0&&r(t,`, `,3);let e=c[n];V(e.expression,t,21,0),b(e.typeArguments,t)}}r(t,` `,3),Ue(e.body,t),n&&r(t,`)`,9)},F=(e,t)=>{let{length:n}=e;for(let i=0;i<n;i++){let n=e[i];r(t,`@`,3);let{expression:a}=n,o=He(a);o&&r(t,`(`,3),V(a,t,0,0),o&&r(t,`)`,9),r(t,` `,3)}},He=e=>{for(;;)switch(e.type){case`Identifier`:return!1;case`MemberExpression`:return e.computed;case`CallExpression`:e=e.callee;break;default:return!0}},Ue=(e,t)=>{let{body:n}=e,{length:i}=n;if(i===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
14
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++){p(t);let i=n[e];switch(i.type){case`MethodDefinition`:case`TSAbstractMethodDefinition`:We(i,t),r(t,`
|
|
15
|
+
`,3);break;case`PropertyDefinition`:case`TSAbstractPropertyDefinition`:Ge(i,t),r(t,`;
|
|
16
|
+
`,3);break;case`StaticBlock`:Ke(i,t),r(t,`
|
|
17
|
+
`,3);break;case`AccessorProperty`:case`TSAbstractAccessorProperty`:qe(i,t),r(t,`;
|
|
18
|
+
`,3);break;case`TSIndexSignature`:Ee(i,t),r(t,`;
|
|
19
|
+
`,3);break;default:throw Error(`Unknown class element type: ${i.type}`)}}t.indentLevel--,p(t),r(t,`}`,3)},We=(e,t)=>{let{decorators:n}=e;n!=null&&n.length>0&&F(n,t),e.accessibility!=null&&(d(t),o(t,e.accessibility),r(t,` `,3)),(e.type===`TSAbstractMethodDefinition`||e.abstract)&&(d(t),r(t,`abstract `,3)),e.static&&(d(t),r(t,`static `,3)),e.override&&(d(t),r(t,`override `,3));let{kind:i}=e;i===`get`?(d(t),r(t,`get `,3)):i===`set`&&(d(t),r(t,`set `,3));let a=e.value;a.async&&(d(t),r(t,`async `,3)),a.generator&&r(t,`*`,3),e.computed?(r(t,`[`,3),V(e.key,t,1,0),r(t,`]`,9)):G(e.key,t),e.optional&&r(t,`?`,5),w(a.typeParameters,t),j(a.params,t),a.returnType!=null&&S(a.returnType,t),a.body==null?r(t,`;`,3):(r(t,` `,3),M(a.body,t))},Ge=(e,t)=>{let{decorators:n}=e;n!=null&&n.length>0&&F(n,t),e.declare&&(d(t),r(t,`declare `,3)),e.accessibility!=null&&(d(t),o(t,e.accessibility),r(t,` `,3)),(e.type===`TSAbstractPropertyDefinition`||e.abstract)&&(d(t),r(t,`abstract `,3)),e.static&&(d(t),r(t,`static `,3)),e.override&&(d(t),r(t,`override `,3)),e.readonly&&(d(t),r(t,`readonly `,3)),e.computed?(r(t,`[`,3),V(e.key,t,1,0),r(t,`]`,9)):G(e.key,t),e.optional&&r(t,`?`,5),e.definite&&r(t,`!`,10),e.typeAnnotation!=null&&S(e.typeAnnotation,t),e.value!=null&&(r(t,` = `,3),V(e.value,t,1,0))},Ke=(e,t)=>{d(t),r(t,`static `,3);let{body:n}=e,{length:i}=n;if(i===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
20
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++)X(n[e],t);t.indentLevel--,p(t),r(t,`}`,3)},qe=(e,t)=>{let{decorators:n}=e;n!=null&&n.length>0&&F(n,t),(e.type===`TSAbstractAccessorProperty`||e.abstract)&&(d(t),r(t,`abstract `,3)),e.accessibility!=null&&(d(t),o(t,e.accessibility),r(t,` `,3)),e.static&&(d(t),r(t,`static `,3)),e.override&&(d(t),r(t,`override `,3)),d(t),i(t,`accessor`),e.computed?(r(t,` [`,3),V(e.key,t,1,0),r(t,`]`,9)):(r(t,` `,3),G(e.key,t)),e.definite&&r(t,`!`,10),e.typeAnnotation!=null&&S(e.typeAnnotation,t),e.value!=null&&(r(t,` = `,3),V(e.value,t,1,0))},I=(e,t)=>{let{openingElement:n}=e;o(t,`<`),L(n.name,t),b(n.typeArguments,t);let{attributes:i}=n,{length:a}=i;for(let e=0;e<a;e++){o(t,` `);let n=i[e];n.type===`JSXSpreadAttribute`?(r(t,`{...`,3),V(n.argument,t,1,0),r(t,`}`,3)):Je(n,t)}let{closingElement:s}=e;if(s==null){r(t,` />`,3);return}o(t,`>`);let{children:c}=e,ee=c.length;for(let e=0;e<ee;e++)B(c[e],t);o(t,`</`),L(s.name,t),r(t,`>`,3)},L=(e,t)=>{switch(e.type){case`JSXIdentifier`:o(t,e.name);break;case`JSXMemberExpression`:L(e.object,t),o(t,`.`),L(e.property,t);break;case`JSXNamespacedName`:o(t,e.namespace.name),o(t,`:`),o(t,e.name.name);break;case`ThisExpression`:o(t,`this`);break;default:throw Error(`Unknown JSX name type: ${e.type}`)}},Je=(e,t)=>{let{name:n}=e;n.type===`JSXNamespacedName`?(o(t,n.namespace.name),o(t,`:`),o(t,n.name.name)):o(t,n.name);let{value:r}=e;r!=null&&(o(t,`=`),Ye(r,t))},Ye=(e,t)=>{switch(e.type){case`Literal`:{let{raw:n}=e,r=n==null?String(e.value):n.slice(1,-1),i=r.includes(`"`)?`'`:`"`;o(t,i),o(t,r),o(t,i);break}case`JSXExpressionContainer`:R(e,t);break;case`JSXElement`:I(e,t);break;case`JSXFragment`:z(e,t);break;default:throw Error(`Unknown JSX attribute value type: ${e.type}`)}},R=(e,t)=>{r(t,`{`,3),e.expression.type!==`JSXEmptyExpression`&&V(e.expression,t,0,0),o(t,`}`)},z=(e,t)=>{o(t,`<>`);let{children:n}=e,{length:i}=n;for(let e=0;e<i;e++)B(n[e],t);r(t,`</>`,3)},B=(e,t)=>{switch(e.type){case`JSXText`:o(t,e.raw==null?e.value:e.raw);break;case`JSXExpressionContainer`:R(e,t);break;case`JSXElement`:I(e,t);break;case`JSXFragment`:z(e,t);break;case`JSXSpreadChild`:r(t,`{...`,3),V(e.expression,t,0,0),o(t,`}`);break;default:throw Error(`Unknown JSX child type: ${e.type}`)}},V=(e,t,n,a)=>{switch(e.type){case`Identifier`:d(t),i(t,e.name);break;case`MemberExpression`:H(e,t,a);break;case`CallExpression`:Xe(e,t,n,a);break;case`Literal`:_(e,t,n,a);break;case`BinaryExpression`:e.left.type===`PrivateIdentifier`?Ze(e,t,n):re(e,t,n,a);break;case`LogicalExpression`:re(e,t,n,a);break;case`ObjectExpression`:Qe(e,t);break;case`ArrayExpression`:et(e,t);break;case`AssignmentExpression`:tt(e,t,n,a);break;case`UpdateExpression`:nt(e,t,n,a);break;case`UnaryExpression`:rt(e,t,n,a);break;case`ConditionalExpression`:it(e,t,n,a);break;case`SequenceExpression`:at(e,t,n,a);break;case`ArrowFunctionExpression`:ot(e,t,n,a);break;case`FunctionExpression`:A(e,t);break;case`ThisExpression`:d(t),r(t,`this`,0);break;case`Super`:d(t),r(t,`super`,0);break;case`NewExpression`:st(e,t,n);break;case`TemplateLiteral`:ct(e,t);break;case`TaggedTemplateExpression`:V(e.tag,t,19,a&2),b(e.typeArguments,t),ct(e.quasi,t);break;case`ClassExpression`:P(e,t);break;case`AwaitExpression`:ut(e,t,n,a);break;case`YieldExpression`:dt(e,t,n);break;case`ImportExpression`:ft(e,t,n,a);break;case`MetaProperty`:d(t),o(t,e.meta.name),o(t,`.`),i(t,e.property.name);break;case`ChainExpression`:pt(e,t,n,a);break;case`ParenthesizedExpression`:{let{expression:i}=e,o=l(i);o.type===`FunctionExpression`||o.type===`ArrowFunctionExpression`?(r(t,`(`,3),V(o,t,0,0),r(t,`)`,9)):V(i,t,n,a);break}case`JSXElement`:I(e,t);break;case`JSXFragment`:z(e,t);break;case`TSAsExpression`:case`TSSatisfiesExpression`:_e(e,t,n,a);break;case`TSNonNullExpression`:V(e.expression,t,19,a),r(t,`!`,10);break;case`TSInstantiationExpression`:V(e.expression,t,18,a),b(e.typeArguments,t);break;case`TSTypeAssertion`:Fe(e,t,n,a);break;default:throw Error(`Unknown expression type: ${e.type}`)}},H=(e,t,n)=>{let{object:o}=e;if(e.computed){let i=l(o),a=i.type===`Identifier`&&i.name===`let`;a&&r(t,`(`,3),V(o,t,19,n&2),a&&r(t,`)`,9),e.optional&&r(t,`?.`,3),r(t,`[`,3),V(e.property,t,0,0),r(t,`]`,9)}else{V(o,t,19,n&2),e.optional?r(t,`?`,5):t.last===1&&r(t,` `,3),r(t,`.`,3);let{property:s}=e;s.type===`PrivateIdentifier`?a(t,s.name):i(t,s.name)}},Xe=(e,t,n,i)=>{let a=n>=20||!!(i&2);a&&(o(t,`(`),(t.last|1)!=7&&(t.last=3)),V(e.callee,t,19,0),e.optional&&r(t,`?.`,3),b(e.typeArguments,t),U(e,e.arguments,t),a&&r(t,`)`,9)},U=(e,t,n)=>{let{length:i}=t;if(i===0){o(n,`(`),r(n,`)`,9);return}r(n,`(`,3);for(let e=0;e<i;e++){e>0&&r(n,`, `,3);let i=t[e];i.type===`SpreadElement`?(r(n,`...`,3),V(i.argument,n,1,0)):V(i,n,1,0)}r(n,`)`,9)},Ze=(e,t,n)=>{let i=n>=13;i&&r(t,`(`,3),a(t,e.left.name),r(t,` in `,3),V(e.right,t,12,1),i&&r(t,`)`,9)},Qe=(e,t)=>{let n=(t.last-1|1)==7;n&&r(t,`(`,3);let{properties:i}=e,{length:a}=i,o=a>1;if(r(t,`{`,3),o){t.indentLevel++;for(let e=0;e<a;e++)r(t,e>0?`,
|
|
21
21
|
`:`
|
|
22
|
-
`,3),p(
|
|
23
|
-
`,3),
|
|
22
|
+
`,3),p(t),$e(i[e],t);r(t,`
|
|
23
|
+
`,3),t.indentLevel--,p(t)}else a===1&&(r(t,` `,3),$e(i[0],t),r(t,` `,3));r(t,`}`,3),n&&r(t,`)`,9)},$e=(e,t)=>{if(e.type===`SpreadElement`){r(t,`...`,3),V(e.argument,t,1,0);return}let{key:n,value:a}=e;if(a.type===`FunctionExpression`||a.type===`TSEmptyBodyFunctionExpression`){let{kind:i}=e,o=i===`get`,s=o||i===`set`;if(s&&r(t,o?`get `:`set `,3),e.method||s){a.async&&(d(t),r(t,`async `,3)),a.generator&&r(t,`*`,3),e.computed?(r(t,`[`,3),V(n,t,1,0),r(t,`]`,9)):G(n,t),w(a.typeParameters,t),j(a.params,t),a.returnType!=null&&S(a.returnType,t),a.body!=null&&(r(t,` `,3),M(a.body,t));return}}let o=!1,s=null;if(!e.computed&&n.type===`Identifier`){if(n.name===`__proto__`)o=e.shorthand;else{let e=l(a);e.type===`Identifier`&&n.name===e.name&&(o=!0,s=e)}}let{computed:c}=e;!c&&n.type===`Literal`&&typeof n.value==`number`&&(n.value<0||Object.is(n.value,-0)||!Number.isFinite(n.value))&&(c=!0),o?s===null?V(l(a),t,1,0):(d(t),i(t,s.name)):(c?(r(t,`[`,3),V(n,t,1,0),r(t,`]`,9)):G(n,t),r(t,`: `,3),V(a,t,1,0))},et=(e,t)=>{let{elements:n}=e,{length:i}=n,a=i>2;r(t,`[`,3),a&&t.indentLevel++;for(let e=0;e<i;e++){a?(r(t,e===0?`
|
|
24
24
|
`:`,
|
|
25
|
-
`,3),p(
|
|
26
|
-
`,3),
|
|
27
|
-
`)),
|
|
28
|
-
`,3);return}let s=!1;for(let
|
|
29
|
-
`,3)},q=(
|
|
30
|
-
`,3);break;case`FunctionDeclaration`:case`TSDeclareFunction`:
|
|
31
|
-
`,3);break;case`ClassDeclaration`:
|
|
32
|
-
`,3);break;case`TSModuleDeclaration`:
|
|
33
|
-
`,3);break;case`TSInterfaceDeclaration`:
|
|
34
|
-
`,3);break;case`TSEnumDeclaration`:
|
|
35
|
-
`,3);break;case`TSTypeAliasDeclaration`:
|
|
36
|
-
`,3);break;case`TSImportEqualsDeclaration`:
|
|
37
|
-
`,3);break;default:throw Error(`Unknown export declaration type: ${
|
|
38
|
-
`,3)},
|
|
39
|
-
`,3)},
|
|
40
|
-
`,3);break;case`ClassDeclaration`:
|
|
41
|
-
`,3);break;case`TSInterfaceDeclaration`:
|
|
42
|
-
`,3);break;default:
|
|
43
|
-
`,3)}},
|
|
44
|
-
`,3)),Y(
|
|
45
|
-
`,3),
|
|
46
|
-
`,3)},X=(
|
|
47
|
-
`,3);break;case`BlockStatement`:p(
|
|
48
|
-
`,3);break;case`IfStatement`:p(
|
|
49
|
-
`,3);break;case`ForStatement`:
|
|
50
|
-
`,3);break;case`ContinueStatement`:p(
|
|
51
|
-
`,3);break;case`TryStatement`:
|
|
52
|
-
`,3);break;case`ForInStatement`:
|
|
53
|
-
`,3);break;case`LabeledStatement`:p(
|
|
54
|
-
`,3);break;case`ImportDeclaration`:
|
|
55
|
-
`,3);break;case`TSModuleDeclaration`:p(
|
|
56
|
-
`,3);break;case`TSInterfaceDeclaration`:p(
|
|
57
|
-
`,3);break;case`TSTypeAliasDeclaration`:p(
|
|
58
|
-
`,3);break;case`TSEnumDeclaration`:p(
|
|
59
|
-
`,3);break;case`TSImportEqualsDeclaration`:p(
|
|
60
|
-
`,3);break;case`TSDeclareFunction`:p(
|
|
61
|
-
`,3);break;case`TSExportAssignment`:p(
|
|
62
|
-
`,3);break;case`TSNamespaceExportDeclaration`:p(
|
|
63
|
-
`,3);break;default:throw Error(`Unknown statement type: ${
|
|
64
|
-
`,3)},Z=(
|
|
65
|
-
`,3),
|
|
66
|
-
`:` `,3)):
|
|
67
|
-
`,3),
|
|
68
|
-
`:` `,3)):(
|
|
69
|
-
`,3)):
|
|
70
|
-
`,3)},
|
|
71
|
-
`,3)},
|
|
72
|
-
`,3);return}
|
|
73
|
-
`,3),
|
|
74
|
-
`,3)},
|
|
75
|
-
`,3),
|
|
76
|
-
`,3)):(
|
|
77
|
-
`,3),
|
|
78
|
-
`,3)},
|
|
79
|
-
`,3)):
|
|
80
|
-
`,3):(
|
|
25
|
+
`,3),p(t)):e!==0&&r(t,`, `,3);let o=n[e];o!=null&&(o.type===`SpreadElement`?(r(t,`...`,3),V(o.argument,t,1,0)):V(o,t,1,0)),e===i-1&&o==null&&r(t,`,`,3)}a&&(r(t,`
|
|
26
|
+
`,3),t.indentLevel--,p(t)),r(t,`]`,9)},tt=(e,t,n,i)=>{let{left:a}=e,o=n>=4;!o&&a.type===`ObjectPattern`&&(o=(t.last-1|1)==7),o&&r(t,`(`,3),K(a,t),r(t,ee[e.operator],3),V(e.right,t,1,i),o&&r(t,`)`,9)},nt=(e,t,n,i)=>{let a=n>=(e.prefix?18:19);a&&r(t,`(`,3);let o=ne(e.operator);e.prefix?(f(t,o),r(t,e.operator,o),V(e.argument,t,18,i)):(V(e.argument,t,19,i),f(t,o),r(t,e.operator,o)),a&&r(t,`)`,9)},rt=(e,t,n,i)=>{let a=n>=18;a&&r(t,`(`,3);let{operator:o}=e,s=!1;if(o.length>1)d(t),r(t,o,0),r(t,` `,3),s=o===`delete`&&e.argument.type===`Literal`&&e.argument.value===1/0;else{let e=te(o);f(t,e),e===10&&t.last===4&&(e=11),r(t,o,e)}s&&r(t,`(0, `,3),V(e.argument,t,17,i),s&&r(t,`)`,9),a&&r(t,`)`,9)},it=(e,t,n,i)=>{let a=n>=5,o=0;a?r(t,`(`,3):o=i&1;let s=5;{let t=l(e.test).type;(t===`TSAsExpression`||t===`TSSatisfiesExpression`)&&(s=13)}V(e.test,t,s,o),r(t,` ? `,3),V(e.consequent,t,3,0),r(t,` : `,3),V(e.alternate,t,3,o),a&&r(t,`)`,9)},at=(e,t,n,i)=>{let a=n>=1;a&&r(t,`(`,3);let o=i&-3,{expressions:s}=e,{length:c}=s;for(let e=0;e<c;e++)e>0&&r(t,`, `,3),V(s[e],t,0,o);a&&r(t,`)`,9)},ot=(e,t,n,i)=>{let a=n>=4,o=a?i&-2:i;a&&r(t,`(`,3),e.async&&(d(t),r(t,`async `,3)),w(e.typeParameters,t);let{returnType:s}=e;s==null?N(e.params,t):(j(e.params,t),S(s,t),r(t,` => `,3));let{body:c}=e;c.type===`BlockStatement`?M(c,t):(t.last=8,V(c,t,1,o)),a&&r(t,`)`,9)},st=(e,t,n)=>{let i=n>=21;i&&r(t,`(`,3),d(t),r(t,`new `,3),V(e.callee,t,20,2),b(e.typeArguments,t),U(e,e.arguments,t),i&&r(t,`)`,9)},ct=(e,t)=>{o(t,"`");let{quasis:n,expressions:i}=e,{length:a}=i,s=n[0];o(t,lt(s));for(let e=0;e<a;e++){r(t,"${",3),V(i[e],t,0,0),o(t,`}`);let a=n[e+1],s=lt(a);s.length,o(t,s)}r(t,"`",3)},lt=e=>{let{raw:t}=e.value;return t.includes(`\r`)&&(t=t.replace(/\r\n?/g,`
|
|
27
|
+
`)),pe(t)},ut=(e,t,n,i)=>{let a=n>=18;a&&r(t,`(`,3),d(t),r(t,`await `,3),V(e.argument,t,17,i),a&&r(t,`)`,9)},dt=(e,t,n)=>{let i=n>=4;i&&r(t,`(`,3),d(t),r(t,`yield`,0),e.delegate&&r(t,`*`,3),e.argument!=null&&(r(t,` `,3),V(e.argument,t,3,0)),i&&r(t,`)`,9)},ft=(e,t,n,a)=>{let s=n>=20||!!(a&2);s&&r(t,`(`,3),d(t),r(t,`import`,0),e.phase!=null&&(o(t,`.`),i(t,e.phase)),r(t,`(`,3),V(e.source,t,1,0),e.options!=null&&(r(t,`, `,3),V(e.options,t,1,0)),r(t,`)`,9),s&&r(t,`)`,9)},pt=(e,t,n,i)=>{n>=19||i&2?(r(t,`(`,3),V(e.expression,t,0,0),r(t,`)`,9)):V(e.expression,t,n,i)},W=(e,t)=>{switch(e.type){case`Identifier`:d(t),i(t,e.name),e.optional&&r(t,`?`,5),e.typeAnnotation!=null&&S(e.typeAnnotation,t);break;case`ObjectPattern`:mt(e,t),e.optional&&r(t,`?`,5),e.typeAnnotation!=null&&S(e.typeAnnotation,t);break;case`ArrayPattern`:gt(e,t),e.optional&&r(t,`?`,5),e.typeAnnotation!=null&&S(e.typeAnnotation,t);break;case`AssignmentPattern`:W(e.left,t),r(t,` = `,3),V(e.right,t,1,0);break;case`RestElement`:r(t,`...`,3),W(e.argument,t),e.typeAnnotation!=null&&S(e.typeAnnotation,t);break;default:throw Error(`Unknown binding pattern type: ${e.type}`)}},mt=(e,t)=>{let{properties:n}=e,{length:i}=n;if(i===0){r(t,`{}`,3);return}r(t,`{ `,3);for(let e=0;e<i;e++){e>0&&r(t,`, `,3);let i=n[e];i.type===`RestElement`?(r(t,`...`,3),W(i.argument,t)):ht(i,t)}r(t,` }`,3)},ht=(e,t)=>{let{key:n,value:i}=e,a=!1;!e.computed&&n.type===`Identifier`&&(i.type===`Identifier`&&n.name===i.name||i.type===`AssignmentPattern`&&i.left.type===`Identifier`&&n.name===i.left.name)&&(a=!0),a||(e.computed?(r(t,`[`,3),V(n,t,1,0),r(t,`]`,9)):G(n,t),r(t,`: `,3)),W(i,t)},G=(e,t)=>{switch(e.type){case`Identifier`:d(t),i(t,e.name);break;case`PrivateIdentifier`:a(t,e.name);break;case`Literal`:typeof e.value==`string`?g(t,e.value):_(e,t,1,0);break;default:V(e,t,1,0)}},gt=(e,t)=>{let{elements:n}=e,{length:i}=n,a=null;if(i>0){let e=n[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}r(t,`[`,3);for(let e=0;e<i;e++){e!==0&&r(t,`, `,3);let o=n[e];o!=null&&W(o,t),e===i-1&&(o==null||a!==null)&&r(t,`,`,3)}a!==null&&(r(t,` `,3),W(a,t)),r(t,`]`,9)},K=(e,t)=>{switch(e.type){case`Identifier`:d(t),i(t,e.name);break;case`MemberExpression`:H(e,t,0);break;case`ObjectPattern`:_t(e,t);break;case`ArrayPattern`:bt(e,t);break;case`TSAsExpression`:case`TSSatisfiesExpression`:V(e,t,13,0);break;case`TSTypeAssertion`:V(e,t,18,0);break;default:V(e,t,1,0)}},_t=(e,t)=>{r(t,`{`,3);let{properties:n}=e,{length:i}=n;for(let e=0;e<i;e++){e>0&&r(t,`, `,3);let i=n[e];i.type===`RestElement`?(r(t,`...`,3),K(i.argument,t)):vt(i,t)}r(t,`}`,3)},vt=(e,t)=>{if(e.shorthand){let{value:n}=e;n.type===`AssignmentPattern`?(d(t),i(t,n.left.name),r(t,` = `,3),V(n.right,t,1,0)):(d(t),i(t,n.name))}else{let{key:n}=e;e.computed?(r(t,`[`,3),V(n,t,1,0),r(t,`]`,9)):G(n,t),r(t,`: `,3),yt(e.value,t)}},yt=(e,t)=>{e.type===`AssignmentPattern`?(K(e.left,t),r(t,` = `,3),V(e.right,t,1,0)):K(e,t)},bt=(e,t)=>{let{elements:n}=e,{length:i}=n,a=null;if(i>0){let e=n[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}r(t,`[`,3);for(let e=0;e<i;e++){e!==0&&r(t,`, `,3);let o=n[e];o!=null&&yt(o,t),e===i-1&&(o==null||a!==null)&&r(t,`,`,3)}a!==null&&(i>0&&r(t,` `,3),r(t,`...`,3),K(a.argument,t)),r(t,`]`,9)},xt=(e,t)=>{p(t),d(t),r(t,`import`,0),e.importKind===`type`&&i(t,` type`),e.phase!=null&&(o(t,` `),i(t,e.phase));let{specifiers:n}=e,{length:a}=n;if(a===0){r(t,` `,3),g(t,e.source.value),q(e.attributes,t),r(t,`;
|
|
28
|
+
`,3);return}let s=!1;for(let e=0;e<a;e++){let o=n[e];switch(o.type){case`ImportDefaultSpecifier`:s?(r(t,` },`,3),s=!1):e===0?r(t,` `,3):r(t,`, `,3),d(t),r(t,o.local.name,0),e===a-1&&r(t,` `,3);break;case`ImportNamespaceSpecifier`:s?(r(t,` },`,3),s=!1):e===0?r(t,` `,3):r(t,`, `,3),r(t,`* as `,3),i(t,o.local.name),r(t,` `,3);break;default:{s?r(t,`, `,3):(e!==0&&r(t,`,`,3),s=!0,r(t,` { `,3)),o.importKind===`type`&&r(t,`type `,3);let n=J(o.imported,t),{local:a}=o;n!==a.name&&(r(t,` as `,3),i(t,a.name));break}}}r(t,s?` } from `:`from `,3),g(t,e.source.value),q(e.attributes,t),r(t,`;
|
|
29
|
+
`,3)},q=(e,t)=>{if(e==null)return;let{length:n}=e;if(n!==0){o(t,` `),r(t,`with { `,3);for(let a=0;a<n;a++){a>0&&r(t,`, `,3);let n=e[a],{key:o}=n;o.type===`Identifier`?i(t,o.name):g(t,o.value),r(t,`: `,3),g(t,n.value.value)}r(t,` }`,3)}},J=(e,t)=>e.type===`Identifier`?(d(t),i(t,e.name),e.name):(g(t,e.value),e.value),St=(e,t)=>{p(t),r(t,`export `,3);let{declaration:n}=e;if(n!=null){switch(n.type){case`VariableDeclaration`:Z(n,t,0),r(t,`;
|
|
30
|
+
`,3);break;case`FunctionDeclaration`:case`TSDeclareFunction`:A(n,t),r(t,`
|
|
31
|
+
`,3);break;case`ClassDeclaration`:P(n,t),r(t,`
|
|
32
|
+
`,3);break;case`TSModuleDeclaration`:D(n,t),r(t,`
|
|
33
|
+
`,3);break;case`TSInterfaceDeclaration`:O(n,t),r(t,`
|
|
34
|
+
`,3);break;case`TSEnumDeclaration`:ze(n,t),r(t,`
|
|
35
|
+
`,3);break;case`TSTypeAliasDeclaration`:Le(n,t),r(t,`;
|
|
36
|
+
`,3);break;case`TSImportEqualsDeclaration`:k(n,t),r(t,`;
|
|
37
|
+
`,3);break;default:throw Error(`Unknown export declaration type: ${n.type}`)}return}e.exportKind===`type`&&r(t,`type `,3),r(t,`{`,3);let{specifiers:i}=e,{length:a}=i;if(a>0){r(t,` `,3);for(let e=0;e<a;e++){e>0&&r(t,`, `,3);let n=i[e];n.exportKind===`type`&&r(t,`type `,3),J(n.local,t)!==(n.exported.type===`Identifier`?n.exported.name:n.exported.value)&&(r(t,` as `,3),J(n.exported,t))}r(t,` `,3)}r(t,`}`,3),e.source!=null&&(r(t,` from `,3),g(t,e.source.value),q(e.attributes,t)),r(t,`;
|
|
38
|
+
`,3)},Ct=(e,t)=>{p(t),r(t,e.exportKind===`type`?`export type *`:`export *`,3),e.exported!=null&&(r(t,` as `,3),J(e.exported,t)),r(t,` from `,3),g(t,e.source.value),q(e.attributes,t),r(t,`;
|
|
39
|
+
`,3)},wt=(e,t)=>{p(t),r(t,`export default `,3);let{declaration:n}=e;switch(n.type){case`FunctionDeclaration`:case`TSDeclareFunction`:A(n,t),r(t,`
|
|
40
|
+
`,3);break;case`ClassDeclaration`:P(n,t),r(t,`
|
|
41
|
+
`,3);break;case`TSInterfaceDeclaration`:O(n,t),r(t,`
|
|
42
|
+
`,3);break;default:t.last=6,V(n,t,1,0),r(t,`;
|
|
43
|
+
`,3)}},Tt=(e,t)=>{e.hashbang!=null&&(o(t,`#!`),o(t,e.hashbang.value),r(t,`
|
|
44
|
+
`,3)),Y(e.body,t)},Y=(e,t)=>{let{length:n}=e;if(n===0)return;let i=0,a=e[0];for(;a.type===`ExpressionStatement`;)if(a.directive!=null){if(Et(a,t),++i>=n)return;a=e[i]}else{let e=l(a.expression);e.type===`Literal`&&typeof e.value==`string`&&(t.indentLevel>0||t.pendingIndentAsSpace,p(t),o(t,`(`),g(t,e.value),r(t,`);
|
|
45
|
+
`,3),i++);break}for(;i<n;i++)X(e[i],t)},Et=(e,t)=>{p(t);let{directive:n}=e,i=`"`,{length:a}=n;for(let e=0;e<a;e++){let t=n[e];if(t===`"`){i=`'`;break}if(t===`'`)break;t===`\\`&&e++}o(t,i),o(t,n),o(t,i),r(t,`;
|
|
46
|
+
`,3)},X=(e,t)=>{switch(e.type){case`ExpressionStatement`:Dt(e,t);break;case`VariableDeclaration`:p(t),Z(e,t,0),r(t,`;
|
|
47
|
+
`,3);break;case`BlockStatement`:p(t),Q(e,t),r(t,`
|
|
48
|
+
`,3);break;case`IfStatement`:p(t),Ot(e,t);break;case`ReturnStatement`:At(e,t);break;case`FunctionDeclaration`:p(t),A(e,t),r(t,`
|
|
49
|
+
`,3);break;case`ForStatement`:It(e,t);break;case`WhileStatement`:Pt(e,t);break;case`DoWhileStatement`:Ft(e,t);break;case`SwitchStatement`:Mt(e,t);break;case`BreakStatement`:p(t),d(t),r(t,`break`,0),e.label!=null&&(r(t,` `,3),i(t,e.label.name)),r(t,`;
|
|
50
|
+
`,3);break;case`ContinueStatement`:p(t),d(t),r(t,`continue`,0),e.label!=null&&(r(t,` `,3),i(t,e.label.name)),r(t,`;
|
|
51
|
+
`,3);break;case`TryStatement`:jt(e,t);break;case`ThrowStatement`:p(t),d(t),r(t,`throw `,3),V(e.argument,t,0,0),r(t,`;
|
|
52
|
+
`,3);break;case`ForInStatement`:Lt(e,t);break;case`ForOfStatement`:Rt(e,t);break;case`ClassDeclaration`:p(t),P(e,t),r(t,`
|
|
53
|
+
`,3);break;case`LabeledStatement`:p(t),d(t),i(t,e.label.name),r(t,`:`,3),$(e.body,t);break;case`EmptyStatement`:p(t),r(t,`;
|
|
54
|
+
`,3);break;case`ImportDeclaration`:xt(e,t);break;case`ExportNamedDeclaration`:St(e,t);break;case`ExportDefaultDeclaration`:wt(e,t);break;case`ExportAllDeclaration`:Ct(e,t);break;case`WithStatement`:p(t),d(t),r(t,`with(`,3),V(e.object,t,0,0),r(t,`)`,9),$(e.body,t);break;case`DebuggerStatement`:p(t),d(t),r(t,`debugger;
|
|
55
|
+
`,3);break;case`TSModuleDeclaration`:p(t),D(e,t),r(t,`
|
|
56
|
+
`,3);break;case`TSInterfaceDeclaration`:p(t),O(e,t),r(t,`
|
|
57
|
+
`,3);break;case`TSTypeAliasDeclaration`:p(t),Le(e,t),r(t,`;
|
|
58
|
+
`,3);break;case`TSEnumDeclaration`:p(t),ze(e,t),r(t,`
|
|
59
|
+
`,3);break;case`TSImportEqualsDeclaration`:p(t),k(e,t),r(t,`;
|
|
60
|
+
`,3);break;case`TSDeclareFunction`:p(t),A(e,t),r(t,`
|
|
61
|
+
`,3);break;case`TSExportAssignment`:p(t),r(t,`export = `,3),V(e.expression,t,0,0),r(t,`;
|
|
62
|
+
`,3);break;case`TSNamespaceExportDeclaration`:p(t),r(t,`export as namespace `,3),i(t,e.id.name),r(t,`;
|
|
63
|
+
`,3);break;default:throw Error(`Unknown statement type: ${e.type}`)}},Dt=(e,t)=>{t.indentLevel>0||t.pendingIndentAsSpace,p(t),t.last=7,V(e.expression,t,0,0),r(t,`;
|
|
64
|
+
`,3)},Z=(e,t,n)=>{d(t),e.declare?(r(t,`declare `,3),i(t,e.kind)):r(t,e.kind,0);let{declarations:a}=e,{length:o}=a;o>0&&r(t,` `,3);for(let e=0;e<o;e++){e>0&&r(t,`, `,3);let o=a[e],{id:s}=o;o.definite?(d(t),i(t,s.name),r(t,`!`,10),s.typeAnnotation!=null&&S(s.typeAnnotation,t)):W(s,t),o.init!=null&&(r(t,` = `,3),V(o.init,t,1,n))}},Q=(e,t)=>{let{body:n}=e,{length:i}=n;if(i===0){o(t,`{`),r(t,`}`,3);return}r(t,`{
|
|
65
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++)X(n[e],t);t.indentLevel--,p(t),r(t,`}`,3)},Ot=(e,t)=>{d(t),r(t,`if (`,3),V(e.test,t,0,0);let{consequent:n,alternate:a}=e;n.type===`BlockStatement`?(r(t,`) `,3),Q(n,t),r(t,a==null?`
|
|
66
|
+
`:` `,3)):kt(n)?(o(t,`) `),r(t,`{
|
|
67
|
+
`,3),t.indentLevel++,X(n,t),t.indentLevel--,p(t),r(t,`}`,3),r(t,a==null?`
|
|
68
|
+
`:` `,3)):(r(t,`)`,9),$(n,t),a!=null&&p(t)),a!=null&&(d(t),i(t,`else`),a.type===`BlockStatement`?(r(t,` `,3),Q(a,t),r(t,`
|
|
69
|
+
`,3)):a.type===`IfStatement`?(r(t,` `,3),Ot(a,t)):$(a,t))},kt=e=>{for(;;)switch(e.type){case`IfStatement`:if(e.alternate==null)return!0;e=e.alternate;break;case`ForStatement`:case`ForOfStatement`:case`ForInStatement`:case`WhileStatement`:case`WithStatement`:case`LabeledStatement`:e=e.body;break;default:return!1}},At=(e,t)=>{p(t),d(t);let{argument:n}=e;n==null?r(t,`return`,0):(r(t,`return `,3),V(n,t,0,0)),r(t,`;
|
|
70
|
+
`,3)},jt=(e,t)=>{p(t),d(t),r(t,`try `,3),Q(e.block,t);let{handler:n}=e;n!=null&&(i(t,` catch`),n.param!=null&&(r(t,` (`,3),W(n.param,t),r(t,`)`,9)),r(t,` `,3),Q(n.body,t)),e.finalizer!=null&&(r(t,` finally `,3),Q(e.finalizer,t)),r(t,`
|
|
71
|
+
`,3)},Mt=(e,t)=>{p(t),d(t),r(t,`switch (`,3),V(e.discriminant,t,0,0),r(t,`) `,3);let{cases:n}=e,{length:i}=n;if(i===0){o(t,`{`),r(t,`}
|
|
72
|
+
`,3);return}r(t,`{
|
|
73
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++)Nt(n[e],t);t.indentLevel--,p(t),r(t,`}
|
|
74
|
+
`,3)},Nt=(e,t)=>{p(t),e.test==null?r(t,`default`,0):(r(t,`case `,3),V(e.test,t,0,0)),r(t,`:`,3);let{consequent:n}=e,{length:i}=n;if(i===1){$(n[0],t);return}r(t,`
|
|
75
|
+
`,3),t.indentLevel++;for(let e=0;e<i;e++)X(n[e],t);t.indentLevel--},Pt=(e,t)=>{p(t),d(t),r(t,`while (`,3),V(e.test,t,0,0),r(t,`)`,9),$(e.body,t)},Ft=(e,t)=>{p(t),d(t),r(t,`do`,0);let{body:n}=e;n.type===`BlockStatement`?(r(t,` `,3),Q(n,t),r(t,` `,3)):n.type===`EmptyStatement`?(p(t),r(t,`;
|
|
76
|
+
`,3)):(r(t,`
|
|
77
|
+
`,3),t.indentLevel++,X(n,t),t.indentLevel--,p(t)),r(t,`while (`,3),V(e.test,t,0,0),r(t,`);
|
|
78
|
+
`,3)},It=(e,t)=>{p(t),d(t),r(t,`for (`,3);let{init:n}=e;n!=null&&(n.type===`VariableDeclaration`?Z(n,t,1):V(n,t,0,1));let{test:i,update:a}=e;i==null?r(t,`;`,3):(r(t,`; `,3),V(i,t,0,0)),a==null?r(t,`;)`,9):(r(t,`; `,3),V(a,t,0,0),r(t,`)`,9)),$(e.body,t)},Lt=(e,t)=>{p(t),d(t),r(t,`for (`,3);let{left:n}=e;n.type===`VariableDeclaration`?Z(n,t,1):K(n,t),r(t,` in `,3),V(e.right,t,0,0),r(t,`)`,9),$(e.body,t)},Rt=(e,t)=>{p(t),d(t),r(t,`for`,0),e.await&&i(t,` await`),r(t,` (`,3);let{left:n}=e;if(n.type===`VariableDeclaration`)Z(n,t,0);else{let i=l(n),a=zt(n)||!e.await&&i.type===`Identifier`&&i.name===`async`;a&&r(t,`(`,3),K(n,t),a&&r(t,`)`,9)}r(t,` of `,3),V(e.right,t,1,0),r(t,`)`,9),$(e.body,t)},zt=e=>{for(;;)switch(e.type){case`Identifier`:return e.name===`let`;case`MemberExpression`:if(e.computed){let t=l(e.object);if(t.type===`Identifier`&&t.name===`let`)return!1}e=e.object;break;case`ParenthesizedExpression`:e=e.expression;break;default:return!1}},$=(e,t)=>{e.type===`BlockStatement`?(r(t,` `,3),Q(e,t),r(t,`
|
|
79
|
+
`,3)):e.type===`EmptyStatement`?r(t,`;
|
|
80
|
+
`,3):(t.pendingIndentAsSpace=!0,X(e,t))},Bt=(e,n,r)=>{e.type===`Program`?Tt(e,n):X(e,n);let{outputChunks:i}=n,a;return i===null?(a=n.output,t(a)):(i.push(n.output),a=i.join(``),n.outputChunks=null),{code:a,map:null}};export{Bt as printSync};
|