@abaplint/transpiler-cli 1.7.15 → 1.7.16
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/build/bundle.js +3 -3
- package/package.json +3 -3
package/build/bundle.js
CHANGED
|
@@ -12919,7 +12919,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
12919
12919
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
12920
12920
|
|
|
12921
12921
|
"use strict";
|
|
12922
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ConstantTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass ConstantTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal) {\r\n const int = node.findFirstExpression(core_1.Expressions.Integer);\r\n if (int) {\r\n const
|
|
12922
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ConstantTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass ConstantTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal) {\r\n const int = node.findFirstExpression(core_1.Expressions.Integer);\r\n if (int) {\r\n const concat = int.concatTokens().trim();\r\n const post = concat.startsWith(\"-\") ? \"minus_\" : \"\";\r\n let ret = \"constant_\" + post + int.getLastToken().getStr();\r\n if (this.addGet === true) {\r\n ret += \".get()\";\r\n }\r\n return new chunk_1.Chunk().append(ret, node, traversal);\r\n }\r\n let str = node.findFirstExpression(core_1.Expressions.ConstantString);\r\n if (str === undefined) {\r\n str = node.findFirstExpression(core_1.Expressions.TextElementString);\r\n }\r\n if (str) {\r\n let res = str.getFirstToken().getStr();\r\n if (res.startsWith(\"'\") && this.addGet === false) {\r\n const code = \"new abap.types.Character({length: \" + (res.length - 2) + \"}).set(\" + this.escape(res) + \")\";\r\n return new chunk_1.Chunk().append(code, node, traversal);\r\n }\r\n else {\r\n if (res.startsWith(\"'\")) {\r\n res = \"'\" + res.substring(1, res.length - 1).trimEnd() + \"'\";\r\n }\r\n const code = this.escape(res);\r\n return new chunk_1.Chunk().append(code, node, traversal);\r\n }\r\n }\r\n return new chunk_1.Chunk(`todo, Constant`);\r\n }\r\n escape(str) {\r\n str = str.replace(/\\\\/g, \"\\\\\\\\\");\r\n const reg = new RegExp(/(.+)''(.+)/g);\r\n while (reg.test(str)) {\r\n str = str.replace(reg, \"$1\\\\'$2\");\r\n }\r\n return str;\r\n }\r\n}\r\nexports.ConstantTranspiler = ConstantTranspiler;\r\n//# sourceMappingURL=constant.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/constant.js?");
|
|
12923
12923
|
|
|
12924
12924
|
/***/ }),
|
|
12925
12925
|
|
|
@@ -13194,7 +13194,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
13194
13194
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13195
13195
|
|
|
13196
13196
|
"use strict";
|
|
13197
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.Transpiler = exports.config = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst validation_1 = __webpack_require__(/*! ./validation */ \"./node_modules/@abaplint/transpiler/build/src/validation.js\");\r\nObject.defineProperty(exports, \"config\", ({ enumerable: true, get: function () { return validation_1.config; } }));\r\nconst traversal_1 = __webpack_require__(/*! ./traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst requires_1 = __webpack_require__(/*! ./requires */ \"./node_modules/@abaplint/transpiler/build/src/requires.js\");\r\nconst unit_test_1 = __webpack_require__(/*! ./unit_test */ \"./node_modules/@abaplint/transpiler/build/src/unit_test.js\");\r\nconst keywords_1 = __webpack_require__(/*! ./keywords */ \"./node_modules/@abaplint/transpiler/build/src/keywords.js\");\r\nconst database_setup_1 = __webpack_require__(/*! ./database_setup */ \"./node_modules/@abaplint/transpiler/build/src/database_setup.js\");\r\nconst rearranger_1 = __webpack_require__(/*! ./rearranger */ \"./node_modules/@abaplint/transpiler/build/src/rearranger.js\");\r\nconst chunk_1 = __webpack_require__(/*! ./chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass Transpiler {\r\n constructor(options) {\r\n this.options = options;\r\n if (this.options === undefined) {\r\n this.options = {};\r\n }\r\n if (this.options.unknownTypes === undefined) {\r\n this.options.unknownTypes = \"compileError\";\r\n }\r\n }\r\n // workaround for web/webpack\r\n async runRaw(files) {\r\n const memory = files.map(f => new abaplint.MemoryFile(f.filename, f.contents));\r\n const reg = new abaplint.Registry().addFiles(memory).parse();\r\n return new Transpiler().run(reg);\r\n }\r\n async run(reg, progress) {\r\n var _a, _b;\r\n reg.parse();\r\n new keywords_1.Keywords().handle(reg);\r\n this.validate(reg);\r\n const dbSetup = new database_setup_1.DatabaseSetup(reg).run();\r\n const output = {\r\n objects: [],\r\n unitTestScript: new unit_test_1.UnitTest().unitTestScript(reg, (_a = this.options) === null || _a === void 0 ? void 0 : _a.skip, (_b = this.options) === null || _b === void 0 ? void 0 : _b.only),\r\n initializationScript: new unit_test_1.UnitTest().initializationScript(reg, dbSetup),\r\n databaseSetup: dbSetup,\r\n reg: reg,\r\n };\r\n progress === null || progress === void 0 ? void 0 : progress.set(reg.getObjectCount(false), \"Building, Syntax Logic\");\r\n for (const obj of reg.getObjects()) {\r\n await (progress === null || progress === void 0 ? void 0 : progress.tick(\"Building, Syntax Logic, \" + obj.getName()));\r\n if (obj instanceof abaplint.ABAPObject) {\r\n new abaplint.SyntaxLogic(reg, obj).run();\r\n }\r\n }\r\n progress === null || progress === void 0 ? void 0 : progress.set(reg.getObjectCount(false), \"Building\");\r\n for (const obj of reg.getObjects()) {\r\n await (progress === null || progress === void 0 ? void 0 : progress.tick(\"Building, \" + obj.getName()));\r\n if (obj instanceof abaplint.ABAPObject && !(obj instanceof abaplint.Objects.TypePool)) {\r\n output.objects = output.objects.concat(this.runObject(obj, reg));\r\n }\r\n }\r\n return output;\r\n }\r\n // ///////////////////////////////\r\n handleConstants(obj, file, reg) {\r\n var _a, _b;\r\n let result = \"\";\r\n const constants = this.findConstants(obj, file, reg);\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.skipConstants) === false || ((_b = this.options) === null || _b === void 0 ? void 0 : _b.skipConstants) === undefined) {\r\n for (const c of Array.from(constants).sort()) {\r\n const post = c < 0 ? \"minus_\" : \"\";\r\n result += `const constant_${post}${Math.abs(c)} = new abap.types.Integer().set(${c});\\n`;\r\n }\r\n }\r\n return result;\r\n }\r\n findConstants(obj, file, reg) {\r\n var _a, _b;\r\n let constants = new Set();\r\n for (const i of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressions(abaplint.Expressions.Integer)) || []) {\r\n const j = parseInt(i.concatTokens(), 10);\r\n constants.add(j);\r\n }\r\n // extra constants from interfaces, used for default values\r\n if (obj.getType() === \"CLAS\") {\r\n const clas = obj;\r\n for (const i of ((_b = clas.getClassDefinition()) === null || _b === void 0 ? void 0 : _b.interfaces) || []) {\r\n const intf = reg.getObject(\"INTF\", i.name);\r\n const main = intf === null || intf === void 0 ? void 0 : intf.getMainABAPFile();\r\n if (intf && main) {\r\n constants = new Set([...constants, ...this.findConstants(intf, main, reg).values()]);\r\n }\r\n }\r\n }\r\n return constants;\r\n }\r\n runObject(obj, reg) {\r\n var _a, _b, _c;\r\n const spaghetti = new abaplint.SyntaxLogic(reg, obj).run().spaghetti;\r\n let ret = [];\r\n for (const file of obj.getSequencedFiles()) {\r\n const chunk = new chunk_1.Chunk();\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.addFilenames) === true) {\r\n chunk.appendString(\"// \" + file.getFilename() + \"\\n\");\r\n }\r\n chunk.appendString(this.handleConstants(obj, file, reg));\r\n const rearranged = new rearranger_1.Rearranger().run(obj.getType(), file.getStructure());\r\n const contents = new traversal_1.Traversal(spaghetti, file, obj, reg, ((_b = this.options) === null || _b === void 0 ? void 0 : _b.unknownTypes) === \"runtimeError\").traverse(rearranged);\r\n chunk.appendChunk(contents);\r\n chunk.stripLastNewline();\r\n chunk.runIndentationLogic();\r\n const exports = this.findExports(file.getStructure());\r\n const filename = file.getFilename().replace(\".abap\", \".mjs\").toLowerCase();\r\n const output = {\r\n object: {\r\n name: obj.getName(),\r\n type: obj.getType(),\r\n },\r\n filename: filename,\r\n chunk: chunk,\r\n requires: new requires_1.Requires(reg).find(obj, spaghetti.getTop(), file.getFilename()),\r\n exports: exports,\r\n };\r\n ret.push(output);\r\n }\r\n ret = this.rearrangeClassLocals(obj, ret);\r\n if (((_c = this.options) === null || _c === void 0 ? void 0 : _c.addCommonJS) === true) {\r\n ret.map(output => output.chunk = this.addImportsAndExports(output));\r\n }\r\n return ret;\r\n }\r\n /** merges the locals def and imp into one mjs file */\r\n rearrangeClassLocals(obj, output) {\r\n const ret = [];\r\n if (obj.getType() !== \"CLAS\") {\r\n return output;\r\n }\r\n let imp = undefined;\r\n let def = undefined;\r\n for (const o of output) {\r\n if (o.filename.endsWith(\".clas.locals_imp.mjs\")) {\r\n imp = o;\r\n }\r\n else if (o.filename.endsWith(\".clas.locals_def.mjs\")) {\r\n def = o;\r\n }\r\n else {\r\n ret.push(o);\r\n }\r\n }\r\n if (def) {\r\n def.filename = def.filename.replace(\".locals_def.mjs\", \".locals.mjs\");\r\n }\r\n if (imp) {\r\n imp.filename = imp.filename.replace(\".locals_imp.mjs\", \".locals.mjs\");\r\n }\r\n if (imp && def) {\r\n // remove duplicates\r\n const requires = [...def.requires];\r\n for (const r of imp.requires) {\r\n if (requires.find(a => a.filename === r.filename && a.name === r.name) === undefined) {\r\n requires.push(r);\r\n }\r\n }\r\n const chunk = new chunk_1.Chunk().appendChunk(def.chunk).appendChunk(imp.chunk);\r\n ret.push({\r\n object: imp.object,\r\n filename: imp.filename,\r\n chunk: chunk,\r\n requires: requires,\r\n exports: def.exports.concat(imp.exports),\r\n });\r\n }\r\n else if (imp) {\r\n ret.push(imp);\r\n }\r\n else if (def) {\r\n ret.push(def);\r\n }\r\n return ret;\r\n }\r\n addImportsAndExports(output) {\r\n var _a;\r\n const contents = new chunk_1.Chunk();\r\n for (const r of output.requires) {\r\n const name = (_a = r.name) === null || _a === void 0 ? void 0 : _a.toLowerCase();\r\n const filename = r.filename.replace(\".abap\", \".mjs\");\r\n if (filename === output.filename) {\r\n continue;\r\n }\r\n if (name) {\r\n contents.appendString(\"const {\" + name + \"} = await import(\\\"./\" + filename + \"\\\");\\n\");\r\n }\r\n else {\r\n contents.appendString(\"await import(\\\"./\" + filename + \"\\\");\\n\");\r\n }\r\n }\r\n contents.appendChunk(output.chunk);\r\n if (output.exports.length > 0) {\r\n contents.appendString(\"\\nexport {\" + output.exports.join(\", \") + \"};\");\r\n }\r\n return contents;\r\n }\r\n findExports(node) {\r\n var _a, _b;\r\n if (node === undefined) {\r\n return [];\r\n }\r\n const res = [];\r\n for (const c of node.findAllStatements(abaplint.Statements.ClassDefinition)) {\r\n const e = (_a = c.findFirstExpression(abaplint.Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken().getStr();\r\n if (e) {\r\n res.push(e.toLowerCase());\r\n }\r\n }\r\n for (const c of node.findAllStatements(abaplint.Statements.Interface)) {\r\n const e = (_b = c.findFirstExpression(abaplint.Expressions.InterfaceName)) === null || _b === void 0 ? void 0 : _b.getFirstToken().getStr();\r\n if (e) {\r\n res.push(e.toLowerCase());\r\n }\r\n }\r\n return res;\r\n }\r\n validate(reg) {\r\n const issues = new validation_1.Validation(this.options).run(reg);\r\n if (issues.length > 0) {\r\n const messages = issues.map(i => i.getKey() + \", \" +\r\n i.getMessage() + \", \" +\r\n i.getFilename() + \":\" +\r\n i.getStart().getRow());\r\n throw new Error(messages.join(\"\\n\"));\r\n }\r\n }\r\n}\r\nexports.Transpiler = Transpiler;\r\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/index.js?");
|
|
13197
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.Transpiler = exports.config = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst validation_1 = __webpack_require__(/*! ./validation */ \"./node_modules/@abaplint/transpiler/build/src/validation.js\");\r\nObject.defineProperty(exports, \"config\", ({ enumerable: true, get: function () { return validation_1.config; } }));\r\nconst traversal_1 = __webpack_require__(/*! ./traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst requires_1 = __webpack_require__(/*! ./requires */ \"./node_modules/@abaplint/transpiler/build/src/requires.js\");\r\nconst unit_test_1 = __webpack_require__(/*! ./unit_test */ \"./node_modules/@abaplint/transpiler/build/src/unit_test.js\");\r\nconst keywords_1 = __webpack_require__(/*! ./keywords */ \"./node_modules/@abaplint/transpiler/build/src/keywords.js\");\r\nconst database_setup_1 = __webpack_require__(/*! ./database_setup */ \"./node_modules/@abaplint/transpiler/build/src/database_setup.js\");\r\nconst rearranger_1 = __webpack_require__(/*! ./rearranger */ \"./node_modules/@abaplint/transpiler/build/src/rearranger.js\");\r\nconst chunk_1 = __webpack_require__(/*! ./chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass Transpiler {\r\n constructor(options) {\r\n this.options = options;\r\n if (this.options === undefined) {\r\n this.options = {};\r\n }\r\n if (this.options.unknownTypes === undefined) {\r\n this.options.unknownTypes = \"compileError\";\r\n }\r\n }\r\n // workaround for web/webpack\r\n async runRaw(files) {\r\n const memory = files.map(f => new abaplint.MemoryFile(f.filename, f.contents));\r\n const reg = new abaplint.Registry().addFiles(memory).parse();\r\n return new Transpiler().run(reg);\r\n }\r\n async run(reg, progress) {\r\n var _a, _b;\r\n reg.parse();\r\n new keywords_1.Keywords().handle(reg);\r\n this.validate(reg);\r\n const dbSetup = new database_setup_1.DatabaseSetup(reg).run();\r\n const output = {\r\n objects: [],\r\n unitTestScript: new unit_test_1.UnitTest().unitTestScript(reg, (_a = this.options) === null || _a === void 0 ? void 0 : _a.skip, (_b = this.options) === null || _b === void 0 ? void 0 : _b.only),\r\n initializationScript: new unit_test_1.UnitTest().initializationScript(reg, dbSetup),\r\n databaseSetup: dbSetup,\r\n reg: reg,\r\n };\r\n progress === null || progress === void 0 ? void 0 : progress.set(reg.getObjectCount(false), \"Building, Syntax Logic\");\r\n for (const obj of reg.getObjects()) {\r\n await (progress === null || progress === void 0 ? void 0 : progress.tick(\"Building, Syntax Logic, \" + obj.getName()));\r\n if (obj instanceof abaplint.ABAPObject) {\r\n new abaplint.SyntaxLogic(reg, obj).run();\r\n }\r\n }\r\n progress === null || progress === void 0 ? void 0 : progress.set(reg.getObjectCount(false), \"Building\");\r\n for (const obj of reg.getObjects()) {\r\n await (progress === null || progress === void 0 ? void 0 : progress.tick(\"Building, \" + obj.getName()));\r\n if (obj instanceof abaplint.ABAPObject && !(obj instanceof abaplint.Objects.TypePool)) {\r\n output.objects = output.objects.concat(this.runObject(obj, reg));\r\n }\r\n }\r\n return output;\r\n }\r\n // ///////////////////////////////\r\n handleConstants(obj, file, reg) {\r\n var _a, _b;\r\n let result = \"\";\r\n const constants = this.findConstants(obj, file, reg);\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.skipConstants) === false || ((_b = this.options) === null || _b === void 0 ? void 0 : _b.skipConstants) === undefined) {\r\n for (const concat of Array.from(constants).sort()) {\r\n const post = concat.startsWith(\"-\") ? \"minus_\" : \"\";\r\n result += `const constant_${post}${concat.replace(\"-\", \"\")} = new abap.types.Integer().set(${concat});\\n`;\r\n }\r\n }\r\n return result;\r\n }\r\n findConstants(obj, file, reg) {\r\n var _a, _b;\r\n let constants = new Set();\r\n for (const i of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressions(abaplint.Expressions.Integer)) || []) {\r\n constants.add(i.concatTokens().replace(\" \", \"\"));\r\n }\r\n // extra constants from interfaces, used for default values\r\n if (obj.getType() === \"CLAS\") {\r\n const clas = obj;\r\n for (const i of ((_b = clas.getClassDefinition()) === null || _b === void 0 ? void 0 : _b.interfaces) || []) {\r\n const intf = reg.getObject(\"INTF\", i.name);\r\n const main = intf === null || intf === void 0 ? void 0 : intf.getMainABAPFile();\r\n if (intf && main) {\r\n constants = new Set([...constants, ...this.findConstants(intf, main, reg).values()]);\r\n }\r\n }\r\n }\r\n return constants;\r\n }\r\n runObject(obj, reg) {\r\n var _a, _b, _c;\r\n const spaghetti = new abaplint.SyntaxLogic(reg, obj).run().spaghetti;\r\n let ret = [];\r\n for (const file of obj.getSequencedFiles()) {\r\n const chunk = new chunk_1.Chunk();\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.addFilenames) === true) {\r\n chunk.appendString(\"// \" + file.getFilename() + \"\\n\");\r\n }\r\n chunk.appendString(this.handleConstants(obj, file, reg));\r\n const rearranged = new rearranger_1.Rearranger().run(obj.getType(), file.getStructure());\r\n const contents = new traversal_1.Traversal(spaghetti, file, obj, reg, ((_b = this.options) === null || _b === void 0 ? void 0 : _b.unknownTypes) === \"runtimeError\").traverse(rearranged);\r\n chunk.appendChunk(contents);\r\n chunk.stripLastNewline();\r\n chunk.runIndentationLogic();\r\n const exports = this.findExports(file.getStructure());\r\n const filename = file.getFilename().replace(\".abap\", \".mjs\").toLowerCase();\r\n const output = {\r\n object: {\r\n name: obj.getName(),\r\n type: obj.getType(),\r\n },\r\n filename: filename,\r\n chunk: chunk,\r\n requires: new requires_1.Requires(reg).find(obj, spaghetti.getTop(), file.getFilename()),\r\n exports: exports,\r\n };\r\n ret.push(output);\r\n }\r\n ret = this.rearrangeClassLocals(obj, ret);\r\n if (((_c = this.options) === null || _c === void 0 ? void 0 : _c.addCommonJS) === true) {\r\n ret.map(output => output.chunk = this.addImportsAndExports(output));\r\n }\r\n return ret;\r\n }\r\n /** merges the locals def and imp into one mjs file */\r\n rearrangeClassLocals(obj, output) {\r\n const ret = [];\r\n if (obj.getType() !== \"CLAS\") {\r\n return output;\r\n }\r\n let imp = undefined;\r\n let def = undefined;\r\n for (const o of output) {\r\n if (o.filename.endsWith(\".clas.locals_imp.mjs\")) {\r\n imp = o;\r\n }\r\n else if (o.filename.endsWith(\".clas.locals_def.mjs\")) {\r\n def = o;\r\n }\r\n else {\r\n ret.push(o);\r\n }\r\n }\r\n if (def) {\r\n def.filename = def.filename.replace(\".locals_def.mjs\", \".locals.mjs\");\r\n }\r\n if (imp) {\r\n imp.filename = imp.filename.replace(\".locals_imp.mjs\", \".locals.mjs\");\r\n }\r\n if (imp && def) {\r\n // remove duplicates\r\n const requires = [...def.requires];\r\n for (const r of imp.requires) {\r\n if (requires.find(a => a.filename === r.filename && a.name === r.name) === undefined) {\r\n requires.push(r);\r\n }\r\n }\r\n const chunk = new chunk_1.Chunk().appendChunk(def.chunk).appendChunk(imp.chunk);\r\n ret.push({\r\n object: imp.object,\r\n filename: imp.filename,\r\n chunk: chunk,\r\n requires: requires,\r\n exports: def.exports.concat(imp.exports),\r\n });\r\n }\r\n else if (imp) {\r\n ret.push(imp);\r\n }\r\n else if (def) {\r\n ret.push(def);\r\n }\r\n return ret;\r\n }\r\n addImportsAndExports(output) {\r\n var _a;\r\n const contents = new chunk_1.Chunk();\r\n for (const r of output.requires) {\r\n const name = (_a = r.name) === null || _a === void 0 ? void 0 : _a.toLowerCase();\r\n const filename = r.filename.replace(\".abap\", \".mjs\");\r\n if (filename === output.filename) {\r\n continue;\r\n }\r\n if (name) {\r\n contents.appendString(\"const {\" + name + \"} = await import(\\\"./\" + filename + \"\\\");\\n\");\r\n }\r\n else {\r\n contents.appendString(\"await import(\\\"./\" + filename + \"\\\");\\n\");\r\n }\r\n }\r\n contents.appendChunk(output.chunk);\r\n if (output.exports.length > 0) {\r\n contents.appendString(\"\\nexport {\" + output.exports.join(\", \") + \"};\");\r\n }\r\n return contents;\r\n }\r\n findExports(node) {\r\n var _a, _b;\r\n if (node === undefined) {\r\n return [];\r\n }\r\n const res = [];\r\n for (const c of node.findAllStatements(abaplint.Statements.ClassDefinition)) {\r\n const e = (_a = c.findFirstExpression(abaplint.Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken().getStr();\r\n if (e) {\r\n res.push(e.toLowerCase());\r\n }\r\n }\r\n for (const c of node.findAllStatements(abaplint.Statements.Interface)) {\r\n const e = (_b = c.findFirstExpression(abaplint.Expressions.InterfaceName)) === null || _b === void 0 ? void 0 : _b.getFirstToken().getStr();\r\n if (e) {\r\n res.push(e.toLowerCase());\r\n }\r\n }\r\n return res;\r\n }\r\n validate(reg) {\r\n const issues = new validation_1.Validation(this.options).run(reg);\r\n if (issues.length > 0) {\r\n const messages = issues.map(i => i.getKey() + \", \" +\r\n i.getMessage() + \", \" +\r\n i.getFilename() + \":\" +\r\n i.getStart().getRow());\r\n throw new Error(messages.join(\"\\n\"));\r\n }\r\n }\r\n}\r\nexports.Transpiler = Transpiler;\r\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/index.js?");
|
|
13198
13198
|
|
|
13199
13199
|
/***/ }),
|
|
13200
13200
|
|
|
@@ -14074,7 +14074,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
14074
14074
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
14075
14075
|
|
|
14076
14076
|
"use strict";
|
|
14077
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SelectTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass SelectTranspiler {\r\n transpile(node, traversal) {\r\n var _a, _b;\r\n const target = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target)).getCode();\r\n let select = \"SELECT \";\r\n select += ((_a = node.findFirstExpression(abaplint.Expressions.SQLFieldList)) === null || _a === void 0 ? void 0 : _a.concatTokens()) + \" \";\r\n select += ((_b = node.findFirstExpression(abaplint.Expressions.SQLFrom)) === null || _b === void 0 ? void 0 : _b.concatTokens()) + \" \";\r\n if (node.concatTokens().toUpperCase().startsWith(\"SELECT SINGLE \")) {\r\n select += \"LIMIT 1\";\r\n }\r\n return new chunk_1.Chunk().append(`abap.statements.select(${target}, \"${select.trim()}\");`, node, traversal);\r\n }\r\n}\r\nexports.SelectTranspiler = SelectTranspiler;\r\n//# sourceMappingURL=select.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/select.js?");
|
|
14077
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SelectTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nclass SelectTranspiler {\r\n transpile(node, traversal) {\r\n var _a, _b;\r\n const target = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target)).getCode();\r\n let select = \"SELECT \";\r\n select += ((_a = node.findFirstExpression(abaplint.Expressions.SQLFieldList)) === null || _a === void 0 ? void 0 : _a.concatTokens()) + \" \";\r\n select += ((_b = node.findFirstExpression(abaplint.Expressions.SQLFrom)) === null || _b === void 0 ? void 0 : _b.concatTokens()) + \" \";\r\n for (const d of node.findAllExpressionsRecursive(abaplint.Expressions.Dynamic)) {\r\n const chain = d.findFirstExpression(abaplint.Expressions.FieldChain);\r\n if (chain) {\r\n const code = new expressions_1.FieldChainTranspiler(true).transpile(chain, traversal).getCode();\r\n const search = d.concatTokens();\r\n select = select.replace(search, `\" + ${code} + \"`);\r\n }\r\n }\r\n if (node.concatTokens().toUpperCase().startsWith(\"SELECT SINGLE \")) {\r\n select += \"LIMIT 1\";\r\n }\r\n return new chunk_1.Chunk().append(`abap.statements.select(${target}, \"${select.trim()}\");`, node, traversal);\r\n }\r\n}\r\nexports.SelectTranspiler = SelectTranspiler;\r\n//# sourceMappingURL=select.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/select.js?");
|
|
14078
14078
|
|
|
14079
14079
|
/***/ }),
|
|
14080
14080
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.16",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"bin": {
|
|
6
6
|
"abap_transpile": "./abap_transpile"
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"author": "abaplint",
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@abaplint/transpiler": "^1.7.
|
|
26
|
+
"@abaplint/transpiler": "^1.7.16",
|
|
27
27
|
"@types/glob": "^7.2.0",
|
|
28
28
|
"glob": "^7.2.0",
|
|
29
29
|
"@types/progress": "^2.0.5",
|
|
30
30
|
"@abaplint/core": "^2.83.23",
|
|
31
31
|
"progress": "^2.0.3",
|
|
32
|
-
"webpack": "^5.
|
|
32
|
+
"webpack": "^5.66.0",
|
|
33
33
|
"webpack-cli": "^4.9.1",
|
|
34
34
|
"typescript": "^4.5.4"
|
|
35
35
|
}
|