Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to import stompjs in rollup

On ng2 app with typescript I am using stompjs, and it works fine without rollup.

I am importing it:

import {Stomp} from "stompjs"

After running rollup I get "EXCEPTION: Stomp is not defined"

My rollup config is:

import rollup from 'rollup';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs    from 'rollup-plugin-commonjs';


export default {
 entry: 'aot/app/src/boot-aot.js',
 dest: 'dist/bundle.es2015.js', // output a single application bundle
 sourceMap: true,
 useStrict: false,
 format: 'iife',
 treeshake: true,
 plugins: [
  nodeResolve({
    module: true,
    jsnext: true,
    main: true,
    browser: true,
    extensions: ['.js']
  }),
  commonjs({
    include: [
      'node_modules/rxjs/**',
      'node_modules/stompjs/**'
    ],
    namedExports: {
      'node_modules/stompjs/lib/stomp.min.js': [ 'Stomp' ]
    }
  })
 ]
}

TypeScript type definition file for stompjs

declare module "stompjs" {

  export interface Client {
    heartbeat: any;

    debug(...args: string[]);

    connect(...args: any[]);
    disconnect(disconnectCallback: () => any, headers?: any);

    send(destination: string, headers?:any, body?: string);
    subscribe(destination: string, callback?: (message: Message) => any, body?: string);
    unsubscribe();

    begin(transaction: string);
    commit(transaction: string);
    abort(transaction: string);

    ack(messageID: string, subscription: string, headers?: any);
    nack(messageID: string, subscription: string, headers?: any);
  }

  export interface Message {
    command: string;
    headers: any;
    body: string;

    ack(headers?: any);
    nack(headers?: any);
  }

  export interface Frame {
    constructor(command: string, headers?: any, body?: string);

    toString(): string;
    sizeOfUTF8(s: string);
    unmarshall(datas: any);
    marshall(command: string, headers?, body?);
  }

  export interface Stomp {
    client: Client;
    Frame: Frame;

    over(ws: WebSocket);
  }

  export default Stomp;
}
like image 605
Trajche Shoposki Avatar asked Oct 30 '22 18:10

Trajche Shoposki


1 Answers

Use import * as Stomp from "stompjs"

like image 61
Jimi Avatar answered Nov 14 '22 12:11

Jimi