Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(core): refactor API of Tokens #2757

Merged
merged 15 commits into from
Jun 11, 2019
Merged

refactor(core): refactor API of Tokens #2757

merged 15 commits into from
Jun 11, 2019

Commits on Jun 5, 2019

  1. Updating a bunch of usage

    rix0rrr committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    5fb1153 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f7611ee View commit details
    Browse the repository at this point in the history
  3. fix(core): refactor use of Tokens

    Tokens are now represented by the interface `IToken`. The class `Token`
    still exists, but it is used to hold static routines for token encoding
    (`Token.encodeAsString()`), and as a potential base class for `IToken`
    implementations so some default functionality is inherited (this
    inheritance is an implementation optimization, it is not a
    requirement!).
    
    Actual token use is split into 2 categories:
    
    - *Intrinsics*, represented by `Intrinsic` class: these are to represent values
      that will be understood by the deployment language formalism (e.g.
      CloudFormation), and can be used to escape language type checking.
    - *Lazy values*, represented by a `Lazy` class with static factories:
      these will be used to represent type-checked but lazily-produced
      values (evaluated at synthesis time).
    
    In order to be JSII-compatible (which does not currently support
    lambdas), `Lazy.stringValue()` et. al. take an interface with a single
    method instead of a function.
    
    Also changed in this commit: shoring up property names for encoded
    tokens in classes like `CfnParameter` and `CfnElement`.
    
    * `.stringValue` => `.valueAsString`, etc so `.value`, `.valueAsString`,
      `.valueAsList` etc. group together in autocomplete.
    * `.ref` now returns a Token, `.refAsString` returns the stringified
      version that token.
    
    To match the other standard the latter should actually be `.refAsString`
    but `.ref` is used in so many places that this might be uncomfortable?
    
    Revert `Token.isToken()` to check if the passed object is literally an
    `IToken` (to match `Array.isArray()` and other related methods), and
    `Token.unresolved()` to check if the passed object might also be an
    encoded Token.
    
    Fixes #1933.
    
    BREAKING CHANGES:
    
    * `Token` can no longer be instantiated. Instead, instantiate
      `Intrinsic` or use `Lazy.stringValue` and others.
    * `Token.isToken()` will only return true if the object is a Token,
      for detecting arbitrary encoded tokens, use `Token.unresolved()`.
    * `CfnOutput`: remove `.ref`, since they can't be referenced anyway.
    * `CfnParameter`: rename `.stringValue` => `.valueAsString` (and
      similar for lists and numbers).
    * `.ref` now returns an `IToken`, use `.refAsString` to get a
      string-encoded Token.
    rix0rrr committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    1bef5fc View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2019

  1. Hiding more details

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    62f2cc2 View commit details
    Browse the repository at this point in the history
  2. Package locks

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    a056546 View commit details
    Browse the repository at this point in the history
  3. Fix test bugs

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    7a6abbb View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1faaffc View commit details
    Browse the repository at this point in the history
  5. Fix straggling import

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    4ea1251 View commit details
    Browse the repository at this point in the history
  6. Missed function rename

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    1fe30ac View commit details
    Browse the repository at this point in the history
  7. Another missed refactor

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    245c82a View commit details
    Browse the repository at this point in the history
  8. Fix cross-stack references

    rix0rrr committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    e37bb4d View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2019

  1. Update expectations

    Rico Huijbers committed Jun 10, 2019
    Configuration menu
    Copy the full SHA
    cd0dfb6 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2019

  1. Configuration menu
    Copy the full SHA
    8aaf905 View commit details
    Browse the repository at this point in the history
  2. package-locks

    rix0rrr committed Jun 11, 2019
    Configuration menu
    Copy the full SHA
    c17e925 View commit details
    Browse the repository at this point in the history
  3. Fix build

    rix0rrr committed Jun 11, 2019
    Configuration menu
    Copy the full SHA
    9494e58 View commit details
    Browse the repository at this point in the history