Coder Social home page Coder Social logo

Comments (5)

alexdrans avatar alexdrans commented on June 7, 2024 1

@kenhowardpdx

You can just do;

let manifest = require('./config/manifest');

manifest.registrations.push({
  "plugin": {
    "register": "hapi-sequelize",
    "options": {
      "name": "name",
      "models": 'models/models/*.js',
      "sequelize": new Sequelize(db_string, {
      }),
      "sync": true,
      "forceSync": false
    }
  }
})

// Load the manifest and start the server

This loads the module correctly for me. hapi-sequelize v3.0.4 and glue 4.0.0

from hapi-sequelize.

danecando avatar danecando commented on June 7, 2024

I'm vaguely familiar with glue. It sounds like there isn't much we can do about that besides going back to having the plugin manage building up the Sequelize instance during registration again. Is this the case or are there any work arounds?

from hapi-sequelize.

kenhowardpdx avatar kenhowardpdx commented on June 7, 2024

That's precisely the case, depending on hapi-sequelize to create the instance. What are the cons to having Sequelize be a core dependency?

from hapi-sequelize.

danecando avatar danecando commented on June 7, 2024

That's how the plugin used to work before I did a complete rewrite (v3). Too tired to try and come up with a list of cons right now but my goal was to decouple Sequelize from the plugin and just make the plugin a lot simpler and more flexible overall.

I have no interest in going back to that at this moment but I will take a look at this issue later and weigh the options

from hapi-sequelize.

kenhowardpdx avatar kenhowardpdx commented on June 7, 2024

The work around is registering an internal plugin that in-turn registers hapi-sequelize.

./server/app-start/hapi-sequelize/index.js:

import database from '../../database';

export const register: any = function register(server, options, next) {
    server.register({
        register: require('hapi-sequelize'),
        options: [
            {
                name: 'db',
                models: ['./server/models/**/*.js'],
                sequelize: database,
                sync: true
            }
        ]
    });

    next();
};

register.attributes = {
    name: 'sequelize',
    version: '1.0.0'
};

./server/database/index.js:

// libs
import * as Sequelize from 'sequelize';

export default new Sequelize(process.env.DB_DATABASE, process.env.DB_USER, process.env.DB_PASSWORD, {
    host: process.env.DB_HOST,
    port: process.env.DB_PORT,
    dialect: process.env.DB_DIALECT,
    dialectOptions: {
        encrypt: true
    }
});

./server/manifest.js:

// libs
import {Store} from 'confidence';

let store: Store,
    manifest: any;

manifest = {
    $meta: 'server setup',
    connections: [...],
    registrations: [
        // Third Party Plugins
        ...
        {
            plugin: {
                register: './app-start/hapi-sequelize'
            }
        }
        ...
    ]
};

store = new Store(manifest);

from hapi-sequelize.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.