This commit is contained in:
Morten Olsen
2024-01-11 09:03:14 +01:00
commit 676a7e09b5
97 changed files with 8291 additions and 0 deletions

3
packages/mini-loader/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
/dist/
/node_modules/
/coverage/

View File

@@ -0,0 +1,23 @@
{
"name": "@morten-olsen/mini-loader",
"version": "1.0.0",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"scripts": {
"build": "tsc --build"
},
"type": "module",
"files": [
"./dist"
],
"exports": {
".": {
"import": "./dist/esm/index.js"
}
},
"devDependencies": {
"@morten-olsen/mini-loader-configs": "workspace:^",
"@types/node": "^20.10.8",
"typescript": "^5.3.3"
}
}

View File

@@ -0,0 +1,26 @@
import { send } from '../utils.js';
type ArtifactCreateEvent = {
type: 'artifact:create';
payload: {
name: string;
data: string;
};
};
const create = (name: string, data: Buffer | string) => {
send({
type: 'artifact:create',
payload: {
name,
data: data.toString('base64'),
},
});
};
const artifacts = {
create,
};
export type { ArtifactCreateEvent };
export { artifacts };

View File

@@ -0,0 +1,10 @@
import type { LoggerEvent } from './logger/logger.js';
import type { ArtifactCreateEvent } from './artifacts/artifacts.js';
type Event = LoggerEvent | ArtifactCreateEvent;
export type { Event, LoggerEvent, ArtifactCreateEvent };
export { logger } from './logger/logger.js';
export { artifacts } from './artifacts/artifacts.js';
export { input } from './input/input.js';
export { secrets } from './secrets/secrets.js';

View File

@@ -0,0 +1,11 @@
import { workerData } from 'worker_threads';
const get = <T>() => {
return workerData as T;
};
const input = {
get,
};
export { input };

View File

@@ -0,0 +1,50 @@
import { send } from '../utils.js';
type LoggerEvent = {
type: 'log';
payload: {
severity: 'info' | 'warning' | 'error';
message: string;
data?: unknown;
};
};
const sendLog = (event: LoggerEvent['payload']) => {
send({
type: 'log',
payload: event,
});
};
const info = (message: string, data?: unknown) => {
sendLog({
severity: 'info',
message,
data,
});
};
const warn = (message: string, data?: unknown) => {
sendLog({
severity: 'warning',
message,
data,
});
};
const error = (message: string, data?: unknown) => {
sendLog({
severity: 'error',
message,
data,
});
};
const logger = {
info,
warn,
error,
};
export type { LoggerEvent };
export { logger };

View File

@@ -0,0 +1,12 @@
import { workerData } from 'worker_threads';
const get = (id: string) => {
const items = workerData?.secrets ?? {};
return items[id];
};
const secrets = {
get,
};
export { secrets };

View File

@@ -0,0 +1,8 @@
import { parentPort } from 'worker_threads';
const send = (data: any) => {
const cleaned = JSON.parse(JSON.stringify(data));
parentPort?.postMessage(cleaned);
};
export { send };

View File

@@ -0,0 +1,9 @@
{
"extends": "@morten-olsen/mini-loader-configs/tsconfig.esm.json",
"compilerOptions": {
"outDir": "dist/esm",
},
"include": [
"src"
],
}