@diquattro/cfnassets 0.6.7 → 0.7.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/README.md +1 -21
- package/lib/cli/build.d.ts.map +1 -1
- package/lib/cli/build.js +30 -0
- package/lib/cli/build.js.map +1 -1
- package/lib/cli/cfnassets.js +0 -0
- package/lib/core/esbuild/esbuildPackageDir.d.ts +14 -0
- package/lib/core/esbuild/esbuildPackageDir.d.ts.map +1 -0
- package/lib/core/esbuild/esbuildPackageDir.js +52 -0
- package/lib/core/esbuild/esbuildPackageDir.js.map +1 -0
- package/lib/core/esbuild/esbuildPackageEntries.d.ts +4 -0
- package/lib/core/esbuild/esbuildPackageEntries.d.ts.map +1 -0
- package/lib/core/esbuild/esbuildPackageEntries.js +15 -0
- package/lib/core/esbuild/esbuildPackageEntries.js.map +1 -0
- package/lib/core/zip/getFolderEntries.d.ts.map +1 -1
- package/lib/core/zip/getFolderEntries.js +4 -12
- package/lib/core/zip/getFolderEntries.js.map +1 -1
- package/lib/core/zip/getPackageEntries.d.ts.map +1 -1
- package/lib/core/zip/getPackageEntries.js +1 -10
- package/lib/core/zip/getPackageEntries.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/package.json +8 -11
- package/src/cli/build.ts +49 -0
- package/src/core/esbuild/esbuildPackageDir.ts +83 -0
- package/src/core/esbuild/esbuildPackageEntries.ts +19 -0
- package/src/core/zip/getFolderEntries.ts +4 -13
- package/src/core/zip/getPackageEntries.ts +1 -10
- package/src/index.ts +2 -0
package/README.md
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
# @
|
|
2
|
-
|
|
3
|
-
> **Fork of [@awboost/cfnassets](https://github.com/awboost/cfnassets)** by Gordon Leigh.
|
|
4
|
-
> This fork adds pnpm support. Consider using the original package if/when this feature is merged upstream.
|
|
1
|
+
# @awboost/cfnassets
|
|
5
2
|
|
|
6
3
|
Build asset zip packages for deployment.
|
|
7
4
|
|
|
@@ -31,23 +28,6 @@ You need an assets config file:
|
|
|
31
28
|
}
|
|
32
29
|
```
|
|
33
30
|
|
|
34
|
-
The `packageLockPath` option supports npm (`package-lock.json`), yarn (`yarn.lock`), and pnpm (`pnpm-lock.yaml`):
|
|
35
|
-
|
|
36
|
-
```jsonc
|
|
37
|
-
// Example using pnpm
|
|
38
|
-
{
|
|
39
|
-
"api": {
|
|
40
|
-
"type": "rollup",
|
|
41
|
-
"options": {
|
|
42
|
-
"entrypoint": "./lib/lambda.js",
|
|
43
|
-
"install": ["source-map-support"],
|
|
44
|
-
"packageFilePath": "package.json",
|
|
45
|
-
"packageLockPath": "pnpm-lock.yaml"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
31
|
Then run:
|
|
52
32
|
|
|
53
33
|
```
|
package/lib/cli/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkFpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuFtD"}
|
package/lib/cli/build.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { array, assert, choose, is, object, optional, record, text, } from '@fmtk/decoders';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { dirname, resolve } from 'path';
|
|
4
|
+
import { esbuildPackageDir } from '../core/esbuild/esbuildPackageDir.js';
|
|
4
5
|
import { rollupPackageDir } from '../core/rollup/rollupPackageDir.js';
|
|
5
6
|
import { zipDir } from '../core/zip/zipDir.js';
|
|
6
7
|
import { getPackagePath } from '../internal/getPackagePath.js';
|
|
@@ -16,6 +17,18 @@ const decodeOptions = choose(object({
|
|
|
16
17
|
packageLockPath: optional(text),
|
|
17
18
|
rollupConfigPath: optional(text),
|
|
18
19
|
}),
|
|
20
|
+
}), object({
|
|
21
|
+
type: is('esbuild'),
|
|
22
|
+
options: object({
|
|
23
|
+
entrypoint: text,
|
|
24
|
+
configPath: optional(text),
|
|
25
|
+
ignore: optional(array(text)),
|
|
26
|
+
install: optional(array(text)),
|
|
27
|
+
packageArch: optional(text),
|
|
28
|
+
packageFilePath: optional(text),
|
|
29
|
+
packagePlatform: optional(text),
|
|
30
|
+
packageLockPath: optional(text),
|
|
31
|
+
}),
|
|
19
32
|
}), object({
|
|
20
33
|
type: is('content'),
|
|
21
34
|
options: object({
|
|
@@ -67,6 +80,23 @@ export function addBuildCommand(program) {
|
|
|
67
80
|
resolve(source, item.options.rollupConfigPath),
|
|
68
81
|
});
|
|
69
82
|
break;
|
|
83
|
+
case 'esbuild':
|
|
84
|
+
await esbuildPackageDir(source, {
|
|
85
|
+
bundleName: key,
|
|
86
|
+
entrypoint: item.options.entrypoint,
|
|
87
|
+
configPath: item.options.configPath &&
|
|
88
|
+
resolve(source, item.options.configPath),
|
|
89
|
+
ignorePaths: item.options.ignore,
|
|
90
|
+
installPackages: item.options.install,
|
|
91
|
+
outputPath: options.outputDir,
|
|
92
|
+
packageArch: item.options.packageArch,
|
|
93
|
+
packageFilePath: item.options.packageFilePath &&
|
|
94
|
+
resolve(source, item.options.packageFilePath),
|
|
95
|
+
packagePlatform: item.options.packagePlatform,
|
|
96
|
+
packageLockPath: item.options.packageLockPath &&
|
|
97
|
+
resolve(source, item.options.packageLockPath),
|
|
98
|
+
});
|
|
99
|
+
break;
|
|
70
100
|
default:
|
|
71
101
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
102
|
throw new Error(`unknown asset type ${item.type}`);
|
package/lib/cli/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,EAAE,EACF,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,GACL,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/cfnassets.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface EsbuildPackageDirOptions {
|
|
2
|
+
bundleName?: string;
|
|
3
|
+
configPath?: string;
|
|
4
|
+
entrypoint: string;
|
|
5
|
+
ignorePaths?: string[];
|
|
6
|
+
installPackages?: string[];
|
|
7
|
+
outputPath?: string;
|
|
8
|
+
packageArch?: string;
|
|
9
|
+
packageFilePath?: string;
|
|
10
|
+
packagePlatform?: string;
|
|
11
|
+
packageLockPath?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function esbuildPackageDir(dirPath: string, opts: EsbuildPackageDirOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=esbuildPackageDir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuildPackageDir.d.ts","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageDir.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createWriteStream } from 'fs';
|
|
2
|
+
import { mkdir } from 'fs/promises';
|
|
3
|
+
import { dirname, resolve } from 'path';
|
|
4
|
+
import { pipeline } from 'stream/promises';
|
|
5
|
+
import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
|
|
6
|
+
import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
|
|
7
|
+
import { getPackageEntries } from '../zip/getPackageEntries.js';
|
|
8
|
+
import { makeZipPackageStream } from '../zip/makeZipPackageStream.js';
|
|
9
|
+
import { esbuildPackageEntries } from './esbuildPackageEntries.js';
|
|
10
|
+
export async function esbuildPackageDir(dirPath, opts) {
|
|
11
|
+
const outputPath = opts.outputPath || `dist/${opts.bundleName || 'bundle'}.zip`;
|
|
12
|
+
const fullOutputPath = resolve(outputPath);
|
|
13
|
+
const installPackages = opts.installPackages || [];
|
|
14
|
+
const ignorePaths = opts.ignorePaths || [];
|
|
15
|
+
ignorePaths.push(...(await readDotIgnoreForFolder(dirPath)));
|
|
16
|
+
const configPath = resolve(dirPath, opts.configPath || 'esbuild.config.js');
|
|
17
|
+
const configModule = await import(configPath);
|
|
18
|
+
const config = configModule.default || {};
|
|
19
|
+
const buildOptions = {
|
|
20
|
+
...config,
|
|
21
|
+
entryPoints: [resolve(dirPath, opts.entrypoint)],
|
|
22
|
+
absWorkingDir: resolve(dirPath),
|
|
23
|
+
};
|
|
24
|
+
const entries = [];
|
|
25
|
+
for await (const entry of esbuildPackageEntries(buildOptions)) {
|
|
26
|
+
entries.push(entry);
|
|
27
|
+
}
|
|
28
|
+
if (installPackages.length) {
|
|
29
|
+
if (!opts.packageFilePath || !opts.packageLockPath) {
|
|
30
|
+
throw new Error(`must specify package lock path and package.json path when installing packages`);
|
|
31
|
+
}
|
|
32
|
+
const packageFiles = getPackageEntries({
|
|
33
|
+
ignorePaths,
|
|
34
|
+
packageArch: opts.packageArch,
|
|
35
|
+
packageFilePath: opts.packageFilePath,
|
|
36
|
+
packagePlatform: opts.packagePlatform,
|
|
37
|
+
packageLockPath: opts.packageLockPath,
|
|
38
|
+
packageNames: installPackages,
|
|
39
|
+
});
|
|
40
|
+
for await (const entry of packageFiles) {
|
|
41
|
+
entries.push(entry);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const output = await makeZipPackageStream(entries);
|
|
45
|
+
await mkdir(dirname(fullOutputPath), { recursive: true });
|
|
46
|
+
await pipeline(output, createWriteStream(fullOutputPath));
|
|
47
|
+
await addBundleInfoToPackageJson(dirPath, {
|
|
48
|
+
name: opts.bundleName,
|
|
49
|
+
path: outputPath,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=esbuildPackageDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuildPackageDir.js","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageDir.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAenE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,IAA8B;IAE9B,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,UAAU,IAAI,QAAQ,MAAM,CAAC;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,OAAO,CACxB,OAAO,EACP,IAAI,CAAC,UAAU,IAAI,mBAAmB,CACvC,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAiB,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;IAExD,MAAM,YAAY,GAAiB;QACjC,GAAG,MAAM;QACT,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;KAChC,CAAC;IAEF,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,EAAE;QAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;SACH;QACD,MAAM,YAAY,GAAG,iBAAiB,CAAC;YACrC,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAY,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1D,MAAM,0BAA0B,CAAC,OAAO,EAAE;QACxC,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuildPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,wBAAuB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,GACpB,qBAAqB,CAAC,aAAa,CAAC,CAYtC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { build } from 'esbuild';
|
|
2
|
+
import { basename } from 'path';
|
|
3
|
+
export async function* esbuildPackageEntries(options) {
|
|
4
|
+
const result = await build({
|
|
5
|
+
...options,
|
|
6
|
+
write: false,
|
|
7
|
+
});
|
|
8
|
+
for (const file of result.outputFiles ?? []) {
|
|
9
|
+
yield {
|
|
10
|
+
archivePath: basename(file.path),
|
|
11
|
+
content: Buffer.from(file.contents),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=esbuildPackageEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuildPackageEntries.js","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,OAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QACzB,GAAG,OAAO;QACV,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE;QAC3C,MAAM;YACJ,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACpC,CAAC;KACH;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAuB,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAqB,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACpB,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"getFolderEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAuB,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAqB,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACpB,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CA8B7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createReadStream } from 'fs';
|
|
2
|
-
import { readdir
|
|
2
|
+
import { readdir } from 'fs/promises';
|
|
3
3
|
import ignore from 'ignore';
|
|
4
4
|
import { join, relative, resolve } from 'path';
|
|
5
5
|
export async function* getFolderEntries({ archivePath: archiveBasePath = '/', source, ignore: ignorePaths, }) {
|
|
@@ -10,25 +10,17 @@ export async function* getFolderEntries({ archivePath: archiveBasePath = '/', so
|
|
|
10
10
|
const entries = await readdir(curr, { withFileTypes: true });
|
|
11
11
|
for (const entry of entries) {
|
|
12
12
|
const entryPath = join(curr, entry.name);
|
|
13
|
-
// For symlinks, follow them to get the real type
|
|
14
|
-
let isDir = entry.isDirectory();
|
|
15
|
-
let isFile = entry.isFile();
|
|
16
|
-
if (entry.isSymbolicLink()) {
|
|
17
|
-
const realStat = await stat(entryPath);
|
|
18
|
-
isDir = realStat.isDirectory();
|
|
19
|
-
isFile = realStat.isFile();
|
|
20
|
-
}
|
|
21
13
|
let archivePath = relative(source, entryPath);
|
|
22
|
-
if (
|
|
14
|
+
if (entry.isDirectory()) {
|
|
23
15
|
archivePath += '/';
|
|
24
16
|
}
|
|
25
17
|
if (ig.ignores(archivePath)) {
|
|
26
18
|
continue;
|
|
27
19
|
}
|
|
28
|
-
if (
|
|
20
|
+
if (entry.isDirectory()) {
|
|
29
21
|
work.push(entryPath);
|
|
30
22
|
}
|
|
31
|
-
else if (isFile) {
|
|
23
|
+
else if (entry.isFile()) {
|
|
32
24
|
yield {
|
|
33
25
|
archivePath: join(archiveBasePath, archivePath),
|
|
34
26
|
content: () => createReadStream(entryPath),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getFolderEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAS/C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAe,GAAG,GAAG,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACE;IACrB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAEnD,OAAO,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,WAAW,IAAI,GAAG,CAAC;aACpB;YACD,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC3B,SAAS;aACV;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBACzB,MAAM;oBACJ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;oBAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC;iBAC3C,CAAC;aACH;SACF;KACF;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAuB,iBAAiB,CAAC,EACvC,WAA4B,EAC5B,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,GACb,EAAE,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"getPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAuB,iBAAiB,CAAC,EACvC,WAA4B,EAC5B,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,GACb,EAAE,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CA2E9D"}
|
|
@@ -6,7 +6,6 @@ import { temporaryDirectory } from 'tempy';
|
|
|
6
6
|
import { getFolderEntries } from './getFolderEntries.js';
|
|
7
7
|
export async function* getPackageEntries({ archivePath = 'node_modules', ignorePaths, packageLockPath, packageFilePath, packageArch, packagePlatform, packageNames, }) {
|
|
8
8
|
let exec;
|
|
9
|
-
let copyLockfile = true;
|
|
10
9
|
const npmConfig = [];
|
|
11
10
|
const lockBasename = basename(packageLockPath);
|
|
12
11
|
if (lockBasename === 'package-lock.json') {
|
|
@@ -15,12 +14,6 @@ export async function* getPackageEntries({ archivePath = 'node_modules', ignoreP
|
|
|
15
14
|
else if (lockBasename === 'yarn.lock') {
|
|
16
15
|
exec = ['yarn', '--frozen-lockfile'];
|
|
17
16
|
}
|
|
18
|
-
else if (lockBasename === 'pnpm-lock.yaml') {
|
|
19
|
-
// Use npm install for pnpm projects - creates a flat node_modules structure
|
|
20
|
-
// that works reliably on Lambda without needing to replicate pnpm's symlink structure
|
|
21
|
-
exec = ['npm', 'install'];
|
|
22
|
-
copyLockfile = false;
|
|
23
|
-
}
|
|
24
17
|
else {
|
|
25
18
|
throw new Error(`unknown lockfile type for path '${packageLockPath}'`);
|
|
26
19
|
}
|
|
@@ -46,9 +39,7 @@ export async function* getPackageEntries({ archivePath = 'node_modules', ignoreP
|
|
|
46
39
|
}
|
|
47
40
|
const outDir = temporaryDirectory();
|
|
48
41
|
await writeFile(join(outDir, 'package.json'), JSON.stringify(newPackageJson));
|
|
49
|
-
|
|
50
|
-
await copyFile(packageLockPath, join(outDir, lockBasename));
|
|
51
|
-
}
|
|
42
|
+
await copyFile(packageLockPath, join(outDir, lockBasename));
|
|
52
43
|
if (npmConfig.length) {
|
|
53
44
|
await writeFile(join(outDir, '.npmrc'), npmConfig.join('\n') + '\n');
|
|
54
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAazD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAAC,EACvC,WAAW,GAAG,cAAc,EAC5B,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,GACU;IACtB,IAAI,IAAc,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './core/esbuild/esbuildPackageDir.js';
|
|
2
|
+
export * from './core/esbuild/esbuildPackageEntries.js';
|
|
1
3
|
export * from './core/rollup/makeRollupPackageStream.js';
|
|
2
4
|
export * from './core/rollup/rollupPackageDir.js';
|
|
3
5
|
export * from './core/rollup/rollupPackageEntries.js';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// AUTO-GENERATED node ../makeIndex.js
|
|
2
|
+
export * from './core/esbuild/esbuildPackageDir.js';
|
|
3
|
+
export * from './core/esbuild/esbuildPackageEntries.js';
|
|
2
4
|
export * from './core/rollup/makeRollupPackageStream.js';
|
|
3
5
|
export * from './core/rollup/rollupPackageDir.js';
|
|
4
6
|
export * from './core/rollup/rollupPackageEntries.js';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diquattro/cfnassets",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Build asset zip packages for deployment. Fork of @awboost/cfnassets with pnpm support.",
|
|
3
|
+
"version": "0.7.0",
|
|
5
4
|
"type": "module",
|
|
6
5
|
"repository": {
|
|
7
6
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/
|
|
7
|
+
"url": "https://github.com/awboost/cfnassets.git"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/awboost/cfnassets#readme",
|
|
10
|
+
"author": {
|
|
11
|
+
"email": "gordonmleigh@gmail.com",
|
|
12
|
+
"name": "Gordon Leigh"
|
|
9
13
|
},
|
|
10
|
-
"homepage": "https://github.com/diegodi4/cfnassets#readme",
|
|
11
|
-
"author": "diegodi4",
|
|
12
|
-
"contributors": [
|
|
13
|
-
{
|
|
14
|
-
"name": "Gordon Leigh",
|
|
15
|
-
"email": "gordonmleigh@gmail.com"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
14
|
"license": "MIT",
|
|
19
15
|
"private": false,
|
|
20
16
|
"publishConfig": {
|
|
@@ -62,6 +58,7 @@
|
|
|
62
58
|
"@fmtk/decoders": "^0.5.2",
|
|
63
59
|
"archiver": "^5.3.1",
|
|
64
60
|
"chalk": "^5.0.1",
|
|
61
|
+
"esbuild": "^0.24.0",
|
|
65
62
|
"commander": "^9.2.0",
|
|
66
63
|
"ignore": "^5.2.0",
|
|
67
64
|
"rollup": "^2.73.0",
|
package/src/cli/build.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import { Command } from 'commander';
|
|
12
12
|
import fs from 'fs';
|
|
13
13
|
import { dirname, resolve } from 'path';
|
|
14
|
+
import { esbuildPackageDir } from '../core/esbuild/esbuildPackageDir.js';
|
|
14
15
|
import { rollupPackageDir } from '../core/rollup/rollupPackageDir.js';
|
|
15
16
|
import { zipDir } from '../core/zip/zipDir.js';
|
|
16
17
|
import { getPackagePath } from '../internal/getPackagePath.js';
|
|
@@ -29,6 +30,20 @@ interface RollupOptions {
|
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
|
|
33
|
+
interface EsbuildOptions {
|
|
34
|
+
type: 'esbuild';
|
|
35
|
+
options: {
|
|
36
|
+
entrypoint: string;
|
|
37
|
+
configPath?: string;
|
|
38
|
+
ignore?: string[];
|
|
39
|
+
install?: string[];
|
|
40
|
+
packageArch?: string;
|
|
41
|
+
packageFilePath?: string;
|
|
42
|
+
packagePlatform?: string;
|
|
43
|
+
packageLockPath?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
32
47
|
interface ContentOptions {
|
|
33
48
|
type: 'content';
|
|
34
49
|
options: {
|
|
@@ -51,6 +66,19 @@ const decodeOptions = choose(
|
|
|
51
66
|
rollupConfigPath: optional(text),
|
|
52
67
|
}),
|
|
53
68
|
}),
|
|
69
|
+
object<EsbuildOptions>({
|
|
70
|
+
type: is('esbuild'),
|
|
71
|
+
options: object<EsbuildOptions['options']>({
|
|
72
|
+
entrypoint: text,
|
|
73
|
+
configPath: optional(text),
|
|
74
|
+
ignore: optional(array(text)),
|
|
75
|
+
install: optional(array(text)),
|
|
76
|
+
packageArch: optional(text),
|
|
77
|
+
packageFilePath: optional(text),
|
|
78
|
+
packagePlatform: optional(text),
|
|
79
|
+
packageLockPath: optional(text),
|
|
80
|
+
}),
|
|
81
|
+
}),
|
|
54
82
|
object<ContentOptions>({
|
|
55
83
|
type: is('content'),
|
|
56
84
|
options: object<ContentOptions['options']>({
|
|
@@ -121,6 +149,27 @@ export function addBuildCommand(program: Command): void {
|
|
|
121
149
|
});
|
|
122
150
|
break;
|
|
123
151
|
|
|
152
|
+
case 'esbuild':
|
|
153
|
+
await esbuildPackageDir(source, {
|
|
154
|
+
bundleName: key,
|
|
155
|
+
entrypoint: item.options.entrypoint,
|
|
156
|
+
configPath:
|
|
157
|
+
item.options.configPath &&
|
|
158
|
+
resolve(source, item.options.configPath),
|
|
159
|
+
ignorePaths: item.options.ignore,
|
|
160
|
+
installPackages: item.options.install,
|
|
161
|
+
outputPath: options.outputDir,
|
|
162
|
+
packageArch: item.options.packageArch,
|
|
163
|
+
packageFilePath:
|
|
164
|
+
item.options.packageFilePath &&
|
|
165
|
+
resolve(source, item.options.packageFilePath),
|
|
166
|
+
packagePlatform: item.options.packagePlatform,
|
|
167
|
+
packageLockPath:
|
|
168
|
+
item.options.packageLockPath &&
|
|
169
|
+
resolve(source, item.options.packageLockPath),
|
|
170
|
+
});
|
|
171
|
+
break;
|
|
172
|
+
|
|
124
173
|
default:
|
|
125
174
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
175
|
throw new Error(`unknown asset type ${(item as any).type}`);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { BuildOptions } from 'esbuild';
|
|
2
|
+
import { createWriteStream } from 'fs';
|
|
3
|
+
import { mkdir } from 'fs/promises';
|
|
4
|
+
import { dirname, resolve } from 'path';
|
|
5
|
+
import { pipeline } from 'stream/promises';
|
|
6
|
+
import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
|
|
7
|
+
import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
|
|
8
|
+
import { getPackageEntries } from '../zip/getPackageEntries.js';
|
|
9
|
+
import { makeZipPackageStream } from '../zip/makeZipPackageStream.js';
|
|
10
|
+
import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
|
|
11
|
+
import { esbuildPackageEntries } from './esbuildPackageEntries.js';
|
|
12
|
+
|
|
13
|
+
export interface EsbuildPackageDirOptions {
|
|
14
|
+
bundleName?: string;
|
|
15
|
+
configPath?: string;
|
|
16
|
+
entrypoint: string;
|
|
17
|
+
ignorePaths?: string[];
|
|
18
|
+
installPackages?: string[];
|
|
19
|
+
outputPath?: string;
|
|
20
|
+
packageArch?: string;
|
|
21
|
+
packageFilePath?: string;
|
|
22
|
+
packagePlatform?: string;
|
|
23
|
+
packageLockPath?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export async function esbuildPackageDir(
|
|
27
|
+
dirPath: string,
|
|
28
|
+
opts: EsbuildPackageDirOptions,
|
|
29
|
+
): Promise<void> {
|
|
30
|
+
const outputPath =
|
|
31
|
+
opts.outputPath || `dist/${opts.bundleName || 'bundle'}.zip`;
|
|
32
|
+
const fullOutputPath = resolve(outputPath);
|
|
33
|
+
const installPackages = opts.installPackages || [];
|
|
34
|
+
|
|
35
|
+
const ignorePaths = opts.ignorePaths || [];
|
|
36
|
+
ignorePaths.push(...(await readDotIgnoreForFolder(dirPath)));
|
|
37
|
+
|
|
38
|
+
const configPath = resolve(dirPath, opts.configPath || 'esbuild.config.js');
|
|
39
|
+
const configModule = await import(configPath);
|
|
40
|
+
const config: BuildOptions = configModule.default || {};
|
|
41
|
+
|
|
42
|
+
const buildOptions: BuildOptions = {
|
|
43
|
+
...config,
|
|
44
|
+
entryPoints: [resolve(dirPath, opts.entrypoint)],
|
|
45
|
+
absWorkingDir: resolve(dirPath),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const entries: ZipAssetEntry[] = [];
|
|
49
|
+
|
|
50
|
+
for await (const entry of esbuildPackageEntries(buildOptions)) {
|
|
51
|
+
entries.push(entry);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (installPackages.length) {
|
|
55
|
+
if (!opts.packageFilePath || !opts.packageLockPath) {
|
|
56
|
+
throw new Error(
|
|
57
|
+
`must specify package lock path and package.json path when installing packages`,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
const packageFiles = getPackageEntries({
|
|
61
|
+
ignorePaths,
|
|
62
|
+
packageArch: opts.packageArch,
|
|
63
|
+
packageFilePath: opts.packageFilePath,
|
|
64
|
+
packagePlatform: opts.packagePlatform,
|
|
65
|
+
packageLockPath: opts.packageLockPath,
|
|
66
|
+
packageNames: installPackages,
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
for await (const entry of packageFiles) {
|
|
70
|
+
entries.push(entry);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const output = await makeZipPackageStream(entries);
|
|
75
|
+
|
|
76
|
+
await mkdir(dirname(fullOutputPath), { recursive: true });
|
|
77
|
+
await pipeline(output, createWriteStream(fullOutputPath));
|
|
78
|
+
|
|
79
|
+
await addBundleInfoToPackageJson(dirPath, {
|
|
80
|
+
name: opts.bundleName,
|
|
81
|
+
path: outputPath,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { build, BuildOptions } from 'esbuild';
|
|
2
|
+
import { basename } from 'path';
|
|
3
|
+
import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
|
|
4
|
+
|
|
5
|
+
export async function* esbuildPackageEntries(
|
|
6
|
+
options: BuildOptions,
|
|
7
|
+
): AsyncIterableIterator<ZipAssetEntry> {
|
|
8
|
+
const result = await build({
|
|
9
|
+
...options,
|
|
10
|
+
write: false,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
for (const file of result.outputFiles ?? []) {
|
|
14
|
+
yield {
|
|
15
|
+
archivePath: basename(file.path),
|
|
16
|
+
content: Buffer.from(file.contents),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createReadStream } from 'fs';
|
|
2
|
-
import { readdir
|
|
2
|
+
import { readdir } from 'fs/promises';
|
|
3
3
|
import ignore from 'ignore';
|
|
4
4
|
import { join, relative, resolve } from 'path';
|
|
5
5
|
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
@@ -26,26 +26,17 @@ export async function* getFolderEntries({
|
|
|
26
26
|
for (const entry of entries) {
|
|
27
27
|
const entryPath = join(curr, entry.name);
|
|
28
28
|
|
|
29
|
-
// For symlinks, follow them to get the real type
|
|
30
|
-
let isDir = entry.isDirectory();
|
|
31
|
-
let isFile = entry.isFile();
|
|
32
|
-
if (entry.isSymbolicLink()) {
|
|
33
|
-
const realStat = await stat(entryPath);
|
|
34
|
-
isDir = realStat.isDirectory();
|
|
35
|
-
isFile = realStat.isFile();
|
|
36
|
-
}
|
|
37
|
-
|
|
38
29
|
let archivePath = relative(source, entryPath);
|
|
39
|
-
if (
|
|
30
|
+
if (entry.isDirectory()) {
|
|
40
31
|
archivePath += '/';
|
|
41
32
|
}
|
|
42
33
|
if (ig.ignores(archivePath)) {
|
|
43
34
|
continue;
|
|
44
35
|
}
|
|
45
36
|
|
|
46
|
-
if (
|
|
37
|
+
if (entry.isDirectory()) {
|
|
47
38
|
work.push(entryPath);
|
|
48
|
-
} else if (isFile) {
|
|
39
|
+
} else if (entry.isFile()) {
|
|
49
40
|
yield {
|
|
50
41
|
archivePath: join(archiveBasePath, archivePath),
|
|
51
42
|
content: () => createReadStream(entryPath),
|
|
@@ -26,7 +26,6 @@ export async function* getPackageEntries({
|
|
|
26
26
|
packageNames,
|
|
27
27
|
}: PackageEntriesOptions): AsyncIterableIterator<ZipAssetEntry> {
|
|
28
28
|
let exec: string[];
|
|
29
|
-
let copyLockfile = true;
|
|
30
29
|
const npmConfig: string[] = [];
|
|
31
30
|
|
|
32
31
|
const lockBasename = basename(packageLockPath);
|
|
@@ -34,11 +33,6 @@ export async function* getPackageEntries({
|
|
|
34
33
|
exec = ['npm', 'ci'];
|
|
35
34
|
} else if (lockBasename === 'yarn.lock') {
|
|
36
35
|
exec = ['yarn', '--frozen-lockfile'];
|
|
37
|
-
} else if (lockBasename === 'pnpm-lock.yaml') {
|
|
38
|
-
// Use npm install for pnpm projects - creates a flat node_modules structure
|
|
39
|
-
// that works reliably on Lambda without needing to replicate pnpm's symlink structure
|
|
40
|
-
exec = ['npm', 'install'];
|
|
41
|
-
copyLockfile = false;
|
|
42
36
|
} else {
|
|
43
37
|
throw new Error(`unknown lockfile type for path '${packageLockPath}'`);
|
|
44
38
|
}
|
|
@@ -72,10 +66,7 @@ export async function* getPackageEntries({
|
|
|
72
66
|
|
|
73
67
|
const outDir = temporaryDirectory();
|
|
74
68
|
await writeFile(join(outDir, 'package.json'), JSON.stringify(newPackageJson));
|
|
75
|
-
|
|
76
|
-
if (copyLockfile) {
|
|
77
|
-
await copyFile(packageLockPath, join(outDir, lockBasename));
|
|
78
|
-
}
|
|
69
|
+
await copyFile(packageLockPath, join(outDir, lockBasename));
|
|
79
70
|
|
|
80
71
|
if (npmConfig.length) {
|
|
81
72
|
await writeFile(join(outDir, '.npmrc'), npmConfig.join('\n') + '\n');
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// AUTO-GENERATED node ../makeIndex.js
|
|
2
|
+
export * from './core/esbuild/esbuildPackageDir.js';
|
|
3
|
+
export * from './core/esbuild/esbuildPackageEntries.js';
|
|
2
4
|
export * from './core/rollup/makeRollupPackageStream.js';
|
|
3
5
|
export * from './core/rollup/rollupPackageDir.js';
|
|
4
6
|
export * from './core/rollup/rollupPackageEntries.js';
|