benbraou / ivy-status-api

Angular Ivy status API

Home Page:https://ivy-status-api.appspot.com/v1/status

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

ivy-status-api

https://ivy-status-api.appspot.com/v1/status

Introduction

Ivy is the new Angular renderer focused on speed and size reduction. It is published as an experimental API as of Angular 6. As of April 30th 2018, Ivy is under active development by the Angular team.
Ivy status is regularly updated by the Angular team in a dedicated STATUS.md

The goal of this project is to parse this file and return the status as a JSON API.

The project

An API written in go deployed using Google Cloud Platform. It can be accessed through the URL: https://ivy-status-api.appspot.com/v1/status

Response structure

{
    "API": {
        "version": 1
    },
    "errors": null,
    "data": {
        "featureGroup": {
            "data": {
                "name": "root",
                "features": []
            },
            "featureGroups":[
                
            ]
        },
        "lastUpdateDate": "2018-04-29T12:21:22"
    }
}
// FeatureGroup can hold child feature groups. It is in reality a tree. e.g.
//                 [Implementation Status]
//                          / \
//                         /   \
//                        /     \
//                       /       \
//     [`@angular/compiler-cli`  [`@angular/compiler` changes]
//                changes]
//                  /
//                 /
//   [`ngtsc` TSC compiler transformer]

In the current documentation status, more information can be found in the models defined in the source code

Every feature group consists of one or several features. In the following example, the Decorators feature group consists of three features whose status is granular according to Runtime, Spec, Compiler and Back Patch

Annotation defineXXX() Run time Spec Compiler Back Patch
@Component defineComponent()
@Directive defineDirective()
@Directive defineAbstractDirective()

The first feature in this example will be returned by the API in this form

                  {
                    "name": "`@Component`",
                    "status": {
                      "completed": false,
                      "categories": [
                        "Annotation",
                        "`defineXXX()`",
                        "Run time",
                        "Spec",
                        "Compiler",
                        "Back Patch"
                      ],
                      "granularStatuses": [
                        {
                          "category": "`defineXXX()`",
                          "code": "IMPLEMENTED",
                          "description": "`defineComponent()`"
                        },
                        {
                          "category": "Run time",
                          "code": "IMPLEMENTED",
                          "description": "Run time"
                        },
                        {
                          "category": "Spec",
                          "code": "IMPLEMENTED",
                          "description": "Spec"
                        },
                        {
                          "category": "Compiler",
                          "code": "IMPLEMENTED",
                          "description": "Compiler"
                        },
                        {
                          "category": "Back Patch",
                          "code": "NOT_IMPLEMENTED",
                          "description": "Back Patch"
                        }
                      ]
                    },
                    "childFeatures": null}
                 

Contribution

Please feel free to open an issue.
Pull requests with the fix and a test are welcome.
To launch tests: scripts.test.sh

License

MIT licensed.
Copyright (c) 2018 Oussama Ben Brahim

About

Angular Ivy status API

https://ivy-status-api.appspot.com/v1/status

License:MIT License


Languages

Language:Go 99.6%Language:Shell 0.4%