diff --git a/src/components/CodeOutput/CodeOutput.css b/src/components/CodeOutput/CodeOutput.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/CodeOutput/CodeOutput.tsx b/src/components/CodeOutput/CodeOutput.tsx
new file mode 100644
index 0000000..19fa43b
--- /dev/null
+++ b/src/components/CodeOutput/CodeOutput.tsx
@@ -0,0 +1,40 @@
+import React from "react";
+import { connect } from "react-redux";
+import * as ts from "typescript";
+
+import { AppState } from "../../store";
+
+interface CodeOutputProps {
+ sourceFile?: ts.SourceFile;
+}
+
+function CodeOutput(props: CodeOutputProps) {
+ const { sourceFile } = props;
+ if (sourceFile === undefined) {
+ return null;
+ }
+
+ const printer = ts.createPrinter();
+ const codeString = printer.printFile(sourceFile);
+
+ return
{codeString}
;
+}
+
+type CodeOutputStateProps = CodeOutputProps;
+
+const mapStateToPropsForInitial = (state: AppState): CodeOutputStateProps => ({
+ sourceFile: state.sourceFiles.inititalSourceFile
+});
+const mapStateToPropsForCurrent = (state: AppState): CodeOutputStateProps => ({
+ sourceFile: state.sourceFiles.currentSourceFile
+});
+
+const CodeOutputForInitial = connect(mapStateToPropsForInitial)(CodeOutput);
+const CodeOutputForCurrent = connect(mapStateToPropsForCurrent)(CodeOutput);
+
+export {
+ CodeOutputForInitial,
+ CodeOutputForCurrent,
+ CodeOutput as CodeOutputUnconnected,
+ CodeOutputProps
+};
diff --git a/src/components/CodeOutput/index.tsx b/src/components/CodeOutput/index.tsx
new file mode 100644
index 0000000..ed0ae32
--- /dev/null
+++ b/src/components/CodeOutput/index.tsx
@@ -0,0 +1 @@
+export * from "./CodeOutput";