Coder Social home page Coder Social logo

megadata's Introduction

Megadata

GitHub tag npm npm Gitter

Greenkeeper badge Build Status: Linux & macOS Build Status: Windows Coveralls branch

Megadata is a library you can use to serialize/deserialize network game data.

This library will help you deal with:

  1. Defining type IDs and type classes
  2. Definining the serialization/deserialization format to use
  3. Re-using messages object, by creating and maintaining a message pool
  4. Sharing message libraries between client (JavaScript) and server (Node.js)
  5. TypeScript type checks

Requirements

  • Node.js 8.0 or higher

Installation

npm install --save megadata

You will also need to make sure that the following configuration is set in your tsconfig.json:

{
  "compilerOptions": {
    "experimentalDecorators": true
  }
}

Usage

Defining message types

shared/messages/index.ts

import megadata, { TypeDecorator } from 'megadata'

export enum TypeIds {
  Join,
  Leave
}

export const Type: TypeDecorator<TypeIds> = megadata(module)

We first create a list of message types as a const enum and list the messages we will send and receive in our game. We then generate a @Type decorator

shared/messages/types/Join.ts

import { Type, TypeIds } from '../'
import MessageType from 'megadata/classes/MessageType'
import Binary, { Uint32 } from 'megadata/classes/BinarySerializationFormat'

@Type(TypeIds.Join, Binary)
export default class Join extends MessageType {
  @Uint32
  public time: number
}

shared/messages/types/Leave.ts

import { Type, TypeIds } from '../'
import MessageType from 'megadata/classes/MessageType'
import Json from 'megadata/classes/JsonSerializationFormat'

@Type(TypeIds.Leave, Json)
export default class Leave extends MessageType {
  public time: number
}

Next, we define what our Join and Leave messages type will look like, and how we should serialize and deserialize it.

Megadata ships with two serialization formats:

  1. binary: deals only with messages containing numbers, but is blazing fast
  2. json: deals with any kind of data, but is slower

You may notice that the Binary serialization format requires additional annotations this is required to define (and optimized) the size and speed of serialization and deserialization.

Sending and receiving messages

server/classes/Player.ts

import Connection from '...'
import MessageEmitter from 'megadata/classes/MessageType'
import MessageType, { IMessageType, MessageTypeData } from 'megadata/classes/MessageType'

export class Player extends MessageEmitter {
  constructor(private connection: Connection) {
    connection.on('message', async (buffer: ArrayBuffer) => {
      const message = MessageType.parse(buffer)
      await this.emitAsync(message)
      message.release()
    })
  }

  public async function send<T extends MessageType>(type: IMessageType<T>, data: MessageTypeData<T>) {
    const message = type.create<T>(data)
    const buffer = message.pack()
    await this.connection.write(buffer)
    message.release()
  }
}

Messages are recycled from an object pool to reduce the impact of garbage collection; therefore, it is important to remember to release messages back into the object pool once you are done with them.

server/classes/Game.ts

import Player from './Player'

import Join from 'shared/messages/types/Join.ts'

export default class Game {
  // ...

  public addPlayer(player: Player) {
    player.on(Join, ({ time }) => console.log('Join time:', time))
    player.on(Leave, ({ time }) => console.log('Leave time:', time))
  }
}

Messages and events auto-loading

Running a Node.js server with auto-loading

Auto-loading uses require.context, which is a webpack-specific API. When using Megadata with auto-loading in Node.js, you will therefore need to load the mock provided by the library.

ts-node -r megadata/register index.ts

Setting types auto-loading

shared/messages/index.ts

import megadata, { TypeDecorator } from 'megadata'

const types = require.context('./types/')

export enum TypeIds {
  Join,
  [...]
}

export const Type: TypeDecorator<TypeIds> = megadata(module, types)

The following code will dynamically load type classes on demand from the shared/messages/types folder. If no listeners were ever set to listen for messages of this type, an Event.Unknown event will be emitted (see below).

Setting event handlers auto-loading for a class inheriting MessageEmitter

server/classes/Player.ts

import MessageEmitter, { AutoloadEvents } from 'megadata/classes/MessageEmitter'

const events = require.context('../events/')

@AutoloadEvents(events)
export default class Player extends MessageEmitter {}

A given message emitter may end up handling a large number or events. Event handlers auto-loading provides a mechanism for breaking event handling down into event handler files that are auto-loaded on demand. In this case, we will auto-load all events under server/events.

server/events/Join.ts

import Player from '../classes/Player'
import Join from 'shared/messages/types/Join'

