crankscript 0.11.9-beta.0 → 0.11.9-beta.1
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/assets/transformClassDeclaration/transformConstructor.js +9 -0
- package/assets/transformClassDeclaration/transformConstructor.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/TranspileCommand/fn/_tests/test-super/src/index.js +1 -0
- package/src/commands/TranspileCommand/fn/_tests/test-super/src/index.js.map +1 -1
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "transformConstructor", {
|
|
10
10
|
});
|
11
11
|
const _extends = require("@swc/helpers/_/_extends");
|
12
12
|
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
13
|
+
const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
|
13
14
|
const _typescripttolua = /*#__PURE__*/ _interop_require_wildcard._(require("typescript-to-lua"));
|
14
15
|
const _scope = require("typescript-to-lua/dist/transformation/utils/scope");
|
15
16
|
const _fields = require("typescript-to-lua/dist/transformation/visitors/class/members/fields");
|
@@ -21,6 +22,14 @@ const transformConstructor = (context, className, instanceFields, constructor)=>
|
|
21
22
|
const params = (0, _function.transformParameters)(context, constructor == null ? void 0 : constructor.parameters, _typescripttolua.createIdentifier('self'))[0];
|
22
23
|
const classInstanceFields = (0, _fields.transformClassInstanceFields)(context, instanceFields);
|
23
24
|
bodyStatements.push(...classInstanceFields);
|
25
|
+
const parameterAssignments = constructor == null ? void 0 : constructor.parameters.filter((param)=>param.name && param.modifiers && param.modifiers.length > 0).map((param)=>{
|
26
|
+
if (_typescript.isIdentifier(param.name)) {
|
27
|
+
const paramName = param.name.text;
|
28
|
+
return _typescripttolua.createAssignmentStatement(_typescripttolua.createTableIndexExpression(_typescripttolua.createIdentifier('self'), _typescripttolua.createStringLiteral(paramName)), _typescripttolua.createIdentifier(paramName));
|
29
|
+
}
|
30
|
+
return undefined;
|
31
|
+
}).filter((stmt)=>stmt !== undefined);
|
32
|
+
bodyStatements.push(...parameterAssignments);
|
24
33
|
if (constructor == null ? void 0 : constructor.body) {
|
25
34
|
const body = (0, _function.transformFunctionBodyContent)(context, constructor.body);
|
26
35
|
bodyStatements.push(...body);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/transformConstructor.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { ScopeType } from 'typescript-to-lua/dist/transformation/utils/scope';\nimport { transformClassInstanceFields } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n transformFunctionBodyContent,\n transformParameters,\n} from 'typescript-to-lua/dist/transformation/visitors/function';\n\nexport const transformConstructor = (\n context: TransformationContext,\n className: tstl.Identifier,\n instanceFields: ts.PropertyDeclaration[],\n constructor: ts.ConstructorDeclaration\n): tstl.Statement | undefined => {\n const methodName = 'init';\n context.pushScope(ScopeType.Function);\n let bodyStatements: tstl.Statement[] = [];\n const params = transformParameters(\n context,\n constructor?.parameters,\n tstl.createIdentifier('self')\n )[0];\n const classInstanceFields = transformClassInstanceFields(\n context,\n instanceFields\n );\n\n bodyStatements.push(...classInstanceFields);\n\n if (constructor?.body) {\n const body = transformFunctionBodyContent(context, constructor.body);\n\n bodyStatements.push(...body);\n bodyStatements = bodyStatements.reduce((previous, current) => {\n if (\n tstl.isExpressionStatement(current) &&\n tstl.isCallExpression(current.expression) &&\n tstl.isTableIndexExpression(current.expression.expression) &&\n tstl.isStringLiteral(current.expression.expression.index) &&\n current.expression.expression.index.value === '____constructor'\n ) {\n return [\n {\n ...current,\n expression: {\n ...current.expression,\n expression: {\n ...current.expression.expression,\n index: tstl.createStringLiteral('init'),\n },\n params: current.expression.params.slice(1),\n },\n },\n ...previous,\n ];\n }\n\n return [...previous, current];\n }, [] as tstl.Statement[]);\n }\n context.popScope();\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n className,\n tstl.createStringLiteral(methodName)\n ),\n tstl.createFunctionExpression(tstl.createBlock(bodyStatements), params)\n );\n};\n"],"names":["transformConstructor","context","className","instanceFields","constructor","methodName","pushScope","ScopeType","Function","bodyStatements","params","transformParameters","parameters","tstl","createIdentifier","classInstanceFields","transformClassInstanceFields","push","body","transformFunctionBodyContent","reduce","previous","current","isExpressionStatement","isCallExpression","expression","isTableIndexExpression","isStringLiteral","index","value","
|
1
|
+
{"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/transformConstructor.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { ScopeType } from 'typescript-to-lua/dist/transformation/utils/scope';\nimport { transformClassInstanceFields } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n transformFunctionBodyContent,\n transformParameters,\n} from 'typescript-to-lua/dist/transformation/visitors/function';\n\nexport const transformConstructor = (\n context: TransformationContext,\n className: tstl.Identifier,\n instanceFields: ts.PropertyDeclaration[],\n constructor: ts.ConstructorDeclaration\n): tstl.Statement | undefined => {\n const methodName = 'init';\n context.pushScope(ScopeType.Function);\n let bodyStatements: tstl.Statement[] = [];\n const params = transformParameters(\n context,\n constructor?.parameters,\n tstl.createIdentifier('self')\n )[0];\n const classInstanceFields = transformClassInstanceFields(\n context,\n instanceFields\n );\n\n bodyStatements.push(...classInstanceFields);\n\n const parameterAssignments = constructor?.parameters\n .filter(param => param.name &&\n param.modifiers &&\n param.modifiers.length > 0)\n .map(param => {\n if (ts.isIdentifier(param.name)) {\n const paramName = param.name.text;\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n tstl.createIdentifier('self'),\n tstl.createStringLiteral(paramName)\n ),\n tstl.createIdentifier(paramName)\n );\n }\n return undefined;\n })\n .filter((stmt): stmt is tstl.AssignmentStatement => stmt !== undefined);\n\n bodyStatements.push(...parameterAssignments);\n\n if (constructor?.body) {\n const body = transformFunctionBodyContent(context, constructor.body);\n\n bodyStatements.push(...body);\n bodyStatements = bodyStatements.reduce((previous, current) => {\n if (\n tstl.isExpressionStatement(current) &&\n tstl.isCallExpression(current.expression) &&\n tstl.isTableIndexExpression(current.expression.expression) &&\n tstl.isStringLiteral(current.expression.expression.index) &&\n current.expression.expression.index.value === '____constructor'\n ) {\n return [\n {\n ...current,\n expression: {\n ...current.expression,\n expression: {\n ...current.expression.expression,\n index: tstl.createStringLiteral('init'),\n },\n params: current.expression.params.slice(1),\n },\n },\n ...previous,\n ];\n }\n\n return [...previous, current];\n }, [] as tstl.Statement[]);\n }\n context.popScope();\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n className,\n tstl.createStringLiteral(methodName)\n ),\n tstl.createFunctionExpression(tstl.createBlock(bodyStatements), params)\n );\n};\n"],"names":["transformConstructor","context","className","instanceFields","constructor","methodName","pushScope","ScopeType","Function","bodyStatements","params","transformParameters","parameters","tstl","createIdentifier","classInstanceFields","transformClassInstanceFields","push","parameterAssignments","filter","param","name","modifiers","length","map","ts","isIdentifier","paramName","text","createAssignmentStatement","createTableIndexExpression","createStringLiteral","undefined","stmt","body","transformFunctionBodyContent","reduce","previous","current","isExpressionStatement","isCallExpression","expression","isTableIndexExpression","isStringLiteral","index","value","slice","popScope","createFunctionExpression","createBlock"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;;;sEAVO;2EAEE;uBACI;wBACmB;0BAItC;AAEA,MAAMA,uBAAuB,CAChCC,SACAC,WACAC,gBACAC;IAEA,MAAMC,aAAa;IACnBJ,QAAQK,SAAS,CAACC,gBAAS,CAACC,QAAQ;IACpC,IAAIC,iBAAmC,EAAE;IACzC,MAAMC,SAASC,IAAAA,6BAAmB,EAC9BV,SACAG,+BAAAA,YAAaQ,UAAU,EACvBC,iBAAKC,gBAAgB,CAAC,QACzB,CAAC,EAAE;IACJ,MAAMC,sBAAsBC,IAAAA,oCAA4B,EACpDf,SACAE;IAGJM,eAAeQ,IAAI,IAAIF;IAEvB,MAAMG,uBAAuBd,+BAAAA,YAAaQ,UAAU,CAC/CO,MAAM,CAACC,CAAAA,QAASA,MAAMC,IAAI,IACvBD,MAAME,SAAS,IACfF,MAAME,SAAS,CAACC,MAAM,GAAG,GAC5BC,GAAG,CAACJ,CAAAA;QACD,IAAIK,YAAGC,YAAY,CAACN,MAAMC,IAAI,GAAG;YAC7B,MAAMM,YAAYP,MAAMC,IAAI,CAACO,IAAI;YACjC,OAAOf,iBAAKgB,yBAAyB,CACjChB,iBAAKiB,0BAA0B,CAC3BjB,iBAAKC,gBAAgB,CAAC,SACtBD,iBAAKkB,mBAAmB,CAACJ,aAE7Bd,iBAAKC,gBAAgB,CAACa;QAE9B;QACA,OAAOK;IACX,GACCb,MAAM,CAAC,CAACc,OAA2CA,SAASD;IAEjEvB,eAAeQ,IAAI,IAAIC;IAEvB,IAAId,+BAAAA,YAAa8B,IAAI,EAAE;QACnB,MAAMA,OAAOC,IAAAA,sCAA4B,EAAClC,SAASG,YAAY8B,IAAI;QAEnEzB,eAAeQ,IAAI,IAAIiB;QACvBzB,iBAAiBA,eAAe2B,MAAM,CAAC,CAACC,UAAUC;YAC9C,IACIzB,iBAAK0B,qBAAqB,CAACD,YAC3BzB,iBAAK2B,gBAAgB,CAACF,QAAQG,UAAU,KACxC5B,iBAAK6B,sBAAsB,CAACJ,QAAQG,UAAU,CAACA,UAAU,KACzD5B,iBAAK8B,eAAe,CAACL,QAAQG,UAAU,CAACA,UAAU,CAACG,KAAK,KACxDN,QAAQG,UAAU,CAACA,UAAU,CAACG,KAAK,CAACC,KAAK,KAAK,mBAChD;gBACE,OAAO;oBACH,eACOP;wBACHG,YAAY,eACLH,QAAQG,UAAU;4BACrBA,YAAY,eACLH,QAAQG,UAAU,CAACA,UAAU;gCAChCG,OAAO/B,iBAAKkB,mBAAmB,CAAC;;4BAEpCrB,QAAQ4B,QAAQG,UAAU,CAAC/B,MAAM,CAACoC,KAAK,CAAC;;;uBAG7CT;iBACN;YACL;YAEA,OAAO;mBAAIA;gBAAUC;aAAQ;QACjC,GAAG,EAAE;IACT;IACArC,QAAQ8C,QAAQ;IAChB,OAAOlC,iBAAKgB,yBAAyB,CACjChB,iBAAKiB,0BAA0B,CAC3B5B,WACAW,iBAAKkB,mBAAmB,CAAC1B,cAE7BQ,iBAAKmC,wBAAwB,CAACnC,iBAAKoC,WAAW,CAACxC,iBAAiBC;AAExE"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../libs/cli/src/commands/TranspileCommand/fn/_tests/test-super/src/index.ts"],"sourcesContent":["const getString = () => {\n return 'some-string';\n};\n\nclass A {\n constructor(firstArgument: number, otherArgument: string) {\n print(firstArgument);\n print(otherArgument);\n }\n}\n\nclass B extends A {\n constructor(\n firstArgument: number,\n secondArgument: number,\n thirdArgument: number\n ) {\n print(firstArgument);\n print(secondArgument);\n print(thirdArgument);\n\n super(firstArgument, getString() ?? 'hello');\n }\n}\n\nplaydate.update = () => {\n printTable(new B(0, 1, 2));\n};\n"],"names":["getString","A","constructor","firstArgument","otherArgument","print","B","secondArgument","thirdArgument","playdate","update","printTable"],"rangeMappings":"
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../libs/cli/src/commands/TranspileCommand/fn/_tests/test-super/src/index.ts"],"sourcesContent":["const getString = () => {\n return 'some-string';\n};\n\nclass A {\n constructor(firstArgument: number, otherArgument: string) {\n print(firstArgument);\n print(otherArgument);\n }\n}\n\nclass B extends A {\n constructor(\n private readonly firstArgument: number,\n secondArgument: number,\n thirdArgument: number\n ) {\n print(firstArgument);\n print(secondArgument);\n print(thirdArgument);\n\n super(firstArgument, getString() ?? 'hello');\n }\n}\n\nplaydate.update = () => {\n printTable(new B(0, 1, 2));\n};\n"],"names":["getString","A","constructor","firstArgument","otherArgument","print","B","secondArgument","thirdArgument","playdate","update","printTable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,MAAMA,YAAY;IACd,OAAO;AACX;AAEA,IAAA,AAAMC,IAAN,MAAMA;IACFC,YAAYC,aAAqB,EAAEC,aAAqB,CAAE;QACtDC,MAAMF;QACNE,MAAMD;IACV;AACJ;AAEA,IAAA,AAAME,IAAN,MAAMA,UAAUL;IACZC,YACI,AAAiBC,aAAqB,EACtCI,cAAsB,EACtBC,aAAqB,CACvB;QACEH,MAAMF;QACNE,MAAME;QACNF,MAAMG;YAEeR;QAArB,KAAK,CAACG,eAAeH,CAAAA,aAAAA,uBAAAA,aAAe;aARnBG,gBAAAA;IASrB;AACJ;AAEAM,SAASC,MAAM,GAAG;IACdC,WAAW,IAAIL,EAAE,GAAG,GAAG;AAC3B"}
|