generateFirebaseJson method

Future<void> generateFirebaseJson()

Generate firebase.json

Implementation

Future<void> generateFirebaseJson() async {
  if (config.firebaseProjectId == null) {
    warn('Firebase project ID not set, skipping firebase.json');
    return;
  }

  info('Generating firebase.json (render mode: '
      '${config.jasprRenderMode.displayName})...');

  final String hostingPublicPath = _hostingPublicPath();
  final List<Map<String, Object>> rewrites = _hostingRewrites();
  final String rewritesJson = _renderRewrites(rewrites);

  final String content =
      '''
{
"firestore": {
  "rules": "config/firestore.rules",
  "indexes": "config/firestore.indexes.json"
},
"storage": {
  "rules": "config/storage.rules"
},
"hosting": [
  {
    "target": "release",
    "public": "$hostingPublicPath",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": $rewritesJson
  },
  {
    "target": "beta",
    "public": "$hostingPublicPath",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": $rewritesJson
  }
]
}
''';

  final File file = File(p.join(config.outputDir, 'firebase.json'));
  await file.writeAsString(content);
  success('Generated: firebase.json');
}