Skip to content

zetapush/zetapush

Repository files navigation

zetapush

The next generation backend-as-a-service

NPM version Build Status

ZetaPush JavaScript SDK

This project is a monorep containing all source of @zetapush/* ecosytem

Installation

npm 6+

npm init @zetapush myproject
cd myproject

npm 5.x

npx @zetapush/create myproject
cd myproject

Deployment

Push your code on ZetaPush platform

npm run deploy

Development

Run your code on your local platform

npm run start

Default project structure

.
└──
  ├── front
  │  ├── index.html
  │  └── index.js
  ├── worker
  │  └── index.ts (api implementation)
  └── package.json

How it works?

Server side

Your server api in a plain old class defining your interface.

Example:

export default class Api {
  hello() {
    return `Hello World from JavaScript ${Date.now()}`;
  }
}

This code expose an API called hello which returns a string "Hello World from JavaScript" concatened with server timestamp.

You can use injected platform services with to following.

Dependency injection use injection-js

import { Injectable } from '@zetapush/core';
import { Stack } from '@zetapush/platform-legacy';

@Injectable()
export default class Api {
  constructor(private stack: Stack) {}
  push(item) {
    return this.stack.push({ stack: 'list', data: item });
  }
}

To consume an API in your front-end application you have to create a mapped method.

Client side

Register your API mapping class

const api = client.createProxyTaskService();

Invoke your remote API method

const message = await api.hello();