crankscript 0.11.11 → 0.11.12

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.
@@ -59,10 +59,8 @@ const getTransformClassDeclaration = (importMap)=>{
59
59
  const staticFieldStatements = staticFields.map((field)=>(0, _fields.transformStaticPropertyDeclaration)(context, field, className)).filter((stmt)=>stmt !== undefined);
60
60
  statements.push(...staticFieldStatements);
61
61
  const constructor = declaration.members.find((n)=>_typescript.isConstructorDeclaration(n) && n.body !== undefined);
62
- if (!constructor) {
63
- return [];
64
- }
65
- const transformedConstructor = (0, _transformConstructor.transformConstructor)(context, className, instanceFields, constructor);
62
+ const constructorToUse = constructor || _typescript.factory.createConstructorDeclaration(undefined, [], _typescript.factory.createBlock([], true));
63
+ const transformedConstructor = (0, _transformConstructor.transformConstructor)(context, className, instanceFields, constructorToUse);
66
64
  if (transformedConstructor) {
67
65
  statements.push(transformedConstructor);
68
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/getTransformClassDeclaration.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor, TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { transformStaticPropertyDeclaration } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n getExtendedNode,\n isStaticNode,\n} from 'typescript-to-lua/dist/transformation/visitors/class/utils';\nimport { getExportedClassDeclarationStatements } from './getExportedClassDeclarationStatements';\nimport { ImportMap } from '../ImportMap';\nimport { ClassSuperInfo } from '../types';\nimport { createClassCall } from './createClasCall';\nimport { transformConstructor } from './transformConstructor';\nimport { transformMethodDeclaration } from './transformMethodDeclaration';\n\nconst hasSuperInfos = (\n context: TransformationContext,\n): context is TransformationContext & {\n classSuperInfos?: [ClassSuperInfo];\n} => {\n return 'classSuperInfos' in context;\n};\n\nexport const getTransformClassDeclaration = (importMap: ImportMap) => {\n return ((declaration, context: TransformationContext) => {\n importMap.add('object');\n\n let className: tstl.Identifier;\n if (declaration.name) {\n className = tstl.createIdentifier(declaration.name.text);\n } else {\n className = tstl.createIdentifier(\n context.createTempName('class'),\n declaration,\n );\n }\n\n const extension = getExtendedNode(declaration);\n\n if (hasSuperInfos(context)) {\n if (context.classSuperInfos) {\n context.classSuperInfos.push({\n className,\n extendedTypeNode: extension,\n });\n } else {\n context.classSuperInfos = [\n { className, extendedTypeNode: extension },\n ];\n }\n }\n\n // Get all properties with value\n const properties = declaration.members\n .filter(ts.isPropertyDeclaration)\n .filter(member => member.initializer);\n\n // Divide properties into static and non-static\n const instanceFields = properties.filter(prop => !isStaticNode(prop));\n const staticFields = properties.filter(prop => isStaticNode(prop));\n\n const statements: tstl.Statement[] = [];\n\n // class('X')\n statements.push(createClassCall(context, className, extension));\n\n // function X:init()\n // X.super.init(self)\n // end\n\n const staticFieldStatements = staticFields\n .map(field =>\n transformStaticPropertyDeclaration(context, field, className),\n )\n .filter(\n (stmt): stmt is tstl.AssignmentStatement => stmt !== undefined,\n );\n statements.push(...staticFieldStatements);\n\n const constructor = declaration.members.find(\n (n): n is ts.ConstructorDeclaration =>\n ts.isConstructorDeclaration(n) && n.body !== undefined,\n );\n\n if (!constructor) {\n return [];\n }\n\n const transformedConstructor = transformConstructor(\n context,\n className,\n instanceFields,\n constructor,\n );\n if (transformedConstructor) {\n statements.push(transformedConstructor);\n }\n\n const methods = declaration.members\n .filter(ts.isMethodDeclaration)\n .map(method =>\n transformMethodDeclaration(context, method, className),\n )\n .filter((method): method is tstl.Statement => method !== undefined);\n statements.push(...methods);\n\n statements.push(\n ...getExportedClassDeclarationStatements(className, declaration),\n );\n\n return statements;\n }) satisfies FunctionVisitor<ts.ClassLikeDeclaration>;\n};\n"],"names":["getTransformClassDeclaration","hasSuperInfos","context","importMap","declaration","add","className","name","tstl","createIdentifier","text","createTempName","extension","getExtendedNode","classSuperInfos","push","extendedTypeNode","properties","members","filter","ts","isPropertyDeclaration","member","initializer","instanceFields","prop","isStaticNode","staticFields","statements","createClassCall","staticFieldStatements","map","field","transformStaticPropertyDeclaration","stmt","undefined","constructor","find","n","isConstructorDeclaration","body","transformedConstructor","transformConstructor","methods","isMethodDeclaration","method","transformMethodDeclaration","getExportedClassDeclarationStatements"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAuBaA;;;eAAAA;;;;sEAvBO;2EAEE;wBAC6B;uBAI5C;uDAC+C;gCAGtB;sCACK;4CACM;AAE3C,MAAMC,gBAAgB,CAClBC;IAIA,OAAO,qBAAqBA;AAChC;AAEO,MAAMF,+BAA+B,CAACG;IACzC,OAAQ,CAACC,aAAaF;QAClBC,UAAUE,GAAG,CAAC;QAEd,IAAIC;QACJ,IAAIF,YAAYG,IAAI,EAAE;YAClBD,YAAYE,iBAAKC,gBAAgB,CAACL,YAAYG,IAAI,CAACG,IAAI;QAC3D,OAAO;YACHJ,YAAYE,iBAAKC,gBAAgB,CAC7BP,QAAQS,cAAc,CAAC,UACvBP;QAER;QAEA,MAAMQ,YAAYC,IAAAA,sBAAe,EAACT;QAElC,IAAIH,cAAcC,UAAU;YACxB,IAAIA,QAAQY,eAAe,EAAE;gBACzBZ,QAAQY,eAAe,CAACC,IAAI,CAAC;oBACzBT;oBACAU,kBAAkBJ;gBACtB;YACJ,OAAO;gBACHV,QAAQY,eAAe,GAAG;oBACtB;wBAAER;wBAAWU,kBAAkBJ;oBAAU;iBAC5C;YACL;QACJ;QAEA,gCAAgC;QAChC,MAAMK,aAAab,YAAYc,OAAO,CACjCC,MAAM,CAACC,YAAGC,qBAAqB,EAC/BF,MAAM,CAACG,CAAAA,SAAUA,OAAOC,WAAW;QAExC,+CAA+C;QAC/C,MAAMC,iBAAiBP,WAAWE,MAAM,CAACM,CAAAA,OAAQ,CAACC,IAAAA,mBAAY,EAACD;QAC/D,MAAME,eAAeV,WAAWE,MAAM,CAACM,CAAAA,OAAQC,IAAAA,mBAAY,EAACD;QAE5D,MAAMG,aAA+B,EAAE;QAEvC,aAAa;QACbA,WAAWb,IAAI,CAACc,IAAAA,+BAAe,EAAC3B,SAASI,WAAWM;QAEpD,oBAAoB;QACpB,uBAAuB;QACvB,MAAM;QAEN,MAAMkB,wBAAwBH,aACzBI,GAAG,CAACC,CAAAA,QACDC,IAAAA,0CAAkC,EAAC/B,SAAS8B,OAAO1B,YAEtDa,MAAM,CACH,CAACe,OAA2CA,SAASC;QAE7DP,WAAWb,IAAI,IAAIe;QAEnB,MAAMM,cAAchC,YAAYc,OAAO,CAACmB,IAAI,CACxC,CAACC,IACGlB,YAAGmB,wBAAwB,CAACD,MAAMA,EAAEE,IAAI,KAAKL;QAGrD,IAAI,CAACC,aAAa;YACd,OAAO,EAAE;QACb;QAEA,MAAMK,yBAAyBC,IAAAA,0CAAoB,EAC/CxC,SACAI,WACAkB,gBACAY;QAEJ,IAAIK,wBAAwB;YACxBb,WAAWb,IAAI,CAAC0B;QACpB;QAEA,MAAME,UAAUvC,YAAYc,OAAO,CAC9BC,MAAM,CAACC,YAAGwB,mBAAmB,EAC7Bb,GAAG,CAACc,CAAAA,SACDC,IAAAA,sDAA0B,EAAC5C,SAAS2C,QAAQvC,YAE/Ca,MAAM,CAAC,CAAC0B,SAAqCA,WAAWV;QAC7DP,WAAWb,IAAI,IAAI4B;QAEnBf,WAAWb,IAAI,IACRgC,IAAAA,4EAAqC,EAACzC,WAAWF;QAGxD,OAAOwB;IACX;AACJ"}
1
+ {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/getTransformClassDeclaration.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor, TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { transformStaticPropertyDeclaration } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n getExtendedNode,\n isStaticNode,\n} from 'typescript-to-lua/dist/transformation/visitors/class/utils';\nimport { getExportedClassDeclarationStatements } from './getExportedClassDeclarationStatements';\nimport { ImportMap } from '../ImportMap';\nimport { ClassSuperInfo } from '../types';\nimport { createClassCall } from './createClasCall';\nimport { transformConstructor } from './transformConstructor';\nimport { transformMethodDeclaration } from './transformMethodDeclaration';\n\nconst hasSuperInfos = (\n context: TransformationContext,\n): context is TransformationContext & {\n classSuperInfos?: [ClassSuperInfo];\n} => {\n return 'classSuperInfos' in context;\n};\n\nexport const getTransformClassDeclaration = (importMap: ImportMap) => {\n return ((declaration, context: TransformationContext) => {\n importMap.add('object');\n\n let className: tstl.Identifier;\n if (declaration.name) {\n className = tstl.createIdentifier(declaration.name.text);\n } else {\n className = tstl.createIdentifier(\n context.createTempName('class'),\n declaration,\n );\n }\n\n const extension = getExtendedNode(declaration);\n\n if (hasSuperInfos(context)) {\n if (context.classSuperInfos) {\n context.classSuperInfos.push({\n className,\n extendedTypeNode: extension,\n });\n } else {\n context.classSuperInfos = [\n { className, extendedTypeNode: extension },\n ];\n }\n }\n\n // Get all properties with value\n const properties = declaration.members\n .filter(ts.isPropertyDeclaration)\n .filter(member => member.initializer);\n\n // Divide properties into static and non-static\n const instanceFields = properties.filter(prop => !isStaticNode(prop));\n const staticFields = properties.filter(prop => isStaticNode(prop));\n\n const statements: tstl.Statement[] = [];\n\n // class('X')\n statements.push(createClassCall(context, className, extension));\n\n // function X:init()\n // X.super.init(self)\n // end\n\n const staticFieldStatements = staticFields\n .map(field =>\n transformStaticPropertyDeclaration(context, field, className),\n )\n .filter(\n (stmt): stmt is tstl.AssignmentStatement => stmt !== undefined,\n );\n statements.push(...staticFieldStatements);\n\n const constructor = declaration.members.find(\n (n): n is ts.ConstructorDeclaration =>\n ts.isConstructorDeclaration(n) && n.body !== undefined,\n );\n\n const constructorToUse =\n constructor ||\n ts.factory.createConstructorDeclaration(\n undefined,\n [],\n ts.factory.createBlock([], true),\n );\n\n const transformedConstructor = transformConstructor(\n context,\n className,\n instanceFields,\n constructorToUse,\n );\n\n if (transformedConstructor) {\n statements.push(transformedConstructor);\n }\n\n const methods = declaration.members\n .filter(ts.isMethodDeclaration)\n .map(method =>\n transformMethodDeclaration(context, method, className),\n )\n .filter((method): method is tstl.Statement => method !== undefined);\n statements.push(...methods);\n\n statements.push(\n ...getExportedClassDeclarationStatements(className, declaration),\n );\n\n return statements;\n }) satisfies FunctionVisitor<ts.ClassLikeDeclaration>;\n};\n"],"names":["getTransformClassDeclaration","hasSuperInfos","context","importMap","declaration","add","className","name","tstl","createIdentifier","text","createTempName","extension","getExtendedNode","classSuperInfos","push","extendedTypeNode","properties","members","filter","ts","isPropertyDeclaration","member","initializer","instanceFields","prop","isStaticNode","staticFields","statements","createClassCall","staticFieldStatements","map","field","transformStaticPropertyDeclaration","stmt","undefined","constructor","find","n","isConstructorDeclaration","body","constructorToUse","factory","createConstructorDeclaration","createBlock","transformedConstructor","transformConstructor","methods","isMethodDeclaration","method","transformMethodDeclaration","getExportedClassDeclarationStatements"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAuBaA;;;eAAAA;;;;sEAvBO;2EAEE;wBAC6B;uBAI5C;uDAC+C;gCAGtB;sCACK;4CACM;AAE3C,MAAMC,gBAAgB,CAClBC;IAIA,OAAO,qBAAqBA;AAChC;AAEO,MAAMF,+BAA+B,CAACG;IACzC,OAAQ,CAACC,aAAaF;QAClBC,UAAUE,GAAG,CAAC;QAEd,IAAIC;QACJ,IAAIF,YAAYG,IAAI,EAAE;YAClBD,YAAYE,iBAAKC,gBAAgB,CAACL,YAAYG,IAAI,CAACG,IAAI;QAC3D,OAAO;YACHJ,YAAYE,iBAAKC,gBAAgB,CAC7BP,QAAQS,cAAc,CAAC,UACvBP;QAER;QAEA,MAAMQ,YAAYC,IAAAA,sBAAe,EAACT;QAElC,IAAIH,cAAcC,UAAU;YACxB,IAAIA,QAAQY,eAAe,EAAE;gBACzBZ,QAAQY,eAAe,CAACC,IAAI,CAAC;oBACzBT;oBACAU,kBAAkBJ;gBACtB;YACJ,OAAO;gBACHV,QAAQY,eAAe,GAAG;oBACtB;wBAAER;wBAAWU,kBAAkBJ;oBAAU;iBAC5C;YACL;QACJ;QAEA,gCAAgC;QAChC,MAAMK,aAAab,YAAYc,OAAO,CACjCC,MAAM,CAACC,YAAGC,qBAAqB,EAC/BF,MAAM,CAACG,CAAAA,SAAUA,OAAOC,WAAW;QAExC,+CAA+C;QAC/C,MAAMC,iBAAiBP,WAAWE,MAAM,CAACM,CAAAA,OAAQ,CAACC,IAAAA,mBAAY,EAACD;QAC/D,MAAME,eAAeV,WAAWE,MAAM,CAACM,CAAAA,OAAQC,IAAAA,mBAAY,EAACD;QAE5D,MAAMG,aAA+B,EAAE;QAEvC,aAAa;QACbA,WAAWb,IAAI,CAACc,IAAAA,+BAAe,EAAC3B,SAASI,WAAWM;QAEpD,oBAAoB;QACpB,uBAAuB;QACvB,MAAM;QAEN,MAAMkB,wBAAwBH,aACzBI,GAAG,CAACC,CAAAA,QACDC,IAAAA,0CAAkC,EAAC/B,SAAS8B,OAAO1B,YAEtDa,MAAM,CACH,CAACe,OAA2CA,SAASC;QAE7DP,WAAWb,IAAI,IAAIe;QAEnB,MAAMM,cAAchC,YAAYc,OAAO,CAACmB,IAAI,CACxC,CAACC,IACGlB,YAAGmB,wBAAwB,CAACD,MAAMA,EAAEE,IAAI,KAAKL;QAGrD,MAAMM,mBACFL,eACAhB,YAAGsB,OAAO,CAACC,4BAA4B,CACnCR,WACA,EAAE,EACFf,YAAGsB,OAAO,CAACE,WAAW,CAAC,EAAE,EAAE;QAGnC,MAAMC,yBAAyBC,IAAAA,0CAAoB,EAC/C5C,SACAI,WACAkB,gBACAiB;QAGJ,IAAII,wBAAwB;YACxBjB,WAAWb,IAAI,CAAC8B;QACpB;QAEA,MAAME,UAAU3C,YAAYc,OAAO,CAC9BC,MAAM,CAACC,YAAG4B,mBAAmB,EAC7BjB,GAAG,CAACkB,CAAAA,SACDC,IAAAA,sDAA0B,EAAChD,SAAS+C,QAAQ3C,YAE/Ca,MAAM,CAAC,CAAC8B,SAAqCA,WAAWd;QAC7DP,WAAWb,IAAI,IAAIgC;QAEnBnB,WAAWb,IAAI,IACRoC,IAAAA,4EAAqC,EAAC7C,WAAWF;QAGxD,OAAOwB;IACX;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crankscript",
3
- "version": "0.11.11",
3
+ "version": "0.11.12",
4
4
  "scripts": {
5
5
  "dev": "tsx src/index.ts",
6
6
  "post-build": "tsc-alias --project tsconfig.json"
@@ -0,0 +1,10 @@
1
+ let A = class A {
2
+ method() {
3
+ return 'test';
4
+ }
5
+ };
6
+ playdate.update = ()=>{
7
+ printTable(new A());
8
+ };
9
+
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../../libs/cli/src/commands/TranspileCommand/fn/_tests/test-implicit-constructor/src/index.ts"],"sourcesContent":["class A {\n method() {\n return 'test';\n }\n}\n\nplaydate.update = () => {\n printTable(new A());\n};\n"],"names":["A","method","playdate","update","printTable"],"rangeMappings":";;;;;;;","mappings":"AAAA,IAAA,AAAMA,IAAN,MAAMA;IACFC,SAAS;QACL,OAAO;IACX;AACJ;AAEAC,SAASC,MAAM,GAAG;IACdC,WAAW,IAAIJ;AACnB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../libs/cli/src/commands/TranspileCommand/fn/_tests/test-static/src/index.ts"],"sourcesContent":["class A {\n static staticField = 'staticField';\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const someVar = 1;\n }\n}\n\nclass B extends A {\n constructor() {\n super();\n }\n}\n\nplaydate.update = () => {\n printTable(new A());\n printTable(new B());\n};\n"],"names":["A","constructor","someVar","staticField","B","playdate","update","printTable"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,IAAA,AAAMA,IAAN,MAAMA;IAEFC,aAAc;QACV,6DAA6D;QAC7D,MAAMC,UAAU;IACpB;AACJ;AANMF,EACKG,cAAc;AAOzB,IAAA,AAAMC,IAAN,MAAMA,UAAUJ;IACZC,aAAc;QACV,KAAK;IACT;AACJ;AAEAI,SAASC,MAAM,GAAG;IACdC,WAAW,IAAIP;IACfO,WAAW,IAAIH;AACnB"}
1
+ {"version":3,"sources":["../../../../../../../../../../libs/cli/src/commands/TranspileCommand/fn/_tests/test-static/src/index.ts"],"sourcesContent":["class A {\n static staticField = 'staticField';\n\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const someVar = 1;\n }\n}\n\nclass B extends A {\n constructor() {\n super();\n }\n}\n\nplaydate.update = () => {\n printTable(new A());\n printTable(new B());\n};\n"],"names":["A","constructor","someVar","staticField","B","playdate","update","printTable"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,IAAA,AAAMA,IAAN,MAAMA;IAGFC,aAAc;QACV,6DAA6D;QAC7D,MAAMC,UAAU;IACpB;AACJ;AAPMF,EACKG,cAAc;AAQzB,IAAA,AAAMC,IAAN,MAAMA,UAAUJ;IACZC,aAAc;QACV,KAAK;IACT;AACJ;AAEAI,SAASC,MAAM,GAAG;IACdC,WAAW,IAAIP;IACfO,WAAW,IAAIH;AACnB"}