RSS Git Download  Clone
Raw Blame History 843B 34 lines
import {Injectable} from '@angular/core';
import {Layout} from '../layout/cory-layout';
const Worker = require(`../../worker/markdown.worker.js`);
const worker = new Worker();

@Injectable()
export class MarkdownService {

    public context: any;
    layout: Layout;

    constructor() {
    }

    public render(md: string, layout: Layout) {
        this.layout = layout;

        return new Promise((resolve, reject) => {
            const message =  (event: any) => {
                resolve(event.data)
                worker.removeEventListener('message', message)
            }

            worker.addEventListener('message', message)

            worker.postMessage({
                md: md,
                settings: this.context.settings.data,
                currentRepo: this.layout.currentRepo,
            });
        })
    }
}