-
-
Notifications
You must be signed in to change notification settings - Fork 189
Expand file tree
/
Copy pathcreate-src.js
More file actions
125 lines (117 loc) · 4.18 KB
/
create-src.js
File metadata and controls
125 lines (117 loc) · 4.18 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import * as fs from 'node:fs';
import * as path from 'node:path';
import prettier from 'prettier';
const files = [
'materials/nodes/manager/NodeMaterialObserver',
'materials/nodes/NodeMaterial',
'nodes/accessors/BufferAttributeNode',
'nodes/accessors/TextureNode',
'nodes/code/CodeNode',
'nodes/code/FunctionNode',
'nodes/core/constants',
'nodes/core/ContextNode',
'nodes/core/InputNode',
'nodes/core/Node',
'nodes/core/NodeAttribute',
'nodes/core/NodeBuilder',
'nodes/core/NodeCache',
'nodes/core/NodeCode',
'nodes/core/NodeFrame',
'nodes/core/NodeFunction',
'nodes/core/NodeParser',
'nodes/core/NodeUniform',
'nodes/core/NodeUtils',
'nodes/core/NodeVar',
'nodes/core/NodeVarying',
'nodes/core/StackNode',
'nodes/core/StructType',
'nodes/core/StructTypeNode',
'nodes/core/UniformGroupNode',
'nodes/core/UniformNode',
'nodes/gpgpu/ComputeNode',
'nodes/lighting/EnvironmentNode',
'nodes/lighting/LightingContextNode',
'nodes/lighting/LightsNode',
'nodes/tsl/TSLCore',
'nodes/Nodes',
'renderers/common/extras/PMREMGenerator',
'renderers/common/nodes/NodeBuilderState',
'renderers/common/nodes/NodeLibrary',
'renderers/common/nodes/NodeManager',
'renderers/common/nodes/NodeUniform',
'renderers/common/nodes/NodeUniformsGroup',
'renderers/common/Animation',
'renderers/common/Attributes',
'renderers/common/Backend',
'renderers/common/Background',
'renderers/common/BindGroup',
'renderers/common/Binding',
'renderers/common/Bindings',
'renderers/common/Buffer',
'renderers/common/BufferUtils',
'renderers/common/BundleGroup',
'renderers/common/CanvasTarget',
'renderers/common/ChainMap',
'renderers/common/ClippingContext',
'renderers/common/Color4',
'renderers/common/ComputePipeline',
'renderers/common/Constants',
'renderers/common/CubeRenderTarget',
'renderers/common/DataMap',
'renderers/common/Geometries',
'renderers/common/Info',
'renderers/common/InspectorBase',
'renderers/common/Pipeline',
'renderers/common/Pipelines',
'renderers/common/ProgrammableStage',
'renderers/common/RenderBundle',
'renderers/common/RenderBundles',
'renderers/common/RenderContext',
'renderers/common/RenderContexts',
'renderers/common/RenderList',
'renderers/common/RenderLists',
'renderers/common/Renderer',
'renderers/common/RenderObject',
'renderers/common/RenderObjects',
'renderers/common/RenderPipeline',
'renderers/common/SampledTexture',
'renderers/common/Sampler',
'renderers/common/StorageBuffer',
'renderers/common/Textures',
'renderers/common/TimestampQueryPool',
'renderers/common/Uniform',
'renderers/common/UniformBuffer',
'renderers/common/UniformsGroup',
'renderers/common/XRManager',
'renderers/common/XRRenderTarget',
'renderers/webgl-fallback/nodes/GLSLNodeBuilder',
'renderers/webgl-fallback/WebGLBackend',
'renderers/webgpu/nodes/BasicNodeLibrary',
'renderers/webgpu/nodes/StandardNodeLibrary',
'renderers/webgpu/nodes/WGSLNodeBuilder',
'renderers/webgpu/nodes/WGSLNodeFunction',
'renderers/webgpu/nodes/WGSLNodeParser',
'renderers/webgpu/WebGPUBackend',
'renderers/webgpu/WebGPURenderer',
];
const javascriptInDir = '../three.js/src';
const typesInDir = '../types/three/src';
const outDir = './src';
fs.rmSync(outDir, { recursive: true, force: true });
fs.mkdirSync(outDir);
fs.cpSync(typesInDir, outDir, { recursive: true });
for (const file of files) {
console.log(file);
const fileContents = fs.readFileSync(path.join(javascriptInDir, `${file}.js`), {
encoding: 'utf-8',
});
const options = await prettier.resolveConfig(file);
const formattedFile = await prettier.format(fileContents, { ...options, parser: 'babel' });
const typescriptOutPath = path.join(outDir, `${file}.ts`);
fs.mkdirSync(path.dirname(typescriptOutPath), { recursive: true });
fs.writeFileSync(typescriptOutPath, formattedFile);
const declarationOutPath = path.join(outDir, `${file}.d.ts`);
if (fs.existsSync(declarationOutPath)) {
fs.unlinkSync(declarationOutPath);
}
}