@vitus-labs/tools-rollup 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ export default {
2
+ sourceDir: 'src',
3
+ outputDir: 'lib',
4
+ typesDir: 'lib/types',
5
+ typescript: true,
6
+ replaceGlobals: true,
7
+ visualise: {
8
+ template: 'network',
9
+ gzipSize: true,
10
+ outputDir: 'analysis',
11
+ },
12
+ filesize: true,
13
+ extensions: ['.js', '.jsx', '.ts', '.tsx', '.es6', '.es', '.mjs'],
14
+ include: ['src'],
15
+ exclude: [
16
+ 'lib',
17
+ 'node_modules/**',
18
+ '**/__tests__/**',
19
+ '**/__specs__/**',
20
+ '**/__stories__/**',
21
+ '*.test.*',
22
+ '*.spec.*',
23
+ '*.stories.*',
24
+ '*.story.*',
25
+ ],
26
+ globals: {
27
+ react: 'React',
28
+ ReactDOM: 'react-dom',
29
+ styled: 'styled-components',
30
+ },
31
+ };
32
+ //# sourceMappingURL=baseConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConfig.js","sourceRoot":"","sources":["../../src/config/baseConfig.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE;QACT,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,UAAU;KACtB;IACD,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;IACjE,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,OAAO,EAAE;QACP,KAAK;QACL,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,UAAU;QACV,UAAU;QACV,aAAa;QACb,WAAW;KACZ;IACD,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,mBAAmB;KAC5B;CACF,CAAA"}
@@ -0,0 +1,4 @@
1
+ import baseConfig from './baseConfig';
2
+ import rollupConfig from './rollup';
3
+ export { baseConfig, rollupConfig };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,YAAY,MAAM,UAAU,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,120 @@
1
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
+ import typescript from 'rollup-plugin-typescript2';
3
+ import ttypescript from 'ttypescript';
4
+ import { nodeResolve } from '@rollup/plugin-node-resolve';
5
+ import filesize from 'rollup-plugin-filesize';
6
+ import { visualizer } from 'rollup-plugin-visualizer';
7
+ import replace from '@rollup/plugin-replace';
8
+ import { terser } from 'rollup-plugin-terser';
9
+ import babel from 'rollup-plugin-babel';
10
+ import dts from 'rollup-plugin-dts';
11
+ import { PKG, VL_CONFIG, swapGlobals } from '../core';
12
+ import baseConfig from './baseConfig';
13
+ const CONFIG = VL_CONFIG.merge(baseConfig);
14
+ const defineExtensions = (platform) => {
15
+ const platformExtensions = [];
16
+ if (['browser', 'server', 'web', 'native'].includes(platform)) {
17
+ CONFIG.extensions.forEach((item) => {
18
+ platformExtensions.push(`.${platform}${item}`);
19
+ });
20
+ }
21
+ return platformExtensions.concat(CONFIG.extensions);
22
+ };
23
+ const loadPlugins = ({ env, platform, typings, file }) => {
24
+ const extensions = defineExtensions(platform);
25
+ const babelConfig = {
26
+ extensions,
27
+ include: [CONFIG.sourceDir],
28
+ exclude: CONFIG.exclude,
29
+ };
30
+ const tsConfig = {
31
+ typescript: ttypescript,
32
+ exclude: CONFIG.exclude,
33
+ useTsconfigDeclarationDir: true,
34
+ clean: true,
35
+ tsconfigDefaults: {
36
+ exclude: CONFIG.exclude,
37
+ include: CONFIG.include,
38
+ compilerOptions: {
39
+ types: ['@vitus-labs/tools-rollup'],
40
+ declaration: false,
41
+ declarationDir: undefined,
42
+ plugins: [
43
+ {
44
+ transform: '@zerollup/ts-transform-paths',
45
+ exclude: ['*'],
46
+ },
47
+ ],
48
+ },
49
+ },
50
+ };
51
+ if (typings) {
52
+ tsConfig.tsconfigDefaults.compilerOptions.declaration = typings;
53
+ tsConfig.tsconfigDefaults.compilerOptions.declarationDir = CONFIG.typesDir;
54
+ }
55
+ const plugins = [nodeResolve({ extensions, browser: platform === 'browser' })];
56
+ if (CONFIG.typescript) {
57
+ plugins.push(typescript(tsConfig));
58
+ }
59
+ if (CONFIG.replaceGlobals) {
60
+ const replaceOptions = {
61
+ __VERSION__: JSON.stringify(PKG.version),
62
+ __SERVER__: JSON.stringify(platform === 'server'),
63
+ __WEB__: JSON.stringify(['server', 'browser', 'universal'].includes(platform)),
64
+ __BROWSER__: JSON.stringify(platform === 'browser'),
65
+ __NATIVE__: JSON.stringify(platform === 'native'),
66
+ __CLIENT__: JSON.stringify(['native', 'browser'].includes(platform)),
67
+ };
68
+ if (env === 'production') {
69
+ replaceOptions['process.env.NODE_ENV'] = JSON.stringify(env);
70
+ }
71
+ plugins.push(replace({ preventAssignment: true, values: replaceOptions }));
72
+ }
73
+ plugins.push(babel(babelConfig));
74
+ // generate visualised graphs in dist folder
75
+ if (CONFIG.visualise) {
76
+ const filePath = file.split('/');
77
+ const fileName = filePath.pop();
78
+ const visualiserOptions = {
79
+ title: `${PKG.name} - ${fileName}`,
80
+ filename: `${filePath.join('/')}/${CONFIG.visualise.outputDir}/${fileName}.html`,
81
+ template: CONFIG.visualise.template,
82
+ gzipSize: CONFIG.visualise.gzipSize,
83
+ };
84
+ plugins.push(visualizer(visualiserOptions));
85
+ }
86
+ if (env === 'production') {
87
+ plugins.push(terser());
88
+ }
89
+ if (CONFIG.filesize) {
90
+ plugins.push(filesize());
91
+ }
92
+ return plugins;
93
+ };
94
+ const typescriptConfig = () => ({
95
+ input: `${CONFIG.typesDir}/index.d.ts`,
96
+ output: { file: PKG.typings || PKG.types, format: 'es' },
97
+ plugins: [dts()],
98
+ });
99
+ const createRollupConfig = ({ file, format, env, typings, platform, }) => {
100
+ const plugins = loadPlugins({ file, env, typings, platform });
101
+ const buildOutput = {
102
+ input: CONFIG.sourceDir,
103
+ output: {
104
+ file,
105
+ format,
106
+ globals: swapGlobals(CONFIG.globals),
107
+ sourcemap: true,
108
+ exports: ['cjs', 'umd'].includes(format) ? 'named' : undefined,
109
+ name: ['umd', 'iife'].includes(format) ? PKG.bundleName : undefined,
110
+ },
111
+ external: PKG.externalDependencies,
112
+ plugins,
113
+ };
114
+ if (typings) {
115
+ return [buildOutput, typescriptConfig()];
116
+ }
117
+ return buildOutput;
118
+ };
119
+ export default createRollupConfig;
120
+ //# sourceMappingURL=rollup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/config/rollup.ts"],"names":[],"mappings":"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"}
package/lib/core.js ADDED
@@ -0,0 +1,4 @@
1
+ import { PKG, loadVLToolsConfig, swapGlobals } from '@vitus-labs/tools-core';
2
+ export const VL_CONFIG = loadVLToolsConfig('build');
3
+ export { PKG, swapGlobals };
4
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAE5E,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import runBuild from './scripts/build';
2
+ export default runBuild;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAEtC,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,71 @@
1
+ import chalk from 'chalk';
2
+ import rimraf from 'rimraf';
3
+ import { rollup } from 'rollup';
4
+ import { rollupConfig, baseConfig } from '../config';
5
+ import { VL_CONFIG } from '../core';
6
+ import createBuildPipeline from './utils';
7
+ const { log } = console;
8
+ const CONFIG = VL_CONFIG.merge(baseConfig);
9
+ const allBuilds = createBuildPipeline();
10
+ const allBuildsCount = allBuilds.length;
11
+ // --------------------------------------------------------
12
+ // BUILD rollup
13
+ // --------------------------------------------------------
14
+ async function build({ inputOptions, outputOptions }) {
15
+ const bundle = await rollup(inputOptions);
16
+ await bundle.write(outputOptions);
17
+ }
18
+ // --------------------------------------------------------
19
+ // SERIALIZE ALL BUILDS
20
+ // --------------------------------------------------------
21
+ const createBuilds = async () => {
22
+ let p = Promise.resolve(); // Q() in q
23
+ // serialize builds
24
+ allBuilds.forEach((item, i) => {
25
+ const buildOptions = rollupConfig(item);
26
+ // it might be an array for such a cases like typescript optimization file
27
+ // which we want to do in one iteration only
28
+ if (Array.isArray(buildOptions)) {
29
+ const [buildConfig, typescriptConfig] = buildOptions;
30
+ const { output, ...input } = buildConfig;
31
+ const { output: tsOutput, ...tsInput } = typescriptConfig;
32
+ p = p.then(() => {
33
+ log(chalk.green(`🚧 Creating a build ${i + 1}/${allBuildsCount}`));
34
+ return build({ inputOptions: input, outputOptions: output });
35
+ });
36
+ p = p.then(() => build({ inputOptions: tsInput, outputOptions: tsOutput }));
37
+ }
38
+ else {
39
+ const { output, ...input } = buildOptions;
40
+ p = p.then(() => {
41
+ log(chalk.green(`🚧 Creating a build ${i + 1}/${allBuildsCount}`));
42
+ return build({ inputOptions: input, outputOptions: output });
43
+ });
44
+ }
45
+ });
46
+ p.catch((e) => {
47
+ log(`${chalk.bold.bgRed.white('⚠️ ERROR')} ${chalk.red('Something went wrong')}`);
48
+ log(e);
49
+ });
50
+ return p;
51
+ };
52
+ const runBuild = async () => {
53
+ // --------------------------------------------------------
54
+ // (1) delete build folder first
55
+ // --------------------------------------------------------
56
+ log(`${chalk.bold.bgBlue.black('[1/4]')} ${chalk.blue('✂️ Cleaning up old build folder...')}`);
57
+ rimraf.sync(`${process.cwd()}/${CONFIG.outputDir}`);
58
+ log(`${chalk.bold.bgBlue.black('[2/4]')} ${chalk.blue('☑️ Old build removed')}`);
59
+ // --------------------------------------------------------
60
+ // (2) build
61
+ // --------------------------------------------------------
62
+ log(`${chalk.bold.bgBlue.black('[3/4]')} ${chalk.blue(`💪 Generating ${allBuildsCount} builds in total...`)}`);
63
+ log('\n');
64
+ Promise.resolve()
65
+ .then(() => createBuilds())
66
+ .then(() => {
67
+ log(`${chalk.bold.bgBlue.black('[4/4]')} ${chalk.blue('🎉 Done!')}`);
68
+ });
69
+ };
70
+ export default runBuild;
71
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/scripts/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { PKG } from '../core';
2
+ const shouldBuildNative = PKG['react-native'] !== PKG.module;
3
+ const shouldGenerateTypes = !!(PKG.types || PKG.typings);
4
+ const PKG_BROWSER_TYPES = PKG.browser;
5
+ const hasDifferentBrowserBuild = (type) => {
6
+ if (!PKG_BROWSER_TYPES)
7
+ return false;
8
+ return Object.entries(PKG_BROWSER_TYPES).some(([key, value]) => {
9
+ const source = key.substring(2);
10
+ const output = value.substring(2);
11
+ return source !== PKG[type] && source !== output;
12
+ });
13
+ };
14
+ const BASE_VARIANTS = {
15
+ main: {
16
+ format: 'cjs',
17
+ env: 'development',
18
+ platform: 'universal',
19
+ },
20
+ module: {
21
+ format: 'es',
22
+ env: 'development',
23
+ platform: 'universal',
24
+ },
25
+ 'react-native': {
26
+ format: 'es',
27
+ env: 'development',
28
+ platform: 'native',
29
+ },
30
+ 'umd:main': { format: 'umd', env: 'development' },
31
+ unpkg: { format: 'umd', env: 'production' },
32
+ };
33
+ const createBasicBuildVariants = () => Object.keys(BASE_VARIANTS).reduce((acc, key) => {
34
+ const PKGOutDir = PKG[key];
35
+ if (PKGOutDir) {
36
+ const hasBrowserBuild = hasDifferentBrowserBuild(key);
37
+ // create a helper function for adding a build variant to an array
38
+ const add = (props = {}) => {
39
+ acc.push({ ...BASE_VARIANTS[key], file: PKGOutDir, ...props });
40
+ };
41
+ if (key === 'react-native') {
42
+ // add a separate RN build only if output path differs from module path
43
+ if (shouldBuildNative) {
44
+ add();
45
+ }
46
+ }
47
+ else if (hasBrowserBuild) {
48
+ // if has a different browser build, set default platform to server
49
+ // as there is going to be created a separate browser build as well
50
+ add({ platform: 'server' });
51
+ }
52
+ else {
53
+ add();
54
+ }
55
+ }
56
+ return acc;
57
+ }, []);
58
+ const createBrowserBuildVariants = () => {
59
+ const result = [];
60
+ if (!PKG_BROWSER_TYPES)
61
+ return result;
62
+ Object.entries(PKG_BROWSER_TYPES).forEach(([key, value]) => {
63
+ const source = key.substring(2); // strip './' from the beginning of path
64
+ const output = value.substring(2); // strip './' from the beginning of path
65
+ Object.keys(BASE_VARIANTS).forEach((item) => {
66
+ if (PKG[item] === source && source !== output) {
67
+ result.push({
68
+ ...BASE_VARIANTS[item],
69
+ file: output,
70
+ platform: 'browser',
71
+ });
72
+ }
73
+ });
74
+ });
75
+ return result;
76
+ };
77
+ const createBuildPipeline = () => {
78
+ const result = [
79
+ ...createBasicBuildVariants(),
80
+ ...createBrowserBuildVariants(),
81
+ ];
82
+ // add generate typings for the first bundle only
83
+ result[0] = { ...result[0], typings: shouldGenerateTypes };
84
+ return result;
85
+ };
86
+ export default createBuildPipeline;
87
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scripts/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ declare const _default: {
2
+ sourceDir: string;
3
+ outputDir: string;
4
+ typesDir: string;
5
+ typescript: boolean;
6
+ replaceGlobals: boolean;
7
+ visualise: {
8
+ template: string;
9
+ gzipSize: boolean;
10
+ outputDir: string;
11
+ };
12
+ filesize: boolean;
13
+ extensions: string[];
14
+ include: string[];
15
+ exclude: string[];
16
+ globals: {
17
+ react: string;
18
+ ReactDOM: string;
19
+ styled: string;
20
+ };
21
+ };
22
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import baseConfig from './baseConfig';
2
+ import rollupConfig from './rollup';
3
+ export { baseConfig, rollupConfig };
@@ -0,0 +1,4 @@
1
+ import type { BuildOutput } from '../types';
2
+ declare type CreateRollupConfig = (params: BuildOutput) => any;
3
+ declare const createRollupConfig: CreateRollupConfig;
4
+ export default createRollupConfig;
@@ -0,0 +1,7 @@
1
+ import { PKG, swapGlobals } from '@vitus-labs/tools-core';
2
+ export declare const VL_CONFIG: {
3
+ readonly config: any;
4
+ get: (param: string, defaultValue?: any) => any;
5
+ merge: (param: Record<string, any>) => any;
6
+ };
7
+ export { PKG, swapGlobals };
@@ -0,0 +1,2 @@
1
+ import runBuild from './scripts/build';
2
+ export default runBuild;
@@ -0,0 +1,2 @@
1
+ declare const runBuild: () => Promise<void>;
2
+ export default runBuild;
@@ -0,0 +1,3 @@
1
+ import type { BuildOutput } from '../types';
2
+ declare const createBuildPipeline: () => BuildOutput[];
3
+ export default createBuildPipeline;
@@ -0,0 +1,9 @@
1
+ export declare type Platforms = 'browser' | 'server' | 'web' | 'native';
2
+ export declare type FileExtensions = string[];
3
+ export declare type BuildOutput = {
4
+ format: string;
5
+ env: 'development' | 'production';
6
+ platform?: 'native' | 'server' | 'universal';
7
+ file: string;
8
+ typings?: boolean;
9
+ };
package/lib/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitus-labs/tools-rollup",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "license": "MIT",
5
5
  "author": "Vit Bokisch <vit@bokisch.com>",
