IonIon
Packages
  • next
  • current
Changelog
GitHub
Packages
  • next
  • current
Changelog
GitHub
  • Version 0.x

    • Release Notes
    • Upgrade Guide
    • Contribution Guide
    • Security Policy
    • Code of Conduct
    • Origin
  • Packages

    • Introduction
    • Container

      • Introduction
      • Prerequisites
      • How to install
      • Container Instance
      • Bindings
      • Dependencies
      • Resolving
      • Contextual Bindings
    • Contracts

      • Introduction
      • How to install
    • Support

      • Introduction
      • How to install
      • Arrays

        • About Arrays
        • Includes All
        • Includes Any
        • Is Array Like
        • Is Concat Spreadable
        • Is Safe Array Like
        • Is Typed Array
        • Merge
      • Concerns

        • About Concerns
        • Prerequisites
        • Concern Class
        • Using Concerns
        • Aliases
        • Conflict Resolution
        • Booting
        • Hooks
        • Edge Cases
        • JSDoc
      • Exceptions

        • About Exceptions
        • Configure Custom Error
        • Configure Stack Trace
        • Get Error Message
        • Custom Errors
      • Facades

        • About Facades
      • Meta

        • About Meta
        • Prerequisites
        • Supported Elements
        • Set & Get
        • Inheritance
        • Outside Changes
        • TC39 Proposal
        • Target Meta
      • Mixins

        • About Mixins
        • New Mixin
        • Apply Mixins
        • Instanceof
        • Inheritance
        • Onward
      • Object

        • About Objects
        • Forget
        • Forget All
        • Get
        • Has
        • Has All
        • Has Any
        • Has Unique ID
        • Is Cloneable
        • Is Populatable
        • Isset
        • Merge
        • Populate
        • Set
        • Unique ID
      • Reflections

        • About reflections
        • Assert Has Prototype Prop.
        • Class Looks Like
        • Class Own Keys
        • Get All Parents Of Class
        • Get Class Prop. Descriptor
        • Get Class Prop. Descriptors
        • Get Constructor Name
        • Get Name Or Desc. Tag
        • Get Parent Of Class
        • Has All Methods
        • Has Method
        • Has Prototype Property
        • Is Callable
        • Is Class Constructor
        • Is Class Method Reference
        • Is Constructor
        • Is Key Safe
        • Is Key Unsafe
        • Is Method
        • Is Subclass
        • Is Subclass Or Looks Like
        • Is WeakKind
      • Misc

        • About Misc.
        • Desc. Tag
        • Empty
        • Is Key
        • Is Primitive
        • Is Property Key
        • Isset
        • Merge Keys
        • To Weak Ref.
      • Callback Wrapper
    • Vuepress Utils

      • Introduction
      • How to install
      • Navigation

        • Archive
      • Plugins

        • Last Updated
      • Components

        • Version Disclaimer
    • XYZ (test package)

Upgrade Guide

  • From v0.10.x- to v0.13.x
    • Vuepress Utils
  • From v0.7.x- to v0.10.x
    • Meta (types)
    • Meta (targetMeta() and inheritTargetMeta())
  • From v0.6.x to v0.7.x
    • Node.js 20.11.0 Required
    • Meta
    • Vuepress Utils
  • From v0.3.x to v0.4.x
    • Rest Parameters for forgetAll(), hasAll() and hasAny()
  • Onward

From v0.10.x- to v0.13.x

Vuepress Utils

The @aedart/vuepress-utils has been upgraded to require the latest version of vuepress (^2.0.0-rc.15 release candidate). This has affected various arguments and return types in the navigation utilities, such as Archive and PagesCollection.

The changes should not directly affect your documentation application directly, when used as described. However, if you have your own implementation of the Archive or PagesCollection interfaces (in TypeScript), or if you have extended the default provided classes, then you might have to adapt expected argument and return types.

Please read vuepress' changelog and review the package's source code for additional details.

From v0.7.x- to v0.10.x

Meta (types)

The following deprecated types have been removed (deprecated in version v0.7.0):

  • ClassContext
  • MethodContext
  • GetterContext
  • SetterContext
  • FieldContext
  • AccessorContext
  • MetadataContext
  • MemberContext

More information available in the source code and CHANGELOG.md

Meta (targetMeta() and inheritTargetMeta())

The util functions targetMeta() and inheritTargetMeta() now throw a MetaError instead of previous TypeError. If you rely on TypeError as the type of exception being thrown in a try-catch statement, when decorating class members, then you should change it to MetaError.

From v0.6.x to v0.7.x

Node.js 20.11.0 Required

Ion now requires Node.js v20.11.0 or greater.

Meta

Various metadata related type definitions have now been deprecated in favour of TypeScript's own definitions. Mostly, this should not affect the implementation. However, if your decorator(s) depend on the following types (see below), then you are strongly encouraged to use corresponding TypeScript defined types instead.

Deprecated types and interfaces are defined in @aedart/contracts/support/meta:

  • ClassContext
  • MethodContext
  • GetterContext
  • SetterContext
  • FieldContext
  • AccessorContext
  • MetadataContext
  • MemberContext

More information available in the source code and CHANGELOG.md

Vuepress Utils

The @aedart/vuepress-utils has been upgraded to use vuepress v2.0.0-rc.2, meaning that you no longer should require to manually define your vuepress dependency, in your application's packages.json file.

❌ Previously

{
    "devDependencies": {
        "@aedart/vuepress-utils": "^0.6.1",
        "vuepress": "2.0.0-beta.61",
        "@vuepress/core": "2.0.0-beta.61",
        "@vuepress/utils": "2.0.0-beta.61",
        "@vuepress/client": "2.0.0-beta.61"
    }   
}

✔️ Now

{
    "devDependencies": {
        "@aedart/vuepress-utils": "^0.7.0"
    }   
}

Please read vuepress' changelog for additional details.

Webpack Bundle

In addition to the above, the @aedart/vuepress-utils automatically comes with @vuepress/bundler-webpack as its peed dependency.

From v0.3.x to v0.4.x

Rest Parameters for forgetAll(), hasAll() and hasAny()

forgetAll(), hasAll() and hasAny() (in @aedart/support/object submodule) now accept rest parameters instead of an array of paths. If you are using these methods, then you need to upgrade or risk unexpected results.

❌ Previously

import {
    forgetAll,
    hasAll,
    hasAny
} from "@aedart/support/objects";

hasAny(target, [ 'a', 'b.c.age' ]);
hasAll(target, [ 'a', 'b.c.age' ]);
forgetAll(target, [ 'a', 'b.c.age' ]);

✔️ Now

hasAny(target, ...[ 'a', 'b.c.age' ]);
hasAll(target, ...[ 'a', 'b.c.age' ]);
forgetAll(target, ...[ 'a', 'b.c.age' ]);

// ...Or
hasAny(target, 'a', 'b.c.age');
hasAll(target, 'a', 'b.c.age');
forgetAll(target, 'a', 'b.c.age');

Onward

More details can be found in the changelog.

Edit page
Last Updated:
Contributors: alin, Alin Eugen Deac
Prev
Release Notes
Next
Contribution Guide