/**
 * Copyright Microsoft Corporation. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import util from 'util';
import { serializeCompilationCache } from '../transform/compilationCache';
export function serializeConfig(config, passCompilationCache) {
    const result = {
        location: { configDir: config.configDir, resolvedConfigFile: config.config.configFile },
        configCLIOverrides: config.configCLIOverrides,
        compilationCache: passCompilationCache ? serializeCompilationCache() : undefined,
    };
    try {
        result.metadata = JSON.stringify(config.config.metadata);
    }
    catch (error) { }
    return result;
}
export function stdioChunkToParams(chunk) {
    if (chunk instanceof Uint8Array)
        return { buffer: Buffer.from(chunk).toString('base64') };
    if (typeof chunk !== 'string')
        return { text: util.inspect(chunk) };
    return { text: chunk };
}
export function toTestInfoErrorPayload(error) {
    const result = {};
    if (error.message !== undefined)
        result.message = error.message;
    if (error.stack !== undefined)
        result.stack = error.stack;
    if (error.value !== undefined)
        result.value = error.value;
    if (error.cause !== undefined)
        result.cause = toTestInfoErrorPayload(error.cause);
    return result;
}
//# sourceMappingURL=ipc.js.map