Skip to content

Releases: schultek/jaspr

v0.9.1

09 Oct 08:29
Compare
Choose a tag to compare

CLI Update

  • Improved the stability and logging of the cli, mainly for jaspr serve.

  • Added three commands:

    • clean command to clean your project directory
    • update command to automatically update the cli to the latest version
    • doctor command to print information about the environment and project
  • Added lightweight anonymous usage tracking to the cli. We use mixpanel.com and
    only process anonymized data. The usage statistics are made public and can be viewed here (TODO: Link will be added in next release).

    To opt out of usage tracking, use jaspr --disable-analytics.

v0.9.0

10 Sep 21:29
Compare
Choose a tag to compare

Static Site Generation Release 🎉

This release adds support for static site generation in Jaspr.

The docs are updated to introduce this feature here and here

Changelog

jaspr @ 0.9.0

  • Added Static Site Generation support.

    With the new jaspr generate command you can generate static pages from your jaspr app. This requires a normal
    server-rendered jaspr app and will output separate .html pages for each of your routes.

    To specify which routes your application should handle, either use jaspr_router or call
    ServerApp.requestRouteGeneration('/my/route'); for each target route.

jaspr_router @ 0.3.0

  • Added Static Site Generation support. Pages are automatically generated for each route.

  • Fixed bug where Router.of(context).matchList.title always returned null.

v0.8.0

10 Aug 18:49
Compare
Choose a tag to compare

New package

Changelog

  • Added StyleRule.media({MediaRuleQuery query, List<StyleRule> styles}) to support @media css statements.

  • Added support for Tailwind using the jaspr_tailwind integration.
    Simply run dart pub add jaspr_tailwind --dev and start using tailwind classes in your jaspr components.
    For a full setup and usage guide see Tailwind Integration Docs.

v0.7.0

08 Aug 09:56
Compare
Choose a tag to compare
  • Improved cli experience with better logging and progress indicators.

  • Removed --ssr and --flutter cli options.

  • Added support jaspr config section in pubspec.yaml.

    It is now possible to define certain configuration options for the jaspr cli
    directly inside the pubspec.yaml file under the jaspr section.
    Initially supported options are:

    jaspr:
      uses-ssr: true # or false; Toggles server-side-rendering on or off.
      uses-flutter: true # or false; Whether the project uses flutter element embedding.

v0.6.2

02 Aug 12:07
Compare
Choose a tag to compare

New package

Changelog

  • Added integrated support for seamless flutter element embedding.
    Refer to Flutter Embedding Docs on how to setup and use this.

  • Fixed bug with jaspr create.

  • Added prompts when running jaspr create without any arguments.
    This way the developer is guided through the creation process more dynamically.

v0.6.0

25 Jul 17:40
Compare
Choose a tag to compare
  • Added support for flutter web plugins.

    Jaspr apps can now depend-on and import flutter plugins that work on web. This is achieved by
    using a modified compiler toolchain: jaspr_web_compilers.

    To enable support for flutter plugins simply exchange your build_web_compilers dependency for jaspr_web_compilers:

    dev_dependencies:
    -  build_web_compilers: ^4.0.4
    +  jaspr_web_compilers: ^4.0.4

    For an example see experiments/flutter_plugin_interop.

  • Improved flutter element embedding.

    Flutter apps can now be directly embedded from your jaspr codebase and integrated into
    the existing jaspr component tree.

    This removes the need for any kind of interop between apps as they can directly communicate
    through the usual primitives of passing properties and callbacks.

    For an example see experiments/flutter_embedding_v2.

  • jaspr build now outputs to /build/jaspr instead of /build.

v0.5.0

27 May 23:05
Compare
Choose a tag to compare

jaspr 0.5.0

  • BREAKING Added @client as replacement for both @app and @island.

    Components annotated with @client act as entry points for the client application and are
    automatically detected, compiled and shipped to the client when using the Document() component.

    This combines the behaviour of the now removed @app and @island annotations, as well as the
    removed Document.app() and Document.islands() constructors. Use the default Document() constructor instead.

  • BREAKING Removed DeferRenderMixin as async first builds are no longer permitted on clients.

  • Added support for Flutter element embedding.

    Flutter apps can now easily be embedded within jaspr sites. The cli supports the --flutter argument for both
    the serve and build commands to specify the entrypoint of the flutter application.

    The complete setup is demonstrated in the flutter_embedding
    example.

  • Fixed handling of initial uri.

  • Added SynchronousFuture.

jaspr_router 0.2.0

  • BREAKING Complete overhaul of the router package.

    The router implementation is mainly adapted from the go_router package for Flutter.

    Routing works by providing a set of routes to the router component. You can choose between a normal
    Route and a ShellRoute. A ShellRoute acts as a layout wrapper around the child routes.

    Each Route takes a path which can contain parameters like '/users/:userId'.

    Both Route and ShellRoute have a .lazy variant used for lazy-loading parts of the application.

      Router(routes: [
        // simple routes
        Route(path: '/', builder: (context, state) => HomePage()),
        Route(path: '/about', builder: (context, state) => AboutPage()),
        // route with a path parameter
        Route(path: '/users/:userId', builder: (context, state) => UserPage(id: state.pathParameters['userId'])),
        // nested routes
        Route(path: '/base', builder: (context, state) => BasePage(), routes: [
          // full location will be '/base/details'
          Route(path: 'details', builder: (context, state) => DetailsPage()),
        ]),
        // shell route
        ShellRoute(
          builder: (context, state, child) => CustomLayout(child: child),
          routes: [
            Route(path: '/dashboard', builder: (context, state) => DashboardPage()),
          ]     
        ),
        // lazy loaded route
        // this assumes a deferred import like "import 'posts.dart' deferred as posts;"
        Route.lazy(path: '/posts', builder: (context, state) => posts.Posts(), load: posts.loadLibrary),
        // lazy loaded shell route
        ShellRoute.lazy(
          builder: (context, state, child) => CustomLayout(child: child),
          load: () => someAsyncTask(),
          routes: [
            Route(path: '/data', builder: (context, state) => DataPage()),
          ]
        )     
      ]);

    While the router docs are work in progress, you can refer to the go_router docs
    for some references (don't expect everything to work exactly the same, but the core concepts are similar).

v0.4.0

24 May 20:40
Compare
Choose a tag to compare

0.4.0

  • BREAKING Bindings are no longer singletons.

    • ComponentsBinding.instance, SchedulerBinding.instance etc. were removed.
    • You can access the current binding through BuildContexts context.binding property.
  • BREAKING Removed ComponentTester.setUp(), BrowserTester.setUp() and ServerTester.setUp().

    • Use testComponents(), testBrowser() and testServer() instead.
  • Requires Dart 3.0 or later.

v0.3.0

25 Feb 21:10
Compare
Choose a tag to compare

0.3.0

BREAKING The cli got an overhaul and is now a separate package: jaspr_cli.

To migrate run:

  dart pub global deactivate jaspr
  dart pub global activate jaspr_cli

The usage stays the same with jaspr create, jaspr serve and jaspr build.

v0.2.0

01 Feb 01:15
Compare
Choose a tag to compare

Jaspr v0.2.0 comes with a major rewrite of the internal framework and a lot of new features. While there is still a lot to do, it takes a large step in the direction of a stable release.

Check out the new documentation website: https://docs.page/schultek/jaspr

BREAKING: This is the first major release after the initial publish and contains several breaking changes.

  • Update to Dart 2.17
  • Rewrite of the rendering system that comes with a lot of improvements in stability and performance.
  • Added support for custom backend & server setup.
  • Added support for multiple apps on the client as well as island components.
  • Added html utility components for common elements.
  • Added Styles class for writing typed css in dart.
  • Various other improvements throughout the framework.