Files
openstapps/CONTRIBUTING.md
2019-02-07 10:56:18 +01:00

1.1 KiB

Contributing to @openstapps/core

Please see the appropriate general group contributing guides in project-management.

Additional coding style

Extract inline type definitions

For consistency and correct functionality of core-tools we need well-defined type assignments.

Type assignments shall always be primitive types, classes, interfaces, enums or unions. Not allowed are inline type-definitions. Those shall be refactored accordingly:

export interface SCPlaceWithoutReferences extends SCThing {
    ...
    // Use this:
    geo: SCGeoInformation;

    // Instead of:
    geo: {
        point: Point,
        polygon?: Polygon,
    };
}

Reuse the map structure

If you come around a map-like-type use SCMap<T>.

// Use this:
interface AnyClass{
    inventory: SCMap<number>;
}

// Instead of:
interface AnyClass{
    inventory?: Array<{ key: string, value: number }>;
}
// or instead of
interface AnyClass{
    inventory?: { [key: string]: number };
}