@softarc/native-federation-esbuild 1.1.2 → 2.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softarc/native-federation-esbuild",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "@rollup/plugin-commonjs": "^22.0.2",
@@ -14,8 +14,8 @@
14
14
  "rollup-plugin-node-externals": "^4.1.1"
15
15
  },
16
16
  "peerDependencies": {
17
- "@softarc/native-federation": "1.1.2",
18
- "@softarc/native-federation-runtime": "1.1.2"
17
+ "@softarc/native-federation": "2.0.0",
18
+ "@softarc/native-federation-runtime": "2.0.0"
19
19
  },
20
20
  "main": "./src/index.js",
21
21
  "types": "./src/index.d.ts"
@@ -1,4 +1,4 @@
1
- import { BuildAdapter, BuildAdapterOptions } from '@softarc/native-federation/build';
1
+ import { BuildAdapter, BuildAdapterOptions, BuildResult } from '@softarc/native-federation/build';
2
2
  import * as esbuild from 'esbuild';
3
3
  export declare const esBuildAdapter: BuildAdapter;
4
4
  export type ReplacementConfig = {
@@ -13,4 +13,4 @@ export interface EsBuildAdapterConfig {
13
13
  [ext: string]: esbuild.Loader;
14
14
  };
15
15
  }
16
- export declare function createEsBuildAdapter(config: EsBuildAdapterConfig): (options: BuildAdapterOptions) => Promise<void>;
16
+ export declare function createEsBuildAdapter(config: EsBuildAdapterConfig): (options: BuildAdapterOptions) => Promise<BuildResult[]>;
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createEsBuildAdapter = exports.esBuildAdapter = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const build_1 = require("@softarc/native-federation/build");
6
5
  const esbuild = tslib_1.__importStar(require("esbuild"));
7
6
  const rollup_1 = require("rollup");
8
7
  const plugin_node_resolve_1 = tslib_1.__importDefault(require("@rollup/plugin-node-resolve"));
9
8
  const rollup_plugin_node_externals_1 = require("rollup-plugin-node-externals");
10
9
  const collect_exports_1 = require("./collect-exports");
11
10
  const fs = tslib_1.__importStar(require("fs"));
11
+ const path_1 = tslib_1.__importDefault(require("path"));
12
12
  // eslint-disable-next-line @typescript-eslint/no-var-requires
13
13
  const commonjs = require('@rollup/plugin-commonjs');
14
14
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -21,18 +21,26 @@ function createEsBuildAdapter(config) {
21
21
  config.compensateExports = [new RegExp('/react/')];
22
22
  }
23
23
  return (options) => tslib_1.__awaiter(this, void 0, void 0, function* () {
24
- var _a;
25
- const { entryPoint, external, outfile, watch } = options;
26
- const isPkg = entryPoint.includes('node_modules');
27
- const pkgName = isPkg ? inferePkgName(entryPoint) : '';
28
- const tmpFolder = `node_modules/.tmp/${pkgName}`;
29
- if (isPkg) {
30
- yield prepareNodePackage(entryPoint, external, tmpFolder, config, !!options.dev);
24
+ const { entryPoints, external, outdir, hash } = options;
25
+ // TODO: Do we need to prepare packages anymore as esbuild has evolved?
26
+ for (const entryPoint of entryPoints) {
27
+ const isPkg = entryPoint.fileName.includes('node_modules');
28
+ const pkgName = isPkg ? inferePkgName(entryPoint.fileName) : '';
29
+ const tmpFolder = `node_modules/.tmp/${pkgName}`;
30
+ if (isPkg) {
31
+ yield prepareNodePackage(entryPoint.fileName, external, tmpFolder, config, !!options.dev);
32
+ entryPoint.fileName = tmpFolder;
33
+ }
31
34
  }
32
- yield esbuild.build({
33
- entryPoints: [isPkg ? tmpFolder : entryPoint],
35
+ const ctx = yield esbuild.context({
36
+ entryPoints: entryPoints.map((ep) => ({
37
+ in: ep.fileName,
38
+ out: path_1.default.parse(ep.outName).name,
39
+ })),
40
+ write: false,
41
+ outdir,
42
+ entryNames: hash ? '[name]-[hash]' : '[name]',
34
43
  external,
35
- outfile,
36
44
  loader: config.loader,
37
45
  bundle: true,
38
46
  sourcemap: options.dev,
@@ -41,15 +49,32 @@ function createEsBuildAdapter(config) {
41
49
  target: ['esnext'],
42
50
  plugins: [...config.plugins],
43
51
  });
44
- const normEntryPoint = entryPoint.replace(/\\/g, '/');
45
- if (isPkg &&
46
- ((_a = config === null || config === void 0 ? void 0 : config.compensateExports) === null || _a === void 0 ? void 0 : _a.find((regExp) => regExp.exec(normEntryPoint)))) {
47
- build_1.logger.verbose('compensate exports for ' + tmpFolder);
48
- compensateExports(tmpFolder, outfile);
49
- }
52
+ const result = yield ctx.rebuild();
53
+ const writtenFiles = writeResult(result, outdir);
54
+ ctx.dispose();
55
+ return writtenFiles.map((fileName) => ({ fileName }));
56
+ // const normEntryPoint = entryPoint.replace(/\\/g, '/');
57
+ // if (
58
+ // isPkg &&
59
+ // config?.compensateExports?.find((regExp) => regExp.exec(normEntryPoint))
60
+ // ) {
61
+ // logger.verbose('compensate exports for ' + tmpFolder);
62
+ // compensateExports(tmpFolder, outfile);
63
+ // }
50
64
  });
51
65
  }
52
66
  exports.createEsBuildAdapter = createEsBuildAdapter;
67
+ function writeResult(result, outdir) {
68
+ const outputFiles = result.outputFiles || [];
69
+ const writtenFiles = [];
70
+ for (const outFile of outputFiles) {
71
+ const fileName = path_1.default.basename(outFile.path);
72
+ const filePath = path_1.default.join(outdir, fileName);
73
+ fs.writeFileSync(filePath, outFile.text);
74
+ writtenFiles.push(filePath);
75
+ }
76
+ return writtenFiles;
77
+ }
53
78
  function compensateExports(entryPoint, outfile) {
54
79
  const inExports = (0, collect_exports_1.collectExports)(entryPoint);
55
80
  const outExports = outfile ? (0, collect_exports_1.collectExports)(outfile) : inExports;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../../libs/native-federation-esbuild/src/lib/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../../libs/native-federation-esbuild/src/lib/adapter.ts"],"names":[],"mappings":"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"}