1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | var lodash_1 = require("lodash");
|
6 | var plugin_babel_1 = __importDefault(require("@rollup/plugin-babel"));
|
7 | var camelcase_1 = __importDefault(require("camelcase"));
|
8 | var plugin_commonjs_1 = __importDefault(require("@rollup/plugin-commonjs"));
|
9 | var rollup_plugin_html_1 = __importDefault(require("rollup-plugin-html"));
|
10 | var plugin_image_1 = __importDefault(require("@rollup/plugin-image"));
|
11 | var plugin_json_1 = __importDefault(require("@rollup/plugin-json"));
|
12 | var rollup_plugin_less_inject_1 = __importDefault(require("@ovh-ux/rollup-plugin-less-inject"));
|
13 | var less_plugin_remcalc_1 = __importDefault(require("less-plugin-remcalc"));
|
14 | var rollup_plugin_less_tilde_importer_1 = __importDefault(require("@ovh-ux/rollup-plugin-less-tilde-importer"));
|
15 | var path_1 = __importDefault(require("path"));
|
16 | var rollup_plugin_peer_deps_external_1 = __importDefault(require("rollup-plugin-peer-deps-external"));
|
17 | var plugin_node_resolve_1 = __importDefault(require("@rollup/plugin-node-resolve"));
|
18 | var rollup_plugin_sass_1 = __importDefault(require("rollup-plugin-sass"));
|
19 | var plugin_dynamic_import_vars_1 = __importDefault(require("@rollup/plugin-dynamic-import-vars"));
|
20 | var translation_inject_1 = __importDefault(require("./plugins/translation-inject"));
|
21 | var translation_ui_router_1 = __importDefault(require("./plugins/translation-ui-router"));
|
22 | var common_1 = __importDefault(require("./plugins/common"));
|
23 | var defaultName = path_1.default.basename(process.cwd());
|
24 | var mergeConfig = function (config, customConfig) {
|
25 | return lodash_1.mergeWith(config, customConfig, function (obj, src) {
|
26 | return Array.isArray(obj) && Array.isArray(src) ? src.concat(obj) : undefined;
|
27 | });
|
28 | };
|
29 | var getLanguages = function (pluginsOpts) {
|
30 | if (lodash_1.isString(process.env.LANGUAGES)) {
|
31 | return process.env.LANGUAGES.split('-');
|
32 | }
|
33 | return lodash_1.get(pluginsOpts, 'translations.languages');
|
34 | };
|
35 | var generateConfig = function (opts, pluginsOpts) {
|
36 | return mergeConfig({
|
37 | plugins: [
|
38 | rollup_plugin_peer_deps_external_1.default(),
|
39 | rollup_plugin_html_1.default(),
|
40 | plugin_json_1.default({
|
41 | preferConst: true,
|
42 | compact: true,
|
43 | namedExports: false,
|
44 | }),
|
45 | rollup_plugin_less_tilde_importer_1.default(pluginsOpts.lessTildeImporter),
|
46 | rollup_plugin_less_inject_1.default({
|
47 | option: {
|
48 | plugins: [less_plugin_remcalc_1.default],
|
49 | },
|
50 | }),
|
51 | rollup_plugin_sass_1.default({
|
52 | insert: true,
|
53 | output: false,
|
54 | }),
|
55 | plugin_image_1.default({
|
56 | output: "./dist/assets/" + defaultName,
|
57 | }),
|
58 | plugin_node_resolve_1.default(),
|
59 | plugin_commonjs_1.default(),
|
60 | translation_inject_1.default({
|
61 | languages: getLanguages(pluginsOpts),
|
62 | }),
|
63 | translation_ui_router_1.default({
|
64 | subdirectory: 'translations',
|
65 | languages: getLanguages(pluginsOpts),
|
66 | }),
|
67 | plugin_dynamic_import_vars_1.default({
|
68 | exclude: /node_modules\//,
|
69 | }),
|
70 | plugin_babel_1.default({
|
71 | babelHelpers: 'bundled',
|
72 | babelrc: false,
|
73 | exclude: 'node_modules/**',
|
74 | plugins: [
|
75 | '@babel/plugin-proposal-class-properties',
|
76 | '@babel/plugin-proposal-optional-chaining',
|
77 | '@babel/plugin-proposal-private-methods',
|
78 | '@babel/plugin-syntax-dynamic-import',
|
79 | 'babel-plugin-angularjs-annotate',
|
80 | ],
|
81 | presets: [['@babel/preset-env']],
|
82 | shouldPrintComment: function (val) { return !/@ngInject/.test(val); },
|
83 | }),
|
84 | ],
|
85 | }, opts);
|
86 | };
|
87 | var cjs = function (opts, pluginsOpts) {
|
88 | return generateConfig(mergeConfig({
|
89 | output: {
|
90 | dir: './dist/cjs',
|
91 | format: 'cjs',
|
92 | sourcemap: true,
|
93 | },
|
94 | }, opts), pluginsOpts);
|
95 | };
|
96 | var umd = function (opts, pluginsOpts) {
|
97 | return generateConfig(mergeConfig({
|
98 | inlineDynamicImports: true,
|
99 | output: {
|
100 | name: defaultName,
|
101 | file: "./dist/umd/" + defaultName + ".js",
|
102 | format: 'umd',
|
103 | sourcemap: true,
|
104 | },
|
105 | }, opts), pluginsOpts);
|
106 | };
|
107 | var es = function (opts, pluginsOpts) {
|
108 | return generateConfig(mergeConfig({
|
109 | output: {
|
110 | dir: './dist/esm',
|
111 | format: 'es',
|
112 | sourcemap: true,
|
113 | },
|
114 | }, opts), pluginsOpts);
|
115 | };
|
116 | var iife = function (opts, pluginsOpts) {
|
117 | return generateConfig(mergeConfig({
|
118 | inlineDynamicImports: true,
|
119 | output: {
|
120 | name: camelcase_1.default(defaultName),
|
121 | file: "./dist/iife/" + defaultName + ".js",
|
122 | format: 'iife',
|
123 | sourcemap: true,
|
124 | },
|
125 | }, opts), pluginsOpts);
|
126 | };
|
127 | var config = function (globalOpts, pluginsOpts) {
|
128 | if (globalOpts === void 0) { globalOpts = {}; }
|
129 | if (pluginsOpts === void 0) { pluginsOpts = {}; }
|
130 | return ({
|
131 | cjs: function (opts) {
|
132 | if (opts === void 0) { opts = {}; }
|
133 | return cjs(mergeConfig(opts, globalOpts), pluginsOpts);
|
134 | },
|
135 | es: function (opts) {
|
136 | if (opts === void 0) { opts = {}; }
|
137 | return es(mergeConfig(opts, globalOpts), pluginsOpts);
|
138 | },
|
139 | iife: function (opts) {
|
140 | if (opts === void 0) { opts = {}; }
|
141 | return iife(mergeConfig(opts, globalOpts), pluginsOpts);
|
142 | },
|
143 | umd: function (opts) {
|
144 | if (opts === void 0) { opts = {}; }
|
145 | return umd(mergeConfig(opts, globalOpts), pluginsOpts);
|
146 | },
|
147 | });
|
148 | };
|
149 | config.plugins = {
|
150 | translationInject: translation_inject_1.default,
|
151 | translationUiRouter: translation_ui_router_1.default,
|
152 | };
|
153 | config.common = {
|
154 | translationNormalize: common_1.default.translationNormalize,
|
155 | };
|
156 | module.exports = config;
|