blob: 7a1159238bd5cdff5ad59b9d97afa82df359791f [file]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:meta/meta_meta.dart';
/// An annotation used to generate a private field containing the contents of a
/// JSON file.
///
/// The annotation can be applied to any member, but usually it's applied to
/// top-level getter.
///
/// In this example, the JSON content of `data.json` is populated into a
/// top-level, final field `_$glossaryDataJsonLiteral` in the generated file.
///
/// ```dart
/// @JsonLiteral('data.json')
/// Map get glossaryData => _$glossaryDataJsonLiteral;
/// ```
@Target({TargetKind.getter})
class JsonLiteral {
/// The relative path from the Dart file with the annotation to the file
/// containing the source JSON.
final String path;
/// `true` if the JSON literal should be written as a constant.
final bool asConst;
/// Creates a new [JsonLiteral] instance.
const JsonLiteral(this.path, {this.asConst = false});
}