Sturm359 wrote I have used VSCode in the past and I did, indeed, like it. However, I needed something more for working with Laravel projects, thus I purchased PHPStorm a while back and fell in love with its capabilities. It also handles TS out-of-the-box easily. Now, I wouldn't mind trying VSCode again, but I don't think the IDE is really the issue at hand, I think. Yep! I've not used PHPStorm and had no idea it had tight TS integration. I'm glad to hear that PHPStorm is working so well! Please disregard the VSCode suggestion Sturm359 wrote The reason why I didn't really want to write ExtendScript (AES) natively is that I did so years ago and wound up with scripts that are thousands of lines long with spaghetti code all over the place. I have to maintain it and it becomes more and more difficult year after year. After having learned some OOP principles, it makes more sense for me to re-do those old scripts using those principles—classes, inheritance, etc. And if I can leverage external modules, then I can make the code perhaps a bit more modular as well as easier to maintain and build upon in the future. Would you think so? I understand the inherent issues that could arise with transpiling to such an old language, however, I don't really plan on doing anything super-fancy. I only know the basics of OOP and don't plan on using all of the features of TypeScript. Heck, I don't even understand all of them. And you can bet that I'll be doing plenty of testing before deploying. (It's for our internal company's use only.) To be fair, you can write non-spaghetti code ExtendScript (or ES3 compatible JavaScript), it just takes discipline as you have to be careful about structuring your code. That said, I do agree that TypeScript can dramatically simplify things for you, improving maintainability, readability, and, perhaps most importantly, safety. I would urge you to be extra vigilant in your testing as you may quickly find yourself using more advanced features of TypeScript. Not only will your continued usage of the language make you more comfortable, but your Google searches for help with a problem will likely start turning up elegant solutions on Stack Overflow that make use of those features. Transpiled TypeScript has not been thoroughly tested against the ExtendScript Virtual Machine. I found the bug I linked to in my previous post​​ while investigating an issue reported by someone else who'd tried to transpile TypeScript->ExtendScript and discovered that Generators simply broke for him. Regardless, if you're vigilant with your testing, then you should be fine! If you happen across any further bugs, please do share them with the class! Sturm359 wrote Using Webpack only on the Panel side and the plain TS compiler on the JSX side seems to have tamed this unruly beast. I am finally able to use Node.js' FS module, jQuery, etc. without a problem. Whew! Awesome! Very glad to hear you were able to get this working. Quick question: did you end up enabling the mixed context? Sturm359 wrote On another thread, I was told that CSInterface has its own API for accessing the filesystem. I wonder which is more efficient. Perhaps I'll try out both, now that it seems I can access both. Yup! If all you need is file system access, you can probably get away with just using the CSInterface, rather looking to NodeJS at all. Sturm359 wrote Admittedly, though, this all does seem quite convoluted, when I was expecting something a bit more elegant. But, hey, if this is the best way to use TypeScript with CEP, then I'll take it! To be fair, the original forum post was written to describe how you could setup your environment to take advantage of TypeScript's language services to assist in writing JavaScript/ExtendScript directly. The goal was to show how you could enable TypeScript-enabled features (static analysis, IntelliSense, autocomplete, etc.) for CEP development. The post does mention that writing TypeScript directly is possible, but that "you will have to configure your IDE to do so" (setup the compiler, etc.). That was a bit beyond the scope of the initial post but it's good to have the discussion here in the comments! Hopefully the examples you linked will provide helpful hints to others trying to get a project started!
... View more