export default function (player: Player) {
  player.on(Join, (message) => console.log('Received join event', message))
}

Event handler files export a single default function which will receive a message emitter instance; you may then set the even listeners according to your needs.

Custom serialization

shared/messages/classes/CustomSerializationFormat.ts

import MessageType from './MessageType'
import SerializationFormat, { ISerializerFunctions } from './SerializationFormat'

export default class CustomSerializationFormat extends SerializationFormat {
  public create<I, T extends MessageType>(id: I, size: number, attributes: any) {
    return {
      create: (...),
      pack: (...),
      unpack: (...),
    } as ISerializerFunctions<I, T>
  }
}

You can create your own custom serialization format. Above is a quick stub, but you should have a look at the default serialization formats provided by megadata.

Acknowledgements

  • Initial code and implementation (JavaScript): @ronkorving
  • Logo customizations: @lzubiaur

License

MIT License. Copyright (c) Wizcorp Inc.

megadata's People

Contributors

greenkeeper[bot] avatar greenkeeperio-bot avatar myoshi avatar spkjp avatar stelcheck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

stelcheck nokitoo

megadata's Issues

Error when instantiating MessageType

When I try to create a message without using the MessageType.create method, it throws me an error when I use the method MessageType.pack.

Here is my code:

// app.js
const message: JoinMessage = new JoinMessage();
message.nickname = 'Nokito';

message.pack(); // <= Throw an error


// messages/types/Join.js
import { Type, TypeIds } from '../'
import MessageType from 'megadata/classes/MessageType'
import JsonFormat from 'megadata/classes/JsonSerializationFormat'

@Type(TypeIds.Join, JsonFormat)
export default class JoinMessage extends MessageType {
  public nickname: string
}

And the error:

JsonSerializationFormat.ts:23 Uncaught TypeError: Cannot read property 'setUint8' of undefined
at JoinMessage._pack (JsonSerializationFormat.ts:23)
at JoinMessage.../../../megadata/src/classes/MessageType.ts.MessageType.pack (MessageType.ts:113)
at MyRPCClient. (app.ts:13)
at MyRPCClient.../../node_modules/node-libs-browser/node_modules/events/events.js.EventEmitter.emit (events.js:78)
at WebSocket. (index.ts:55)

We could throw an Error when trying to instantiate a MessageType without using the .create method.

Benchmarking tool

We will need benchmark scripts to measure:

  • Performance: using different message types and serializations
  • Memory footprint: make sure that no garbage is being created (e.g. that object pooling works correctly)

Ideally, this would take the form of a CLI tool that can be used by third-party serialization formats to measure both performance and memory footprint.

An in-range update of @types/mocha is breaking the build 🚨

The devDependency @types/mocha was updated from 5.2.5 to 5.2.6.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of semantic-release is breaking the build 🚨

Version 15.9.15 of semantic-release was just published.

Branch Build failing 🚨
Dependency semantic-release
Current Version 15.9.14
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

semantic-release is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • coverage/coveralls: First build on greenkeeper/semantic-release-15.9.15 at 100.0% (Details).

Release Notes v15.9.15

15.9.15 (2018-09-11)

Bug Fixes

  • package: update debug to version 4.0.0 (7b8cd99)
Commits

The new version differs by 1 commits.

  • 7b8cd99 fix(package): update debug to version 4.0.0

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of is-there is breaking the build 🚨

The dependency is-there was updated from 4.4.3 to 4.4.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

is-there is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Release Notes for 4.4.4

Happy New Year! 🎉 🚀

This pull request is going to update the documentation of this project and add the Buy me a coffee cookies and tea button:

Buy Me A Coffee

If this project helped you, tea and cookies is perhaps something I would really enjoy. :)

Commits

The new version differs by 2 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Example project

