Skip to content

Commit d677dce

Browse files
committed
Wrapper use CommonJS
1 parent ca36179 commit d677dce

File tree

6 files changed

+189
-199
lines changed

6 files changed

+189
-199
lines changed

bundler.js renamed to bundler.mjs

File renamed without changes.

hugoalh.GitHubActionsToolkit/nodejs-wrapper/main.js

Lines changed: 11 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

hugoalh.GitHubActionsToolkit/nodejs-wrapper/package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
},
1616
"license": "MIT",
1717
"author": "hugoalh",
18-
"type": "module",
1918
"main": "./main.js",
20-
"exports": {
21-
"import": "./main.js"
22-
},
2319
"repository": {
2420
"type": "git",
2521
"url": "git+https://github.com/hugoalh-studio/ghactions-toolkit-powershell.git"

nodejs-wrapper-source/main.ts

Lines changed: 175 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
import { constants as fsConstants } from "node:fs";
2-
import { open as fsOpen, type FileHandle } from "node:fs/promises";
3-
import { DefaultArtifactClient as GitHubActionsArtifactClient, type ListArtifactsResponse as GitHubActionsArtifactListResponse, type DownloadArtifactResponse as GitHubActionsArtifactDownloadResponse, type UploadArtifactResponse as GitHubActionsArtifactUploadResponse, type GetArtifactResponse as GitHubActionsArtifactGetResponse } from "@actions/artifact";
4-
import { restoreCache as ghactionsCacheRestoreCache, saveCache as ghactionsCacheSaveCache } from "@actions/cache";
5-
import { debug as ghactionsDebug, getIDToken as ghactionsGetOpenIDConnectToken } from "@actions/core";
6-
import { cacheDir as ghactionsToolCacheCacheDirectory, cacheFile as ghactionsToolCacheCacheFile, downloadTool as ghactionsToolCacheDownloadTool, extract7z as ghactionsToolCacheExtract7z, extractTar as ghactionsToolCacheExtractTar, extractXar as ghactionsToolCacheExtractXar, extractZip as ghactionsToolCacheExtractZip, find as ghactionsToolCacheFind, findAllVersions as ghactionsToolCacheFindAllVersions } from "@actions/tool-cache";
7-
const exchangeFileHandle: FileHandle = await fsOpen(process.argv[2], fsConstants.O_RDWR | fsConstants.O_NOFOLLOW);
8-
const input = JSON.parse(await exchangeFileHandle.readFile({ encoding: "utf8" }));
9-
async function exchangeFileWrite(data: Record<string, unknown>): Promise<void> {
10-
await exchangeFileHandle.truncate(0);
11-
return exchangeFileHandle.writeFile(JSON.stringify(data), { encoding: "utf8" });
1+
import fs from "node:fs";
2+
import ghactionsArtifact from "@actions/artifact";
3+
import ghactionsCache from "@actions/cache";
4+
import ghactionsCore from "@actions/core";
5+
import ghactionsToolCache from "@actions/tool-cache";
6+
const exchangeFilePath: string = process.argv[2];
7+
const input = JSON.parse(fs.readFileSync(exchangeFilePath, { encoding: "utf-8" }));
8+
function exchangeFileWrite(data: Record<string, unknown>): void {
9+
return fs.writeFileSync(exchangeFilePath, JSON.stringify(data), { encoding: "utf8" });
1210
}
13-
function resolveFail(reason: string | Error | RangeError | ReferenceError | SyntaxError | TypeError): Promise<void> {
11+
function resolveFail(reason: string | Error | RangeError | ReferenceError | SyntaxError | TypeError): void {
1412
const output: Record<string, unknown> = {
1513
isSuccess: false
1614
};
@@ -25,172 +23,173 @@ function resolveFail(reason: string | Error | RangeError | ReferenceError | Synt
2523
}
2624
return exchangeFileWrite(output);
2725
}
28-
function resolveSuccess(result: unknown): Promise<void> {
26+
function resolveSuccess(result: unknown): void {
2927
return exchangeFileWrite({
3028
isSuccess: true,
3129
result
3230
});
3331
}
34-
switch (input.$name) {
35-
case "debug/fail":
36-
ghactionsDebug(input?.message ?? "");
37-
await resolveFail("This is a fail.");
38-
break;
39-
case "debug/success":
40-
ghactionsDebug(input?.message ?? "");
41-
await resolveSuccess("This is a success");
42-
break;
43-
case "artifact/download":
44-
try {
45-
const result: GitHubActionsArtifactDownloadResponse = await new GitHubActionsArtifactClient().downloadArtifact(input.id, {
46-
findBy: input.findBy,
47-
path: input.path
48-
});
49-
await resolveSuccess({
50-
path: result.downloadPath
51-
});
52-
} catch (error) {
53-
await resolveFail(error);
54-
}
55-
break;
56-
case "artifact/get":
57-
try {
58-
const result: GitHubActionsArtifactGetResponse = await new GitHubActionsArtifactClient().getArtifact(input.name, { findBy: input.findBy });
59-
await resolveSuccess(result.artifact);
60-
} catch (error) {
61-
await resolveFail(error);
62-
}
63-
break;
64-
case "artifact/list":
65-
try {
66-
const result: GitHubActionsArtifactListResponse = await new GitHubActionsArtifactClient().listArtifacts({
67-
findBy: input.findBy,
68-
latest: input.latest
69-
});
70-
await resolveSuccess(result.artifacts);
71-
} catch (error) {
72-
await resolveFail(error);
73-
}
74-
break;
75-
case "artifact/upload":
76-
try {
77-
const result: GitHubActionsArtifactUploadResponse = await new GitHubActionsArtifactClient().uploadArtifact(input.name, input.items, input.rootDirectory, {
78-
compressionLevel: input.compressionLevel,
79-
retentionDays: input.retentionDays
80-
});
81-
await resolveSuccess(result);
82-
} catch (error) {
83-
await resolveFail(error);
84-
}
85-
break;
86-
case "cache/restore":
87-
try {
88-
const result: string | undefined = await ghactionsCacheRestoreCache(input.paths, input.primaryKey, input.restoreKeys, {
89-
concurrentBlobDownloads: input.concurrencyBlobDownload,
90-
downloadConcurrency: input.downloadConcurrency,
91-
lookupOnly: input.lookup,
92-
segmentTimeoutInMs: input.segmentTimeout,
93-
timeoutInMs: input.timeout,
94-
useAzureSdk: input.useAzureSdk
95-
});
96-
await resolveSuccess(result ?? null);
97-
} catch (error) {
98-
await resolveFail(error);
99-
}
100-
break;
101-
case "cache/save":
102-
try {
103-
const result: number = await ghactionsCacheSaveCache(input.paths, input.key, {
104-
uploadChunkSize: input.uploadChunkSize,
105-
uploadConcurrency: input.uploadConcurrency
106-
});
107-
await resolveSuccess(result);
108-
} catch (error) {
109-
await resolveFail(error);
110-
}
111-
break;
112-
case "open-id-connect/get-token":
113-
try {
114-
const result: string = await ghactionsGetOpenIDConnectToken(input.audience);
115-
await resolveSuccess(result);
116-
} catch (error) {
117-
await resolveFail(error);
118-
}
119-
break;
120-
case "tool-cache/cache-directory":
121-
try {
122-
const result: string = await ghactionsToolCacheCacheDirectory(input.source, input.name, input.version, input.architecture);
123-
await resolveSuccess(result);
124-
} catch (error) {
125-
await resolveFail(error);
126-
}
127-
break;
128-
case "tool-cache/cache-file":
129-
try {
130-
const result: string = await ghactionsToolCacheCacheFile(input.source, input.target, input.name, input.version, input.architecture);
131-
await resolveSuccess(result);
132-
} catch (error) {
133-
await resolveFail(error);
134-
}
135-
break;
136-
case "tool-cache/download-tool":
137-
try {
138-
const result: string = await ghactionsToolCacheDownloadTool(input.url, input.destination, input.authorization, input.headers);
139-
await resolveSuccess(result);
140-
} catch (error) {
141-
await resolveFail(error);
142-
}
143-
break;
144-
case "tool-cache/extract-7z":
145-
try {
146-
const result: string = await ghactionsToolCacheExtract7z(input.file, input.destination, input["7zrPath"]);
147-
await resolveSuccess(result);
148-
} catch (error) {
149-
await resolveFail(error);
150-
}
151-
break;
152-
case "tool-cache/extract-tar":
153-
try {
154-
const result: string = await ghactionsToolCacheExtractTar(input.file, input.destination, input.flags);
155-
await resolveSuccess(result);
156-
} catch (error) {
157-
await resolveFail(error);
158-
}
159-
break;
160-
case "tool-cache/extract-xar":
161-
try {
162-
const result: string = await ghactionsToolCacheExtractXar(input.file, input.destination, input.flags);
163-
await resolveSuccess(result);
164-
} catch (error) {
165-
await resolveFail(error);
166-
}
167-
break;
168-
case "tool-cache/extract-zip":
169-
try {
170-
const result: string = await ghactionsToolCacheExtractZip(input.file, input.destination);
171-
await resolveSuccess(result);
172-
} catch (error) {
173-
await resolveFail(error);
174-
}
175-
break;
176-
case "tool-cache/find":
177-
try {
178-
const result: string = ghactionsToolCacheFind(input.name, input.version, input.architecture);
179-
await resolveSuccess(result);
180-
} catch (error) {
181-
await resolveFail(error);
182-
}
183-
break;
184-
case "tool-cache/find-all-versions":
185-
try {
186-
const result: string[] = ghactionsToolCacheFindAllVersions(input.name, input.architecture);
187-
await resolveSuccess(result);
188-
} catch (error) {
189-
await resolveFail(error);
190-
}
191-
break;
192-
default:
193-
await resolveFail(`\`${input.wrapperName}\` is not a valid NodeJS wrapper name! Most likely a mistake made by the contributors, please report this issue.`);
194-
break;
195-
}
196-
await exchangeFileHandle.close();
32+
(async () => {
33+
switch (input.$name) {
34+
case "debug/fail":
35+
ghactionsCore.debug(input?.message ?? "");
36+
resolveFail("This is a fail.");
37+
break;
38+
case "debug/success":
39+
ghactionsCore.debug(input?.message ?? "");
40+
resolveSuccess("This is a success");
41+
break;
42+
case "artifact/download":
43+
try {
44+
const result = await ghactionsArtifact.downloadArtifact(input.id, {
45+
findBy: input.findBy,
46+
path: input.path
47+
});
48+
resolveSuccess({
49+
path: result.downloadPath
50+
});
51+
} catch (error) {
52+
resolveFail(error);
53+
}
54+
break;
55+
case "artifact/get":
56+
try {
57+
const result = await ghactionsArtifact.getArtifact(input.name, { findBy: input.findBy });
58+
resolveSuccess(result.artifact);
59+
} catch (error) {
60+
resolveFail(error);
61+
}
62+
break;
63+
case "artifact/list":
64+
try {
65+
const result = await ghactionsArtifact.listArtifacts({
66+
findBy: input.findBy,
67+
latest: input.latest
68+
});
69+
resolveSuccess(result.artifacts);
70+
} catch (error) {
71+
resolveFail(error);
72+
}
73+
break;
74+
case "artifact/upload":
75+
try {
76+
const result = await ghactionsArtifact.uploadArtifact(input.name, input.items, input.rootDirectory, {
77+
compressionLevel: input.compressionLevel,
78+
retentionDays: input.retentionDays
79+
});
80+
resolveSuccess(result);
81+
} catch (error) {
82+
resolveFail(error);
83+
}
84+
break;
85+
case "cache/restore":
86+
try {
87+
const result: string | undefined = await ghactionsCache.restoreCache(input.paths, input.primaryKey, input.restoreKeys, {
88+
concurrentBlobDownloads: input.concurrencyBlobDownload,
89+
downloadConcurrency: input.downloadConcurrency,
90+
lookupOnly: input.lookup,
91+
segmentTimeoutInMs: input.segmentTimeout,
92+
timeoutInMs: input.timeout,
93+
useAzureSdk: input.useAzureSdk
94+
});
95+
resolveSuccess(result ?? null);
96+
} catch (error) {
97+
resolveFail(error);
98+
}
99+
break;
100+
case "cache/save":
101+
try {
102+
const result: number = await ghactionsCache.saveCache(input.paths, input.key, {
103+
uploadChunkSize: input.uploadChunkSize,
104+
uploadConcurrency: input.uploadConcurrency
105+
});
106+
resolveSuccess(result);
107+
} catch (error) {
108+
resolveFail(error);
109+
}
110+
break;
111+
case "open-id-connect/get-token":
112+
try {
113+
const result: string = await ghactionsCore.getIDToken(input.audience);
114+
resolveSuccess(result);
115+
} catch (error) {
116+
resolveFail(error);
117+
}
118+
break;
119+
case "tool-cache/cache-directory":
120+
try {
121+
const result: string = await ghactionsToolCache.cacheDir(input.source, input.name, input.version, input.architecture);
122+
resolveSuccess(result);
123+
} catch (error) {
124+
resolveFail(error);
125+
}
126+
break;
127+
case "tool-cache/cache-file":
128+
try {
129+
const result: string = await ghactionsToolCache.cacheFile(input.source, input.target, input.name, input.version, input.architecture);
130+
resolveSuccess(result);
131+
} catch (error) {
132+
resolveFail(error);
133+
}
134+
break;
135+
case "tool-cache/download-tool":
136+
try {
137+
const result: string = await ghactionsToolCache.downloadTool(input.url, input.destination, input.authorization, input.headers);
138+
resolveSuccess(result);
139+
} catch (error) {
140+
resolveFail(error);
141+
}
142+
break;
143+
case "tool-cache/extract-7z":
144+
try {
145+
const result: string = await ghactionsToolCache.extract7z(input.file, input.destination, input["7zrPath"]);
146+
resolveSuccess(result);
147+
} catch (error) {
148+
resolveFail(error);
149+
}
150+
break;
151+
case "tool-cache/extract-tar":
152+
try {
153+
const result: string = await ghactionsToolCache.extractTar(input.file, input.destination, input.flags);
154+
resolveSuccess(result);
155+
} catch (error) {
156+
resolveFail(error);
157+
}
158+
break;
159+
case "tool-cache/extract-xar":
160+
try {
161+
const result: string = await ghactionsToolCache.extractXar(input.file, input.destination, input.flags);
162+
resolveSuccess(result);
163+
} catch (error) {
164+
resolveFail(error);
165+
}
166+
break;
167+
case "tool-cache/extract-zip":
168+
try {
169+
const result: string = await ghactionsToolCache.extractZip(input.file, input.destination);
170+
resolveSuccess(result);
171+
} catch (error) {
172+
resolveFail(error);
173+
}
174+
break;
175+
case "tool-cache/find":
176+
try {
177+
const result: string = ghactionsToolCache.find(input.name, input.version, input.architecture);
178+
resolveSuccess(result);
179+
} catch (error) {
180+
resolveFail(error);
181+
}
182+
break;
183+
case "tool-cache/find-all-versions":
184+
try {
185+
const result: string[] = ghactionsToolCache.findAllVersions(input.name, input.architecture);
186+
resolveSuccess(result);
187+
} catch (error) {
188+
resolveFail(error);
189+
}
190+
break;
191+
default:
192+
resolveFail(`\`${input.wrapperName}\` is not a valid NodeJS wrapper name! Most likely a mistake made by the contributors, please report this issue.`);
193+
break;
194+
}
195+
})();

package.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,14 @@
1515
},
1616
"license": "MIT",
1717
"author": "hugoalh",
18-
"type": "module",
18+
"type": "commonjs",
1919
"main": "./main.js",
20-
"exports": {
21-
"import": "./main.js"
22-
},
2320
"repository": {
2421
"type": "git",
2522
"url": "git+https://github.com/hugoalh-studio/ghactions-toolkit-powershell.git"
2623
},
2724
"scripts": {
28-
"build": "tsc && node bundler.js"
25+
"build": "tsc && node bundler.mjs"
2926
},
3027
"dependencies": {
3128
"@actions/artifact": "^2.1.0",

0 commit comments

Comments
 (0)