1.0.81 • Published 6 years ago

yalento-fullstack v1.0.81

Weekly downloads
82
License
ISC
Repository
-
Last release
6 years ago

Yalento fullstack

This awesome package creates a fullstack web application. Angular as the frontend and firebase as the backend. There is a simple but fully automated workflow with swagger definitions from that integration tests and models are automatically generated. With this package, the Swagger sample project http://editor.swagger.io/ can be implemented in a few minutes.

  • Automated integration tests (swagger definitions against backend, intelligent auto-mocking)
  • Including bitbucket pipeline
  • Automated generation of models and json-schema based on swagger definitions
  • Swagger editor included
  • Compile time and runtime checks (interfaces and validators)

Install first

1. Global packages

npm install -g firebase-tools @angular/cli

2. Create angular app

ng new app && cd ./app

3. Init new firebase project

  • Add database, firestore, functions, hosting and emulators.
  • Select always default values if you are asked from firebase cli.
  • Select functions, firestore, database and hosting for Emulator Setup.
  • Select typescript if you are asked for.

firebase init

4. Add yalento packages

npm add yalento-fullstack yalento

5. Ready to develop

Fullstck developing with live-reload

  • npm run start (ng serve)
  • npm run yalento:compile:watch
  • npm run yalento:backend:serve

More npm commands

  • npm run swagger:edit: Open swagger editor ui in browser.
  • npm run yalento:test:api: Test swagger definitions against firebase backend.

You can edit ./swagger.yaml in your project root in your ide as well. 'yalento:compile:watch' is detecting changes. The generated swagger documentation get published automatically here: /swagger/index.html

6. Having fun

Import automatically generated models and schema validators

import {Pet, Validator} from 'yalento-fullstack';

const pet: Pet = {
  name: 'bunny'
};

Validator.Pet(pet).catch((error) => console.log(error));
  • This will console.log an error with detailed infos why data is not matching against the definitions in ./swagger.yaml (runtime check)
  • The above code cannot be built using the typescript compiler because the interface is wrong (compile time check)

Compatible with Yalento (Browser and node.js)

import { Pet } from 'yalento-fullstack';
import { Repository, IEntity } from 'yalento';

const repository: Repository<Pet> = new Repository(Pet, 'Pet');
const bunny: IEntity<Pet> = await repository.create({ name: 'Bunny'});
const animals: Array<IEntity<Pet>> = repository.select({ where: 'name LIKE "Bunny"'}).getResults();

Read more about Yalento.

7. Publishing your app to production

Yalento Fullstack generates automatically a ready to use bitbucket-pipelines.yml. Just add repository variables FIREBASE_TOKEN_CI with your firebase cli token how to generate read here.

1.0.79

6 years ago

1.0.80

6 years ago

1.0.81

6 years ago

1.0.73

6 years ago

1.0.72

6 years ago

1.0.71

6 years ago

1.0.77

6 years ago

1.0.76

6 years ago

1.0.75

6 years ago

1.0.74

6 years ago

1.0.78

6 years ago

1.0.69

6 years ago

1.0.70

6 years ago

1.0.68

6 years ago

1.0.67

6 years ago

1.0.66

6 years ago

1.0.65

6 years ago

1.0.64

6 years ago

1.0.63

6 years ago

1.0.62

6 years ago

1.0.61

6 years ago

1.0.60

6 years ago

1.0.59

6 years ago

1.0.58

6 years ago

1.0.57

6 years ago

1.0.56

6 years ago

1.0.55

6 years ago

1.0.54

6 years ago

1.0.53

6 years ago

1.0.52

6 years ago

1.0.51

6 years ago

1.0.50

6 years ago

1.0.49

6 years ago

1.0.48

6 years ago

1.0.47

6 years ago

1.0.46

6 years ago

1.0.45

6 years ago

1.0.44

6 years ago

1.0.43

6 years ago

1.0.42

6 years ago

1.0.40

6 years ago

1.0.41

6 years ago

1.0.39

6 years ago

1.0.38

6 years ago

1.0.33

6 years ago

1.0.37

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.34

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago