initialise static method Null safety

Future<FMTCRegistry> initialise(
  1. {required Directory directory,
  2. required int databaseMaxSize,
  3. required CompactCondition? databaseCompactCondition}
)

Implementation

static Future<FMTCRegistry> initialise({
  required Directory directory,
  required int databaseMaxSize,
  required CompactCondition? databaseCompactCondition,
}) async =>
    instance = FMTCRegistry._(
      directory: directory,
      recoveryDatabase: await Isar.open(
        [DbRecoverableRegionSchema],
        name: '.recovery',
        directory: directory.absolute.path,
        maxSizeMiB: databaseMaxSize,
        compactOnLaunch: databaseCompactCondition,
      ),
      storeDatabases: Map.fromEntries(
        await Future.wait(
          await directory
              .list()
              .where(
                (e) =>
                    e is File &&
                    !path.basename(e.path).startsWith('.') &&
                    !path.basename(e.path).endsWith('-lck'),
              )
              .map((f) async {
            final id = path.basenameWithoutExtension(f.path);
            return MapEntry(
              int.parse(id),
              await Isar.open(
                [DbStoreDescriptorSchema, DbTileSchema, DbMetadataSchema],
                name: id,
                directory: directory.absolute.path,
                maxSizeMiB: databaseMaxSize,
                compactOnLaunch: databaseCompactCondition,
              ),
            );
          }).toList(),
        ),
      ),
    );