Extension tutorial

Flutter ORM M8 Generator

VS Code extension to generate models and database adapter based on f-orm-m8 framework for Flutter application

GitHub release vs marketplace version Build Status license

Showcase

Introduction

This VS Code extension scaffolds a Flutter project, adding f-orm-m8 dependencies and framework. The current framework integrates f-orm-m8-sqlite generator engine and is dedicated for SQLite data repository. In the future, we plan to extend the generator engines to other data repository types.

Features

  • Check if the project is a Flutter one, and add the required dependencies to pubspec.yaml
  • Generates the f-orm-m8 framework folder structure
  • Entering the model name, the user have the possibility to generate templated starter models implementing:
    • DbEntity
    • DbAccountEntity
    • DbAccountRelatedEntity
  • Parse the existing and newly created models annotations and generates, according to f-orm-m8 annotation system, the fixture and the database adapter

Requirements

Installation

Install from the Visual Studio Code Marketplace or by searching within VS Code for @id:matei-tm.f-orm-m8-generator.

Documentation

The extension registers two commands (accessible from Command Palette...):

  • f-orm-m8: Generate Sqlite Fixture – to interactively generate f-orm-m8 compatible models and fixture
  • f-orm-m8: Regenerate – to regenerate fixture after direct user changes

For more details, please see:

Changelog

Please see project’s changelog

Disclaimer

Important: This extension, being a code generator, will create files and folders on the hard drive. Use a suitable source control system (eg, git) to protect your code from transient changes. The generator creates or updates, in the current Flutter project, the following files/folders:

  • pubspec.yaml
  • lib/models/*.dart
  • lib/main.adapter.g.m8.dart

Although I should not overwrite any file, other than those mentioned, during this process, I do not provide any warranty or take any responsibility for the loss of data.