mason

Tools which allow developers to create and consume reusable templates called bricks.

Stars
915

Bot releases are visible (Hide)

mason - v0.0.1-dev.51

Published by felangel about 3 years ago

  • feat: conditional file and directory creation support
mason - v0.0.1-dev.50

Published by felangel about 3 years ago

  • BREAKING refactor: remove mason install and mason uninstall
    • mason install -> mason add -g
    • mason uninstall -> mason remove -g
  • feat: adjust mason init generated mason.yaml
  • feat: improve mason list empty output
  • feat: create mason remove command
  • feat: create mason add command
  • feat: mason init command automatically gets first brick
  • feat: improve output and description for mason get command
  • fix: logger stopwatch units
  • docs: update example/README
mason - v0.0.1-dev.49

Published by felangel about 3 years ago

  • refactor: remove dart:io platform dependency
mason - v0.0.1-dev.48

Published by felangel about 3 years ago

  • feat: add append conflict resolution strategy
  • fix: mason get ensures brick exists
  • docs: add built-in lambdas section to README
mason - v0.0.1-dev.47

Published by felangel about 3 years ago

  • fix: vars in brick.yaml are not required
mason - v0.0.1-dev.46

Published by felangel about 3 years ago

  • fix: mason bundle resolves implicit_dynamic_map_literal in generated Dart bundle
  • docs: add bundle usage to README
mason - v0.0.1-dev.45

Published by felangel over 3 years ago

  • fix: mason bundle add .otf support.
mason - v0.0.1-dev.44

Published by felangel over 3 years ago

File Conflict Resolution

By default, mason make will prompt on each file conflict and will allow users to specify how the conflict should be resolved via Yna:

Y - overwrite (default)
n - do not overwrite
a - overwrite this and all others

A custom file conflict resolution strategy can be specified via the --on-conflict option:

# Always prompt when there is a file conflict (default)
$ mason make hello --name Felix --on-conflict prompt

# Always overwrite when there is a file conflict
$ mason make hello --name Felix --on-conflict overwrite

# Always skip when there is a file conflict
$ mason make hello --name Felix --on-conflict skip
mason - v0.0.1-dev.43

Published by felangel over 3 years ago

  • feat: support partials

    Example:

    ├── HELLO.md
    ├── {{~ footer.md }}
    └── {{~ header.md }}
    

    {{~ header.md }}

    # 🧱 {{name}}
    

    {{~ footer.md }}

    _made with 💖 by mason_
    

    HELLO.md

    {{> header.md }}
    
    Hello {{name}}!
    
    {{> footer.md }}
    

    $ mason make hello --name Dash

    HELLO.md

    # 🧱 Dash
    
    Hello Dash!
    
    _made with 💖 by mason_
    
mason - v0.0.1-dev.42

Published by felangel over 3 years ago

  • fix: improve mason make --help to show complete usage information

    Generate code using an existing brick template.
    
    Usage: mason make [arguments]
    -h, --help           Print this usage information.
    -c, --config-path    Path to config json file containing variables.
    -o, --output-dir     Directory where to output the generated code.
                        (defaults to ".")
    
    Run "mason help" to see global options.
    
mason - v0.0.1-dev.41

Published by felangel over 3 years ago

  • feat: add OverwriteRule for file conflict resolution (Yna)
    • Y - overwrite (default)
    • n - do not overwrite
    • a - overwrite this and all others

mason-conflict-resolution

mason - v0.0.1-dev.40

Published by felangel over 3 years ago

  • fix: create target directory if it does not exist
mason - v0.0.1-dev.39

Published by felangel over 3 years ago

  • feat!: update mason make to support custom output directory via --output-dir (-o)
  • refactor!: rename mason bundle --directory (-d) to mason bundle --output-dir (-o)
  • refactor!: rename mason make --json (-j) to mason make --config-path (-c)
mason - v0.0.1-dev.38

Published by felangel over 3 years ago

  • feat!: remove --force from mason cache clear
    • mason cache clear will remove all local bricks so --force is not necessary
  • fix: mason cache clear behavior to always clear local and global brick caches
  • fix: local and global brick installation conflicts
  • fix: mason list duplicate bricks
  • refactor: MasonCache to BricksJson
    • simplification of internal APIs and cache implementation
mason - v0.0.1-dev.37

Published by felangel over 3 years ago

  • feat: add mason list command
  • docs: update command descriptions for consistency
mason - v0.0.1-dev.36

Published by felangel over 3 years ago

  • feat: add mason uninstall command
mason - v0.0.1-dev.35

Published by felangel over 3 years ago

  • fix: adjust mason cache clear --force target directory to avoid deleting local files
mason - v0.0.1-dev.34

Published by felangel over 3 years ago

  • fix: local mason get installation location for remote bricks
  • fix!: always attempt to fetch latest remote brick
    • mason get no longer supports --force since it is handled automatically
mason - v0.0.1-dev.33

Published by felangel over 3 years ago

  • feat: mason install command for global brick templates
  • docs: update mustache manual link
  • docs: update mason.yaml from init to use https for git
mason - v0.0.1-dev.32

Published by felangel over 3 years ago

  • feat!: windows compatibility fixes
    • 100% compatibility across macos, linux, and windows
    • if you are experiencing issues after upgrading, try force re-fetching all templates via mason get --force
Package Rankings
Top 2.15% on Pub.dev
Top 9.59% on Proxy.golang.org
Badges
Extracted from project README
pub package pub package pub package pub package mason (Package of the Week) Observable Flutter: Building a Mason brick Meet Mason: Intro to Templating and Custom Code Generation Mason Video Tutorial Powered by Mason