Releases: prezi/spaghetti
3.0-pre-2
3.0-pre-1
- Added support for direct dependency on JavaScript sources as 'external
dependency' - Added support for enum members with explicitly assigned values
- Extracted API from spaghetti-core
- Enum members in direct dependency proxies are defined by reference
to the original implementation instead of locally for improved
robustness against modular compilation.
Breaking Changes
- Revised syntax for improved legibility
- Values for enums and consts from transitive dependencies are no longer
generated - Removed Kotlin support
2.1
2.1-rc-1
2.1-alpha-2
Kotlin fixes
2.1-alpha-1
Release Notes
- Kotlin JS support
2.0
Release Notes
Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.
Major changes:
- New command-line tool
- Support for both AMD and CommonJS packaging, modules are stored in a packaging-agnostic format
- Constant values are now specified in the module definition, and can only have primitive values
- Only directly dependent modules' methods are accessible from a module (defined types, enums and constants are available transitively)
- Lots of documentation
- Cleaned up the process of creating modules and packaging them into applications
struct
s can have methods
Minor additions:
- Module bundles can be a directory or a ZIP (similar to how Java handles JARs)
- The new
processSpaghettiResources
task works likeprocessResources
in JVM plugins - ANTLR lexer syntax errors are now reported with the location they happened in, and they fail the build
A new package (RC2)
Release Notes
Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.
Major changes:
- AST based parsing enables reporting errors in module definitions precisely
A New Package (RC1)
Release Notes
Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.
Major changes:
-
Simplified naming when implementing modules
-
If you are implementing a module called
MyModule
, you need to create a class like this:class MyModule implements IMyModule { /* ... */ }
-
-
Unit testing support has been greatly improved, especially for TypeScript.
-
Support for static module methods
-
Module bundles now contain raw JS code wrapped in a
__spaghetti()
closure- There is no dependency on RequireJs anymore.
- If you want something that works with AMD or CommonJS, you need to package the module or application with
PackageModule
orPackageApplication
. - Gone are the
Wrap
andExtractModules
tasks, too.
-
Constant values are now specified in the module definition, and can only have primitive values:
const MyConstants { int NUM = 1 string WHO = "me" }
-
Only directly dependent modules are accessible from a module (we simply don't generate an accessor interface/proxy)
- Defined types, enums and constants are still available (we do generate those types)
Minor additions:
- Module bundles can be a directory or a ZIP
- Module and application packaging names have been cleaned up:
BundleModule
creates a directory with the module bundle contents in it, which are independent of packagingPackageApplication
makes a package of the application to be used with AMD or CommonJSPackageModule
makes a package of a single module bundle to be used with AMD or CommonJS
- The new
processSpaghettiResources
task works likeprocessResources
in JVM plugins. - TypeScript now checks constructor arguments
- Added lots of tests
- ANTLR lexer syntax errors are now reported with the location they happened in, and they fail the build.