6
6
  "maintainers": [
@@ -17,21 +17,21 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@rollup/plugin-node-resolve": "^13.1.3",
20
- "@rollup/plugin-replace": "^3.0.1",
21
- "@types/node": "^17.0.16",
20
+ "@rollup/plugin-replace": "^4.0.0",
21
+ "@types/node": "^17.0.23",
22
22
  "@zerollup/ts-transform-paths": "^1.7.18",
23
23
  "chalk": "^4.1.2",
24
24
  "find-up": "^5.0.0",
25
25
  "lodash.merge": "^4.6.2",
26
26
  "rimraf": "^3.0.2",
27
- "rollup": "^2.67.1",
27
+ "rollup": "^2.70.1",
28
28
  "rollup-plugin-babel": "^4.4.0",
29
- "rollup-plugin-dts": "^4.1.0",
29
+ "rollup-plugin-dts": "^4.2.0",
30
30
  "rollup-plugin-filesize": "^9.1.2",
31
31
  "rollup-plugin-terser": "^7.0.2",
32
32
  "rollup-plugin-typescript2": "^0.31.2",
33
- "rollup-plugin-visualizer": "^5.5.4",
33
+ "rollup-plugin-visualizer": "^5.6.0",
34
34
  "ttypescript": "^1.5.13"
35
35
  },
36
- "gitHead": "e9fff1db536597e17d38c994e64e1b0aa98bf068"
36
+ "gitHead": "ea44ed3cff22c88f4c00e56d679db9e64a29639c"
37
37
  }