sm_db 0.1.0 copy "sm_db: ^0.1.0" to clipboard
sm_db: ^0.1.0 copied to clipboard

Small Database For Any Data Type.image Cover,Json Data,File Data with Meta.

example/sm_db_example.dart

import 'package:sm_db/sm_db.dart';

void main() async {
  final db = SMDB.getInstance();
  await db.open('test.db');

  db.registerAdapterNotExists<Post>(PostAdapter());
  db.registerAdapterNotExists<PostContent>(PostContentAdapter());

  final files = await db.readAllFiles();
  await db.mabyCompact();

  // await db.removeRecord(files.first);

  // await db.addFile(
  //   '/home/thancoder/Downloads/blender-5.1.0-linux-x64.tar.xz',
  //   onProgress: (progress) =>
  //       print('Progress: ${(progress * 100).toStringAsFixed(2)}%'),
  // );
  // await db.extractFile(
  //   files.first,
  //   savePath: files.first.name,
  //   onProgress: (progress) =>
  //       print('Progress: ${(progress * 100).toStringAsFixed(2)}%'),
  // );
  // await db.deleteCover();
  // print(files.first.info);
  // await db.removeRecord(files.last);
  // await db.compact(
  //   onProgress: (progress) =>
  //       print('Progress: ${(progress * 100).toStringAsFixed(2)}%'),
  // );

  print('all record: ${await db.readAll()}');

  print('lastIndex: ${db.lastIndex}');
  print('deletedCount: ${db.deletedCount}');
  print('deletedSize: ${db.deletedSize}');
  print('Type: ${db.header}');
}

class PostAdapter extends JsonDBAdapter<Post> {
  @override
  Post fromMap(Map<String, dynamic> map) {
    return Post.fromJson(map);
  }

  @override
  int get getUniqueFieldId => 1;

  @override
  int getId(Post value) {
    return value.id;
  }

  @override
  Map<String, dynamic> toMap(Post value) {
    return value.toJson();
  }
}

class PostContentAdapter extends JsonDBAdapter<PostContent> {
  @override
  PostContent fromMap(Map<String, dynamic> map) {
    return PostContent.fromJson(map);
  }

  @override
  int getId(PostContent value) {
    return value.id;
  }

  @override
  int get getUniqueFieldId => 2;

  @override
  Map<String, dynamic> toMap(PostContent value) {
    return value.toJson();
  }

  @override
  int getParentId(PostContent value) {
    return value.parentId;
  }
}

class Post {
  final int id;
  final String title;

  const Post({this.id = 0, required this.title});

  Map<String, dynamic> toJson() {
    return {'id': id, 'title': title};
  }

  factory Post.fromJson(Map<String, dynamic> json) {
    return Post(id: json['id'], title: json['title']);
  }
}

class PostContent {
  final int id;
  final int parentId;
  final String content;

  const PostContent({
    this.id = 0,
    required this.parentId,
    required this.content,
  });

  Map<String, dynamic> toJson() {
    return {'id': id, 'parentId': parentId, 'content': content};
  }

  factory PostContent.fromJson(Map<String, dynamic> json) {
    return PostContent(
      id: json['id'],
      parentId: json['parentId'],
      content: json['content'],
    );
  }
}
0
likes
0
points
236
downloads

Publisher

unverified uploader

Weekly Downloads

Small Database For Any Data Type.image Cover,Json Data,File Data with Meta.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dart_core_extensions

More

Packages that depend on sm_db