UNPKG

8.23 kBJavaScriptView Raw
1"use strict";
2var __importStar = (this && this.__importStar) || function (mod) {
3 if (mod && mod.__esModule) return mod;
4 var result = {};
5 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6 result["default"] = mod;
7 return result;
8};
9Object.defineProperty(exports, "__esModule", { value: true });
10const plugins = __importStar(require("./tsbundle.plugins"));
11const tsbundle_logging_1 = require("./tsbundle.logging");
12class TsBundle {
13 /**
14 * the basic default options for rollup
15 */
16 getBaseOptions(fromArg = `ts_web/index.ts`, toArg = 'dist_web/bundle.js') {
17 tsbundle_logging_1.logger.log('info', `from: ${fromArg}`);
18 tsbundle_logging_1.logger.log('info', `to: ${toArg}`);
19 const baseOptions = {
20 input: fromArg,
21 output: {
22 name: 'tsbundle',
23 file: toArg,
24 format: 'iife',
25 sourcemap: true
26 },
27 // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash')
28 external: [],
29 watch: {
30 include: ['src/**']
31 },
32 plugins: [
33 // Compile TypeScript files
34 plugins.rollupTypescript({
35 useTsconfigDeclarationDir: true,
36 tsconfigOverride: {
37 compilerOptions: {
38 declaration: true,
39 emitDecoratorMetadata: true,
40 experimentalDecorators: true,
41 inlineSourceMap: true,
42 noEmitOnError: true,
43 lib: ['esnext', 'dom'],
44 target: 'es2018',
45 noImplicitAny: false
46 }
47 }
48 }),
49 // Allow node_modules resolution, so you can use 'external' to control
50 // which external modules to include in the bundle
51 // https://github.com/rollup/rollup-plugin-node-resolve#usage
52 plugins.rollupResolve(),
53 plugins.rollupCommonjs({
54 namedExports: {
55 'node_modules/@pushrocks/smartstate/dist/index.js': ['Smartstate']
56 }
57 }),
58 // Resolve source maps to the original source
59 plugins.rollupSourceMaps()
60 /*plugins.rollupBabel({
61 runtimeHelpers: true,
62 extensions: ['.js', '.jsx', '.ts', '.tsx'],
63 babelrc: false,
64 presets: [
65 [
66 '@babel/preset-env',
67 {
68 modules: false,
69 targets: {
70 chrome: '41'
71 }
72 }
73 ]
74 ],
75 plugins: [
76 [
77 '@babel/plugin-transform-runtime',
78 {
79 regenerator: true
80 }
81 ]
82 ]
83 })*/
84 ]
85 };
86 return baseOptions;
87 }
88 getOptionsTest(fromArg, toArg) {
89 return this.getBaseOptions(fromArg, toArg);
90 }
91 getOptionsProduction(fromArg, toArg) {
92 const productionOptions = this.getBaseOptions(fromArg, toArg);
93 productionOptions.plugins.push(plugins.rollupTerser({
94 compress: true,
95 mangle: true,
96 sourcemap: true
97 }));
98 return productionOptions;
99 }
100 constructor() {
101 // Nothing here
102 }
103 /**
104 * creates a bundle for the test enviroment
105 */
106 async buildTest(fromArg, toArg) {
107 // create a bundle
108 tsbundle_logging_1.logger.log('info', `bundling for TEST!`);
109 const buildOptions = this.getOptionsTest(fromArg, toArg);
110 const bundle = await plugins.rollup.rollup(buildOptions);
111 bundle.generate(buildOptions.output);
112 await bundle.write(buildOptions.output);
113 tsbundle_logging_1.logger.log('ok', `Successfully bundled files!`);
114 }
115 /**
116 * creates a bundle for the production environment
117 */
118 async buildProduction(fromArg, toArg) {
119 // create a bundle
120 tsbundle_logging_1.logger.log('info', `bundling for PRODUCTION!`);
121 const buildOptions = this.getOptionsProduction(fromArg, toArg);
122 const bundle = await plugins.rollup.rollup(buildOptions);
123 bundle.generate(buildOptions.output);
124 await bundle.write(buildOptions.output);
125 tsbundle_logging_1.logger.log('ok', `Successfully bundled files!`);
126 }
127}
128exports.TsBundle = TsBundle;
129//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNidW5kbGUuY2xhc3MudHNidW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90c2J1bmRsZS5jbGFzcy50c2J1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSw0REFBOEM7QUFDOUMseURBQTRDO0FBRTVDLE1BQWEsUUFBUTtJQUNuQjs7T0FFRztJQUNJLGNBQWMsQ0FBQyxVQUFrQixpQkFBaUIsRUFBRSxRQUFnQixvQkFBb0I7UUFDN0YseUJBQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2Qyx5QkFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sV0FBVyxHQUFpQztZQUNoRCxLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsU0FBUyxFQUFFLElBQUk7YUFDaEI7WUFDRCx5RkFBeUY7WUFDekYsUUFBUSxFQUFFLEVBQUU7WUFDWixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ3BCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLDJCQUEyQjtnQkFDM0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDO29CQUN2Qix5QkFBeUIsRUFBRSxJQUFJO29CQUMvQixnQkFBZ0IsRUFBRTt3QkFDaEIsZUFBZSxFQUFFOzRCQUNmLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixxQkFBcUIsRUFBRSxJQUFJOzRCQUMzQixzQkFBc0IsRUFBRSxJQUFJOzRCQUM1QixlQUFlLEVBQUUsSUFBSTs0QkFDckIsYUFBYSxFQUFFLElBQUk7NEJBQ25CLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7NEJBQ3RCLE1BQU0sRUFBRSxRQUFROzRCQUNo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
\No newline at end of file