-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.ts
More file actions
74 lines (60 loc) · 2.25 KB
/
index.ts
File metadata and controls
74 lines (60 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { AngularComponentGenerator } from "./converters/generators/AngularComponentGenerator";
import * as pretty from "pretty";
import * as fs from "fs";
import * as path from "path";
import * as parse5 from "parse5";
import { AbstractComponentCreator } from "./converters/AbstractComponentCreator";
import { RenderNode } from "./declarations";
import { resolverRegistry } from "./helpers";
import { angularGenerator } from "./converters/generators/AngularBootstrap";
const demoFiles = ["comment.js", "post.js", "profile.js"];
if (process.env.DEMO) {
for (let file of demoFiles) {
const code = fs.readFileSync(
path.resolve(__dirname, "../../pet/instagram/src/components/" + file)
);
const builder = new AbstractComponentCreator(code.toString());
const { node, name, originalName } = builder.convertToAbstractTree();
const angAST = angularGenerator.generate(node as RenderNode);
const finalAST = {
nodeName: "#document-fragment",
childNodes: [angAST]
};
let json = JSON.stringify(node);
const tsCode = new AngularComponentGenerator().generate(name, originalName);
const html = parse5.serialize(finalAST);
const reducedHtml = html.split('=""').join("");
const template = pretty(reducedHtml);
fs.writeFileSync(
path.resolve(
__dirname,
"../ang-test-app/src/app/components/" + file.replace(".js", ".component.ts")
),
tsCode
);
fs.writeFileSync(
path.resolve(
__dirname,
"../ang-test-app/src/app/components/" + file.replace(".js", ".component.html")
),
template
);
resolverRegistry.clear();
}
} else {
const code = fs.readFileSync(
path.resolve(__dirname, "react-test/ClassComponent.js")
);
const builder = new AbstractComponentCreator(code.toString());
const { node, name, originalName } = builder.convertToAbstractTree();
const angAST = angularGenerator.generate(node as RenderNode);
const finalAST = {
nodeName: "#document-fragment",
childNodes: [angAST]
};
let json = JSON.stringify(node);
console.log(new AngularComponentGenerator().generate(name, originalName));
const html = parse5.serialize(finalAST);
const reducedHtml = html.split('=""').join("");
console.log(pretty(reducedHtml));
}