kt_isar 0.0.5 copy "kt_isar: ^0.0.5" to clipboard
kt_isar: ^0.0.5 copied to clipboard

Provides extension methods to use kt_dart objects for isar operations

example/example.md

import 'package:flutter/cupertino.dart';
import 'package:kt_dart/kt.dart';
import 'package:kt_isar/kt_isar.dart';
import 'package:path_provider/path_provider.dart';

part 'main.g.dart';

Future<void> main(List<String> args) async {
  WidgetsFlutterBinding.ensureInitialized();
  await StorageService().init();
  final bob = Person('Bobby');
  final maja = Person('Maja');
  final albert = Person('Albert');

  final persons = KtList.of(bob, maja, albert);

  final ids = StorageService().addPersons(persons);

  print(StorageService().getPersons(ids).toString());
}

class StorageService {
  Isar? _isar;
  static final StorageService _instance = StorageService._internal();
  factory StorageService() => _instance;

  StorageService._internal();

  Future<void> init() async {
    _isar = await _startIsar();
  }

  Future<Isar> _startIsar() async {
    final dir = await getApplicationSupportDirectory();
    return await Isar.open(
      schemas: [PersonSchema],
      directory: dir.path,
    );
  }

  KtList<int> addPersons(KtList<Person> persons) {
    return _isar!.writeTxnSync((isar) => isar.persons.putAllKtSync(persons));
  }

  KtList<Person?> getPersons(KtList<int> ids) {
    return _isar!.writeTxnSync<KtList<Person?>>(
        (isar) => isar.persons.getAllKtSync(ids));
  }
}

@Collection()
class Person {
  int? id;
  final String name;

  Person(this.name);

  @override
  String toString() {
    return 'Person(name:$name)';
  }
}

0
likes
130
pub points
0%
popularity

Publisher

verified publishermorawietz.dev

Provides extension methods to use kt_dart objects for isar operations

Repository (GitLab)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

faker, isar, kt_dart, mockito

More

Packages that depend on kt_isar