Create a small sample client/server web project to demonstrate how to leverage this library. Ideally, the browser window would also show real-time stats about memory usage and performance (msgs per seconds) so to be usable as an alternative mean of benchmarking (See #1)

CI/CD

Set up the project with Travis, Coveralls and AppVeyor for CI/CD on PRs.

Benchmark suite not working on Windows

  • Electron is missing in dev deps
  • Need to check for supported node version (>=8)
  • Browser: getting ENOENT on webpack-dev-server call (might need .cmd?)
  • Browser: shutting down window does not kill wepack server (or electron itself)
  • Node: Getting ECONNRESET (flag issue?)

An in-range update of @commitlint/config-angular is breaking the build 🚨

The devDependency @commitlint/config-angular was updated from 7.1.2 to 7.3.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@commitlint/config-angular is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • coverage/coveralls: First build on greenkeeper/@commitlint/config-angular-7.3.1 at 100.0% (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of webpack is breaking the build 🚨

Version 4.17.3 of webpack was just published.

Branch Build failing 🚨
Dependency webpack
Current Version 4.17.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

webpack is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).
  • coverage/coveralls: First build on greenkeeper/webpack-4.17.3 at 100.0% (Details).
  • continuous-integration/appveyor/branch: AppVeyor build succeeded (Details).

Release Notes v4.17.3

Bugfixes

  • Fix exit code when multiple CLIs are installed
  • No longer recommend installing webpack-command, but still support it when installed
Commits

The new version differs by 7 commits.

  • ee27d36 4.17.3
  • 4430524 Merge pull request #7966 from webpack/refactor-remove-webpack-command-from-clis
  • b717aad Show only webpack-cli in the list
  • c5eab67 Merge pull request #8001 from webpack/bugfix/exit-code
  • 943aa6b Fix exit code when multiple CLIs are installed
  • 691cc94 Spelling
  • 898462d refactor: remove webpack-command from CLIs

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of travis-deploy-once is breaking the build 🚨

The devDependency travis-deploy-once was updated from 5.0.9 to 5.0.10.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

travis-deploy-once is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Release Notes for v5.0.10

5.0.10 (2018-12-12)

Bug Fixes

  • package: update p-retry to version 3.0.0 (b360e09)
Commits

The new version differs by 3 commits.

  • b360e09 fix(package): update p-retry to version 3.0.0
  • fe68469 chore(package): update nyc and sinon
  • 0f8d0d3 chore(package): update commitizen to version 3.0.0

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of npm-run-all is breaking the build 🚨

The devDependency npm-run-all was updated from 4.1.3 to 4.1.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

npm-run-all is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of webpack is breaking the build 🚨

The devDependency webpack was updated from 4.20.2 to 4.21.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).

Release Notes for v4.21.0

Features

  • add output.libraryTarget: "amd-require" which generates a AMD require([], ...) wrapper instead of a define([], ...) wrapper
  • support arrays of strings passed to output.library, which exposes the library to a subproperty

Bugfixes

  • fix cases where __webpack_require__.e is used at runtime but is not defined in the bundle
  • fix behavior of externals of global type

Performance

  • Some performance improvements to the chunk graph generation
Commits

The new version differs by 37 commits.

  • 432d2a3 4.21.0
  • 0fb6c60 Merge pull request #7038 from marcusdarmstrong/marcusdarmstrong-external-module-fix
  • 15b6f8b make afterEach async
  • 7bc5c98 Merge branch 'master' into marcusdarmstrong-external-module-fix
  • 2228daf Merge pull request #8230 from webpack/revert-8120-rh-silent-reporter
  • fadf875 remove dependency
  • 7c0b209 Revert "Re-enable jest-silent-reporter #hacktoberfest"
  • a868789 Merge pull request #8143 from MLoughry/miclo/optimize-chunk-graph-generation
  • 1d71ede Make changes suggested by @sokra to optimize chunk graph generation
  • 4d3fe00 Merge pull request #8134 from fscherwi/update-coveralls
  • 86f56bf update coveralls
  • 4c461e2 Merge pull request #8120 from rickhanlonii/rh-silent-reporter
  • 9fe42e7 Merge pull request #8118 from webpack/bugfix/issue-8110
  • 0b6ad2a Don't be clever with the set command because idk windows
  • 148016e Rerun yarn

There are 37 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @commitlint/cli is breaking the build 🚨

