datajets/stdout-datajet.ts (35 lines of code) (raw):
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import { IDatajet, ILogData } from "../core/ext-types.js";
interface IDatajetConfig {
logStream: "stdout" | "stderr" | "auto",
defaultStream: "stdout" | "stderr",
logKey: string,
}
const defaultConfig: IDatajetConfig = {
logStream: "auto",
defaultStream: "stdout",
logKey: null,
}
const stdoutDatajet: IDatajet = {
name: "stdout",
defaultConfig: defaultConfig,
createConfiguredDatajet: function (config: IDatajetConfig) {
return {
datajetTemplate: this,
transmitBatch: async (batch: Array<ILogData>) => {
batch.forEach(log => {
const logMethod = (config.logStream !== "auto")
? config.logStream
: (log.stream ?? config.defaultStream);
if (logMethod === "stdout") {
console.log((config.logKey) ? log[config.logKey] : JSON.stringify(log));
}
else if (logMethod === "stderr") {
console.error((config.logKey) ? log[config.logKey] : JSON.stringify(log));
}
});
return true;
}
}
}
}
export default stdoutDatajet;