Skip to content

Instantly share code, notes, and snippets.

View icebob's full-sized avatar

Icebob icebob

View GitHub Profile
@icebob
icebob / moleculer.js
Last active February 15, 2020 17:09
Moleculer quick example
const { ServiceBroker } = require("moleculer");
// Create broker
const broker = new ServiceBroker();
// Create a service
broker.createService({
name: "math",
actions: {
add(ctx) {
return Number(ctx.params.a) + Number(ctx.params.b);
@icebob
icebob / Dockerfile
Created July 26, 2017 10:42
Dockerfile for the sample service
FROM node:6
RUN mkdir /app
WORKDIR /app
COPY package.json .
RUN npm install --production
COPY . .
@icebob
icebob / joi-validator.js
Created September 11, 2017 09:23
Example Joi validator for Moleculer
"use strict";
let ServiceBroker = require("../src/service-broker");
let BaseValidator = require("../src/validator");
let { ValidationError } = require("../src/errors");
// --- JOI VALIDATOR CLASS ---
class JoiValidator extends BaseValidator {
constructor() {
super();
@icebob
icebob / store.js
Created December 14, 2017 13:41
Simple event storing service for Moleculer
"use strict";
let ServiceBroker = require("../src/service-broker");
let broker = new ServiceBroker({
logger: true,
logLevel: "debug",
});
broker.createService({
@icebob
icebob / param-converter.middleware.js
Last active November 6, 2018 17:30
Params converter middleware for Moleculer framework
"use strict";
const ServiceBroker = require("../src/service-broker");
/**
* Proof-of-Concept middleware to convert context params
* @param {Function} handler
* @param {Action} action
*/
function paramConverterMiddleware(handler, action) {
@icebob
icebob / example.js
Last active August 26, 2018 15:34
Safe JSON Serializer for Moleculer framework
const ServiceBroker = require("moleculer");
const SafeJSONSerializer = require("./safe-json-serializer.js");
const broker = new ServiceBroker({
logger: true,
serializer: new SafeJSONSerializer()
});
@icebob
icebob / test.spec.js
Last active May 4, 2018 17:32
Test Moleculer service with mocking
const MyService = {
name: "my",
actions: {
getImportantData() {
return ctx.call("other.get")
.then(res => {
return {
id: 1,
data: res
};
@icebob
icebob / stat.service.js
Created June 15, 2018 09:35
Old $node.stats code as a service
"use strict";
const defaultsDeep = require("lodash/defaultsDeep");
/**
*
*
* @class StatRequestStore
*/
class StatRequestStore {
@icebob
icebob / serve.js
Last active May 1, 2022 16:31
Running Vue CLI 3 generated project with custom Express server
"use strict";
// Generate webpack config with CLI service
const webpackConfig = require("@vue/cli-service/webpack.config.js");
// Create express app
const express = require("express");
const app = express();
// Configure webpack as middleware
@icebob
icebob / __replit_main__
Created October 28, 2018 12:29
moleculer-demo created by icebob - https://repl.it/@icebob/moleculer-demo
const { ServiceBroker } = require('moleculer');
let broker = new ServiceBroker({
logger: console,
logLevel: 'info',
transporter: "nats://demo.nats.io:4222"
});
broker.createService({
name: 'math',