@adaptive-ds/assets-optimizer 0.4.0 → 0.5.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/changelogs/2026-04-19_v0.5.0.md +9 -0
- package/dist/process/ProcessAssetsOptions.d.ts +4 -8
- package/dist/process/ProcessAssetsOptions.d.ts.map +1 -1
- package/dist/process/processAssets.d.ts.map +1 -1
- package/dist/process/processAssets.js +5 -9
- package/dist/shared/isLocalDirEmpty.js +3 -3
- package/dist/shared/isRemoteEmpty.d.ts.map +1 -1
- package/dist/shared/isRemoteEmpty.js +11 -3
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { AssetsOptimizeOptions } from "../AssetsOptimizeOptions.js";
|
|
2
2
|
export interface ProcessAssetsOptions extends AssetsOptimizeOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
sourceImagesRemotePath: string;
|
|
4
|
+
sourceVideosRemotePath: string;
|
|
5
|
+
destImagesRemotePath: string;
|
|
6
|
+
destVideosRemotePath: string;
|
|
7
7
|
cwd?: string;
|
|
8
8
|
resync?: boolean;
|
|
9
9
|
processImages?: boolean;
|
|
@@ -15,10 +15,6 @@ export interface ProcessAssetsOptions extends AssetsOptimizeOptions {
|
|
|
15
15
|
imageListOutputPath?: string;
|
|
16
16
|
videoListOutputPath?: string;
|
|
17
17
|
assetsOptimizeLocallyFn?: () => Promise<void>;
|
|
18
|
-
sourceImagesFolder?: string;
|
|
19
|
-
sourceVideosFolder?: string;
|
|
20
|
-
destImagesFolder?: string;
|
|
21
|
-
destVideosFolder?: string;
|
|
22
18
|
imageCacheControl?: string;
|
|
23
19
|
videoCacheControl?: string;
|
|
24
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessAssetsOptions.d.ts","sourceRoot":"","sources":["../../src/process/ProcessAssetsOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,
|
|
1
|
+
{"version":3,"file":"ProcessAssetsOptions.d.ts","sourceRoot":"","sources":["../../src/process/ProcessAssetsOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAssets.d.ts","sourceRoot":"","sources":["../../src/process/processAssets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGrE,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"processAssets.d.ts","sourceRoot":"","sources":["../../src/process/processAssets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGrE,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFhF"}
|
|
@@ -3,20 +3,16 @@ import { bisync } from "../rclone/bisync.js";
|
|
|
3
3
|
import { runRclone } from "../rclone/runRclone.js";
|
|
4
4
|
import { shouldBisync } from "./utils/shouldBisync.js";
|
|
5
5
|
export async function processAssets(options) {
|
|
6
|
-
const {
|
|
6
|
+
const { sourceImagesRemotePath, sourceVideosRemotePath, destImagesRemotePath, destVideosRemotePath, cwd = process.cwd(), resync = false, processImages = true, processVideos = true, imageOriginalsDir = "./images", imageOptimizedDir = "./public/images", videoOriginalsDir = "./videos", videoOptimizedDir = "./public/videos", imageListOutputPath = "./src/app/assets/imageList.ts", videoListOutputPath = "./src/app/assets/videoList.ts", assetsOptimizeLocallyFn, imageCacheControl = "Cache-Control:public, max-age=31536000, immutable", videoCacheControl = "Cache-Control:public, max-age=259200, immutable", logLevel, ...assetsOptimizeOptions } = options;
|
|
7
7
|
if (!processImages && !processVideos) {
|
|
8
8
|
if ((logLevel ?? 3) >= 2)
|
|
9
9
|
console.log("Nothing to process (both images and videos disabled)");
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const sourceImages = `${resolvedRemoteSource}${remoteSourcePrefix}${sourceImagesFolder}`;
|
|
17
|
-
const sourceVideos = `${resolvedRemoteSource}${remoteSourcePrefix}${sourceVideosFolder}`;
|
|
18
|
-
const destImages = `${resolvedRemoteDestination}${remoteDestinationPrefix}${destImagesFolder}`;
|
|
19
|
-
const destVideos = `${resolvedRemoteDestination}${remoteDestinationPrefix}${destVideosFolder}`;
|
|
12
|
+
const sourceImages = sourceImagesRemotePath;
|
|
13
|
+
const sourceVideos = sourceVideosRemotePath;
|
|
14
|
+
const destImages = destImagesRemotePath;
|
|
15
|
+
const destVideos = destVideosRemotePath;
|
|
20
16
|
const syncImages = processImages ? await shouldBisync(imageOriginalsDir, sourceImages) : false;
|
|
21
17
|
const syncVideos = processVideos ? await shouldBisync(videoOriginalsDir, sourceVideos) : false;
|
|
22
18
|
if (!syncImages && !syncVideos) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { walkFiles } from "./walkFiles.js";
|
|
2
2
|
export async function isLocalDirEmpty(dir) {
|
|
3
3
|
try {
|
|
4
|
-
const
|
|
5
|
-
return
|
|
4
|
+
const files = await walkFiles(dir);
|
|
5
|
+
return files.length === 0;
|
|
6
6
|
}
|
|
7
7
|
catch {
|
|
8
8
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isRemoteEmpty.d.ts","sourceRoot":"","sources":["../../src/shared/isRemoteEmpty.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"isRemoteEmpty.d.ts","sourceRoot":"","sources":["../../src/shared/isRemoteEmpty.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpE"}
|
|
@@ -6,7 +6,15 @@ export async function isRemoteEmpty(remote) {
|
|
|
6
6
|
stderr: "pipe",
|
|
7
7
|
});
|
|
8
8
|
const output = await new Response(proc.stdout).text();
|
|
9
|
-
await proc.exited;
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const exitCode = await proc.exited;
|
|
10
|
+
if (exitCode !== 0) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const result = JSON.parse(output);
|
|
15
|
+
return result.count === 0;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
12
20
|
}
|