UNPKG

6.21 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5var lodash_1 = require("lodash");
6var plugin_babel_1 = __importDefault(require("@rollup/plugin-babel"));
7var camelcase_1 = __importDefault(require("camelcase"));
8var plugin_commonjs_1 = __importDefault(require("@rollup/plugin-commonjs"));
9var rollup_plugin_html_1 = __importDefault(require("rollup-plugin-html"));
10var plugin_image_1 = __importDefault(require("@rollup/plugin-image"));
11var plugin_json_1 = __importDefault(require("@rollup/plugin-json"));
12var rollup_plugin_less_inject_1 = __importDefault(require("@ovh-ux/rollup-plugin-less-inject"));
13var less_plugin_remcalc_1 = __importDefault(require("less-plugin-remcalc"));
14var rollup_plugin_less_tilde_importer_1 = __importDefault(require("@ovh-ux/rollup-plugin-less-tilde-importer"));
15var path_1 = __importDefault(require("path"));
16var rollup_plugin_peer_deps_external_1 = __importDefault(require("rollup-plugin-peer-deps-external"));
17var plugin_node_resolve_1 = __importDefault(require("@rollup/plugin-node-resolve"));
18var rollup_plugin_sass_1 = __importDefault(require("rollup-plugin-sass"));
19var plugin_dynamic_import_vars_1 = __importDefault(require("@rollup/plugin-dynamic-import-vars"));
20var translation_inject_1 = __importDefault(require("./plugins/translation-inject"));
21var translation_ui_router_1 = __importDefault(require("./plugins/translation-ui-router"));
22var common_1 = __importDefault(require("./plugins/common"));
23var defaultName = path_1.default.basename(process.cwd());
24var 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};
29var 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};
35var 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};
87var 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};
96var 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};
107var 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};
116var 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};
127var 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};
149config.plugins = {
150 translationInject: translation_inject_1.default,
151 translationUiRouter: translation_ui_router_1.default,
152};
153config.common = {
154 translationNormalize: common_1.default.translationNormalize,
155};
156module.exports = config;