@azure-tools/typespec-powershell
Version:
An experimental TypeSpec emitter for PowerShell codegen
36 lines • 1.35 kB
JavaScript
import { resolvePath } from "@typespec/compiler";
import { createTestHost, createTestWrapper, expectDiagnosticEmpty, } from "@typespec/compiler/testing";
import { PowershellTsTestLibrary } from "../src/testing/index.js";
export async function createPowershellTsTestHost() {
return createTestHost({
libraries: [PowershellTsTestLibrary],
});
}
export async function createPowershellTsTestRunner() {
const host = await createPowershellTsTestHost();
return createTestWrapper(host, {
compilerOptions: {
noEmit: false,
emit: ["powershell-ts"],
},
});
}
export async function emitWithDiagnostics(code) {
const runner = await createPowershellTsTestRunner();
await runner.compileAndDiagnose(code, {
outputDir: "tsp-output",
});
const emitterOutputDir = "./tsp-output/powershell-ts";
const files = await runner.program.host.readDir(emitterOutputDir);
const result = {};
for (const file of files) {
result[file] = (await runner.program.host.readFile(resolvePath(emitterOutputDir, file))).text;
}
return [result, runner.program.diagnostics];
}
export async function emit(code) {
const [result, diagnostics] = await emitWithDiagnostics(code);
expectDiagnosticEmpty(diagnostics);
return result;
}
//# sourceMappingURL=test-host.js.map