Uncaught TypeError: Object prototype may only be an Object or null

784
01 июля 2017, 12:53

Помогите пожалуйста разобраться с ошибкой. Уже второй день с ней мучаюсь, но не могу понять как её исправить.

В проекте использовал самописный модуль для Angular:
https://github.com/Wday-team/angular-api-service
https://www.npmjs.com/package/angular-api-service

До того как вынес модуль в npm пакет - всё работало, после публикации модуля и подключения по зависимости через package.json появилась данная ошибка.

Стек ошибки:

feedback.service.ts:13 Uncaught TypeError: Object prototype may only be an Object or null: undefined
at setPrototypeOf (<anonymous>)
at webpackJsonp.../../../../../src/app/modules/main-object/transformers/feedback.transformer.ts.__extends (feedback.service.ts:13)
at feedback.transformer.ts:7
at Object.../../../../../src/app/modules/main-object/transformers/feedback.transformer.ts (feedback.transformer.ts:23)
at __webpack_require__ (bootstrap 4604a1f…:54)
at Object.../../../../../src/app/modules/main-object/services/feedback.service.ts (main-object.routes.ts:31)
at __webpack_require__ (bootstrap 4604a1f…:54)
at Object.../../../../../src/app/modules/main-object/components/feedback/feedback.component.ts (main.bundle.js:435)
at __webpack_require__ (bootstrap 4604a1f…:54)
at Object.../../../../../src/app/modules/main-object/main-object.module.ts (menu.component.ts:10)

Мой код:

feedback.service.ts


import {Inject, Injectable} from '@angular/core';
import {Http} from "@angular/http";
import {Observable} from "rxjs/Observable";
import {APP_CONFIG, AppConfig} from "../../../app-config.module";
import {ITransformerMap} from "angular-api-service/dist/lib/itransformer.map";
import {TRANSFORMERS_MAP} from "angular-api-service/dist/lib/transformer-map.service";
import {ApiResponse, ITransformer} from "angular-api-service/dist/lib";
import {ApiService} from "angular-api-service/dist/lib";
import {FeedbackTransformer} from "../transformers/feedback.transformer";
import {Feedback} from "../entities/feedback";
@Injectable()
export class FeedbackService extends ApiService {
    private feedbackUrl: string;
    constructor(
        http: Http,
        @Inject(APP_CONFIG) private config: AppConfig,
        @Inject(TRANSFORMERS_MAP) private transformersMap: ITransformerMap
    ) {
        super(http);
        this.feedbackUrl = config.apiEndpoint + '/feedback';
    }
    transformer(): ITransformer {
        return new FeedbackTransformer(this.transformersMap);
    }
    postRequest(feedback: Feedback): Observable> {
        return this.post(this.feedbackUrl, feedback);
    }
}

// WEBPACK FOOTER //
// C:/Users/Ragmon/Projects/mainobject/frontend/src/app/modules/main-object/services/feedback.service.ts

feedback.transformer.ts


import {InjectionToken} from "@angular/core";
import {Feedback} from "../entities/feedback";
import {Transformer} from "angular-api-service/dist/lib";
import {ITransformerMap} from "angular-api-service/dist/lib/itransformer.map";
import {Aliases} from "angular-api-service/dist/lib/aliases";
export class FeedbackTransformer extends Transformer {
    constructor(transformersMap: ITransformerMap) {
        super((data: any) => {
            return {
                id: data.id,
                name: data.attributes.name,
                email: data.attributes.email,
                phone: data.attributes.phone,
                token: data.attributes.token
            }
        }, transformersMap);
    }
    public aliases(): Aliases {
        return {};
    }
}
export const FEEDBACK_TRANSFORMER = new InjectionToken('app.transformers.feedback');

// WEBPACK FOOTER //
// C:/Users/Ragmon/Projects/mainobject/frontend/src/app/modules/main-object/transformers/feedback.transformer.ts

main-object.routes.ts


import {Routes} from "@angular/router";
import {LayoutComponent} from "./components/layout/layout.component";
import {HomeComponent} from "./components/home/home.component";
import {AboutComponent} from "./components/about/about.component";
export const mainObjectRoutes: Routes = [
    {
        path: '',
        redirectTo: 'home',
        pathMatch: 'full'
    },
    {
        path: '',
        component: LayoutComponent,
        children: [
            {
                path: 'home',
                component: HomeComponent
            },
            {
                path: 'about',
                component: AboutComponent
            },
            {
                path: 'catalog',
                loadChildren: './modules/catalog/catalog.module#CatalogModule'
            }
        ]
    }
];

// WEBPACK FOOTER //
// C:/Users/Ragmon/Projects/mainobject/frontend/src/app/modules/main-object/main-object.routes.ts

menu.component.ts


import {Component, OnInit} from '@angular/core';
import {MenuItem} from "./menu-item";
import {Router} from "@angular/router";
@Component({
    selector: 'app-menu',
    templateUrl: './menu.component.html',
    styleUrls: ['./menu.component.css']
})
export class MenuComponent implements OnInit {
    items: MenuItem[];
    constructor(private router: Router) {}
    ngOnInit() {
        this.items = this.getItems();
    }
    private getItems() {
        return [
            new MenuItem(1, 'Главная', '/home'),
            new MenuItem(2, 'О нас', '/about'),
            new MenuItem(3, 'Каталог объектов', '/catalog'),
            new MenuItem(4, 'Помощь', '/faq'),
            new MenuItem(5, 'Акции', '/promotions'),
            new MenuItem(6, 'Личный кабинет', '/personal-cabinet', ['bold']),
        ];
    }
}

// WEBPACK FOOTER //
// C:/Users/Ragmon/Projects/mainobject/frontend/src/app/modules/main-object/components/layout/menu/menu.component.ts
READ ALSO
Ошибка при запуске grunt nodewebkit

Ошибка при запуске grunt nodewebkit

Помогите, плз, разобраться в проблемеНаписал приложение на nw

296
Проверка на гласные и согласные буквы

Проверка на гласные и согласные буквы

Если встречается согласная буква, то пропускать одну позицию в строке, если встречается гласная - то двеВ итоге должно получится слово hello

555