The devDependency @commitlint/cli was updated from 7.2.0 to 7.2.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@commitlint/cli is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • coverage/coveralls: Coverage pending from Coveralls.io (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of husky is breaking the build 🚨

The devDependency husky was updated from 1.1.1 to 1.1.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

husky is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • coverage/coveralls: First build on greenkeeper/husky-1.1.2 at 100.0% (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).

Commits

The new version differs by 9 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of copy-webpack-plugin is breaking the build 🚨

The devDependency copy-webpack-plugin was updated from 4.5.3 to 4.5.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

copy-webpack-plugin is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • coverage/coveralls: First build on greenkeeper/copy-webpack-plugin-4.5.4 at 100.0% (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Commits

The new version differs by 2 commits.

  • dc7aa5d chore(release): 4.5.4
  • 5670926 fix(processPattern): don't add 'glob' as directory when it is a file (contextDependencies) (#296)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @types/node is breaking the build 🚨

The devDependency @types/node was updated from 10.11.6 to 10.11.7.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/node is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • coverage/coveralls: First build on greenkeeper/@types/node-10.11.7 at 100.0% (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Message update/discard old

Related to #12

Allow for messages of a given type to be discarded if not yet sent. One example would be positional data: if position data messages have been sent multiple times within a given render frame, update the message waiting to be sent instead of sending both messages.

An in-range update of coveralls is breaking the build 🚨

The devDependency coveralls was updated from 3.0.2 to 3.0.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

coveralls is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • coverage/coveralls: First build on greenkeeper/coveralls-3.0.3 at 100.0% (Details).

Release Notes for Dependency security updates

As suggested by NPM and Snyk.

Commits

The new version differs by 1 commits.

  • aa2519c dependency security audit fixes from npm & snyk (#210)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Transmission management

Provide utility code to handle sending of data based on:

  1. render frame rate: buffer data to be sent and send it based on the desired frame rate
  2. network frame size: buffer data up to a certain size and send it (e.g. try to fill a network frame)

Data will be sent either once a network frame has been filled or once a certain timeout (based on the render frame rate) is reached.

An in-range update of @types/node is breaking the build 🚨

The devDependency @types/node was updated from 10.11.0 to 10.11.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/node is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

The automated release is failing 🚨

🚨 The automated release from the master branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this 💪.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


No npm token specified.

An npm token must be created and set in the NPM_TOKEN environment variable on your CI environment.

Please make sure to create an npm token and to set it in the NPM_TOKEN environment variable on your CI environment. The token must allow to publish to the registry https://registry.npmjs.org/.


Good luck with your project ✨

Your semantic-release bot 📦🚀

An in-range update of @commitlint/prompt-cli is breaking the build 🚨

The devDependency @commitlint/prompt-cli was updated from 7.2.0 to 7.2.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@commitlint/prompt-cli is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of webpack-cli is breaking the build 🚨

The devDependency webpack-cli was updated from 3.1.2 to 3.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack-cli is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Commits

The new version differs by 124 commits.

  • 6253a73 chore: v.3.2.0
  • 0c3be76 chore: make tests pass
  • 0b6bab3 chore: better defaults
  • 78436ff chore: add-on -> scaffold
  • 3281372 chore: simplify clean-all script
  • b0f4a0f chore: addon -> scaffold
  • 82c9ea8 chore: update lockfiles
  • a3fe013 Merge pull request #716 from EvsChen/dist-scaffold
  • f9bb82d Merge pull request #693 from lakatostamas/feature/find-config-recursively
  • 3ec2e9d chore: resolve conflict
  • 83602d4 chore: update package lock and scripts
  • d82b016 Merge pull request #720 from rishabh3112/patch-7
  • 4d9c847 Merge pull request #723 from eavichay/patch-1
  • 4b2a127 docs: improve the docs (#722)
  • 9ad8c1d See #721

There are 124 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of semantic-release is breaking the build 🚨

The devDependency semantic-release was updated from 15.10.2 to 15.10.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

semantic-release is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • coverage/coveralls: First build on greenkeeper/semantic-release-15.10.3 at 100.0% (Details).

Release Notes for v15.10.3

15.10.3 (2018-10-17)

Bug Fixes

  • do not log outated branch error for missing permission cases (0578c8b)
Commits

The new version differs by 6 commits.

  • 0578c8b fix: do not log outated branch error for missing permission cases
  • e291101 docs: add section existing tags in configuration docs
  • 8853922 docs: add troubleshooting section for reference already exists Git error
  • d45861b docs: clarify the "npm missing permission" troubleshooting section
  • 2ba0b81 docs: remove troubleshooting section related to legacy error messages
  • e93a663 docs: fix markdown link in configuration docs

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @types/webpack-env is breaking the build 🚨

The dependency @types/webpack-env was updated from 1.13.7 to 1.13.8.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/webpack-env is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of electron is breaking the build 🚨

The devDependency electron was updated from 3.0.3 to 3.0.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

electron is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Release Notes for electron v3.0.4

Bug Fixes/Changes

  • Backport of #14648. #15032

  • fix: Check minSize constraints before resizing (backport: 3-0-x). #15038

  • fix: Lifetime of auth_info_ in login handler. #15044

  • fix: handle shortcuts by default if no WebPreferences object exists. #15066

  • chore: bump libcc (3-0-x). #15072

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of tsconfig-paths is breaking the build 🚨

The devDependency tsconfig-paths was updated from 3.6.0 to 3.7.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

tsconfig-paths is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of webpack-dev-server is breaking the build 🚨

The devDependency webpack-dev-server was updated from 3.1.9 to 3.1.10.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack-dev-server is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Release Notes for v3.1.10

2018-10-23

Bug Fixes

  • options: add writeToDisk option to schema (#1520) (d2f4902)
  • package: update sockjs-client v1.1.5...1.3.0 (url-parse vulnerability) (#1537) (e719959)
  • Server: set tls.DEFAULT_ECDH_CURVE to 'auto' (#1531) (c12def3)
Commits

The new version differs by 4 commits.

  • fe3219f chore(release): 3.1.10
  • c12def3 fix(Server): set tls.DEFAULT_ECDH_CURVE to 'auto' (#1531)
  • e719959 fix(package): update sockjs-client v1.1.5...1.3.0 (url-parse vulnerability) (#1537)
  • d2f4902 fix(options): add writeToDisk option to schema (#1520)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Idea: RPC system

Note: will flesh out a complete pseudo-code in upcoming weeks.

Based on messages definition, allow for a request/reply type of API.

  1. Should not interfere with messages (e.g. how will harmonize with MessageType.parse?)
  2. Should provide a very lightweight encapsulation
  3. Network-agnostic: for instance, I should be able to make RPC calls go from the server to the client
  4. Timeouts should be possible (e.g timing out requests)

shared/messages/index.ts

// [...]

export enum ServiceIds {
  ServerService
}

// Todo: export decorator?

shared/messages/services/ServerService.ts

import { ServiceIds, Service } from '../'
import MessageRPCService, { RPCResponse } from 'megadata/classes/MessageRPCService'

@Service(ServiceIds.ServerService)
abstract class ServerService extends MessageRPCService {
  public SomeCall(message: MessageType): ReturnMessage;
}

An in-range update of nyc is breaking the build 🚨

The devDependency nyc was updated from 13.1.0 to 13.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

nyc is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 17 commits.

  • 29e6f5e chore(release): 13.2.0
  • e95856c chore: Update dependencies. (#978)
  • 921d386 fix: Create directory for merge destination. (#979)
  • df2730d feat: Option Plugins (#948)
  • 35cd49a feat: document the fact that cacheDir is configurable (#968)
  • ff834aa feat: avoid hardcoded HOME for spawn-wrap working dir (#957)
  • 35710b1 build: move windows tests to travis (#961)
  • 93cb5c1 tests: coverage for temp-dir changes (#964)
  • d566efe test: stop using LAZY_LOAD_COUNT (#960)
  • f23d474 chore: update stale bot config with feedback (#958)
  • 62d7fb8 chore: slight tweak to position of test
  • 28b6d09 fix: missing command temp-directory (#928)
  • 40afc5f fix: nyc processing files not covered by include when all is enabled. (#914)
  • ba22a26 docs(readme): Update to reflect .nycrc.json support (#934)
  • 2dbb82d chore: enable probot-stale

There are 17 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of babel-loader is breaking the build 🚨

The devDependency babel-loader was updated from 8.0.4 to 8.0.5.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

babel-loader is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

Release Notes for 8.0.5
  • Update find-cache-dir to 2.0
Commits

The new version differs by 8 commits.

  • 20c9e0e 8.0.5
  • de51b5d chore: Update ava
  • 66f92af Remove docs mention about sourceMap option being ignored (#750)
  • 6df8af1 Update dependencies and run all tests (#745)
  • 2c61de5 Add node 11 and 10 (#744)
  • 1bda840 Fix config issue in example (#708)
  • 364387d Merge pull request #698 from MattGurneyAMP/patch-1
  • 98f936d Fix license header and link

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of jscpd is breaking the build 🚨

The devDependency jscpd was updated from 0.6.24 to 0.6.25.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

jscpd is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • continuous-integration/appveyor/branch: AppVeyor build failed (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

Strict mode error

Hello! I wanna ask if this project is still under development or not?

Otherwise I try to going back in building my example project for megadata. I'm using a monorepo with lerna with the core, server, client, the protocol, and an api with graphql, it's super smooth but i've only problem with megadata... I don't know why it is spawning me this error :

../../node_modules/megadata/lib/classes/MessageType.d.ts(30,63): error TS2344: Type 'keyof T' does not satisfy the constraint 'string'. Type 'string | number | symbol' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'.

Simplify readme explanation

Right now, I feel the description of what this library does is a bit unclear. I would like to find a better description, and perhaps better code samples so to help make it clear to potential users how they can use this library to its fullest benefit.

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.