vuex-orm-grpc

This plugin allow you to perform grpc call from your vuex orm models

Usage no npm install needed!

<script type="module">
  import vuexOrmGrpc from 'https://cdn.skypack.dev/vuex-orm-grpc';
</script>

README

Vuex ORM GRPC CircleCI

This plugin allow you to perform grpc call from your vuex orm models

QuickStart

Installation

npm install @vuex-orm/core vuex-orm-grpc --save 

Setting up

import Vue from "vue";
import Vuex from "vuex";
import VuexORM from "@vuex-orm/core";
import VuexOrmGrpc from "vuex-orm-grpc";

Vue.use(Vuex);
VuexORM.use(VuexOrmGrpc);

Model

import {Model} from "@vuex-orm/core";

export default class Pamphlet extends Model {
    static entity = "Pamphlet";

    static controller = "PamphletController";

    static grpcWebPb = require("@/grpc/generated/pamhplet_grpc_web_pb");

    static grpcOptions = {
        url: "http://localhost:8082",
        credentials: null,
        options: null
    };

    static primaryKey = "uuid";

    static fields() {
        return {
            uuid: this.uid(),
            code: this.string(),
            createdAt: this.string(),
            updatedAt: this.string(),
            modifiedBy: this.string(),
            isArchived: this.boolean()
        };
    }
}

Usage

Call

You can access all of your grpc services with grpc() attribute

Pamphlet.grpc()
    .list(Pamphlet.grpc().PamphletListRequest, {})
    .then(r => {
        console.log(r.toObject())
        Pamphlet.insert({
            data: r.toObject().resultsList
        });
    })
    .catch(error => {
        throw new Error(error);
    });

Convert your instance to requester object.

Your instance contain .$toProto() function who convert your model instance to an proto requester object. The requester is set by Model.entity attribute.

let pamphlet = new Pamphlet();

pamphlet.isArchived = false;
pamphlet.code = "Foo";
Pamphlet.grpc()
    .create(pamphlet.$toProto(), {})
    .then(r => {
        Pamphlet.insert({
            data: r.toObject()
        });
    })
    .catch(error => {
        throw new Error(error);
    });