@transitive-sdk/utils-caps 0.1.3 → 0.2.1

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.
Files changed (2) hide show
  1. package/esbuild.js +35 -14
  2. package/package.json +1 -1
package/esbuild.js CHANGED
@@ -1,16 +1,22 @@
1
1
  const esbuild = require('esbuild');
2
2
  const fs = require('fs');
3
3
  const { execSync } = require('child_process');
4
- // const svgrPlugin = require('esbuild-plugin-svgr');
5
- const { getPackageVersionNamespace } = require('@transitive-sdk/utils');
4
+
5
+ const { getLogger, getPackageVersionNamespace } = require('@transitive-sdk/utils');
6
6
 
7
7
  if (!process.env.npm_package_version || !process.env.npm_package_name) {
8
8
  console.error('This build script must be run from npm.');
9
9
  process.exit(1);
10
10
  }
11
11
 
12
+ const capability =
13
+ `${process.env.npm_package_name}@${process.env.npm_package_version}`;
14
+ const log = getLogger(capability);
15
+ log.setLevel('info');
16
+
12
17
  const entryPoints = fs.readdirSync('./web', {withFileTypes: true})
13
18
  .filter(item => !item.isDirectory())
19
+ .filter(item => !item.isSymbolicLink())
14
20
  .filter(({name}) => name.search('test.js') == -1)
15
21
  .map(({name}) => `./web/${name}`);
16
22
 
@@ -18,20 +24,21 @@ const isDevelopment = (process.env.npm_lifecycle_event != 'prepare');
18
24
 
19
25
  const config = {
20
26
  entryPoints,
27
+ metafile: true, // for bundle analyser
21
28
  bundle: true,
22
29
  preserveSymlinks: true, // this allows us to use symlinks to ../shared
23
30
  minify: !isDevelopment,
24
31
  sourcemap: isDevelopment,
25
- target: ['es2022'],
26
32
  outdir: 'dist',
33
+ target: ['es2022'],
34
+ format: 'iife', // will be overwritten, see `formats` below
35
+ // splitting: true,
36
+ // external: ['react', 'react-dom'],
27
37
  define: {
28
38
  TR_PKG_VERSION: JSON.stringify(process.env.npm_package_version),
29
39
  TR_PKG_NAME: JSON.stringify(process.env.npm_package_name),
30
40
  TR_PKG_VERSION_NS: JSON.stringify(getPackageVersionNamespace()),
31
41
  },
32
- // plugins: [
33
- // svgrPlugin(),
34
- // ],
35
42
  loader: {
36
43
  '.svg': 'text',
37
44
  '.wasm': 'file',
@@ -41,24 +48,38 @@ const config = {
41
48
  name: 'rebuild-notify',
42
49
  setup(build) {
43
50
  build.onEnd(result => {
44
- console.log(new Date(),
51
+ log.info(build.initialOptions.format,
45
52
  `build ended with ${result.errors.length} errors`);
46
53
 
47
54
  const dir = `/tmp/caps/${process.env.npm_package_name}`;
48
- isDevelopment && execSync(`mkdir -p ${dir} && cp -r package.json dist ${dir}`);
55
+ isDevelopment &&
56
+ execSync(`mkdir -p ${dir} && cp -r package.json dist ${dir}`);
57
+
58
+ const metaName = [process.env.npm_package_name.replace(/\//, '-'),
59
+ isDevelopment ? 'dev' : 'prod'
60
+ ].join('.');
61
+ fs.writeFileSync(`/tmp/${metaName}.meta.json`,
62
+ JSON.stringify(result.metafile));
49
63
  })
50
64
  },
51
65
  }],
52
66
  };
53
67
 
68
+
54
69
  const run = async () => {
55
- const ctx = await esbuild.context(config);
56
- if (isDevelopment) {
57
- await ctx.watch();
58
- } else {
59
- await ctx.rebuild();
60
- process.exit(0);
70
+
71
+ // define multiple config overwrites, for multiple outputs
72
+ const formats = [
73
+ { format: 'iife' },
74
+ { format: 'esm', outExtension: {'.js': '.esm.js'}}
75
+ ];
76
+
77
+ for (let overwrites of formats) {
78
+ const ctx = await esbuild.context({...config, ...overwrites});
79
+ isDevelopment ? ctx.watch() : await ctx.rebuild();
61
80
  }
81
+
82
+ !isDevelopment && process.exit(0);
62
83
  };
63
84
 
64
85
  run();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transitive-sdk/utils-caps",
3
- "version": "0.1.3",
3
+ "version": "0.2.1",
4
4
  "description": "Utilities to build and run Transitive capabilities in dev",
5
5
  "homepage": "https://transitiverobotics.com",
6
6
  "repository": {