Prepping editor.
This commit is contained in:
@ -1,13 +1,13 @@
|
|||||||
<prefab name="EthPrefab" extend="prefabs/EthPrefabBase" type="">
|
<prefab name="EthPrefab" extend="prefabs/EthPrefabBase" type="">
|
||||||
<item>
|
|
||||||
<MeshRenderer />
|
|
||||||
<QuadMeshHost xy0="-0.78236397748, 1" xy1="0.78236397748, -1" />
|
|
||||||
<SimpleTexturedMaterial ref="faceMaterial" />
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<MeshRenderer />
|
<MeshRenderer />
|
||||||
<QuadMeshHost xy0="-0.78236397748, 1" xy1="0.78236397748, -1" />
|
<QuadMeshHost xy0="-0.78236397748, 1" xy1="0.78236397748, -1" />
|
||||||
<SimpleTexturedMaterial ref="bodyMaterial" />
|
<SimpleTexturedMaterial ref="bodyMaterial" />
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<MeshRenderer />
|
||||||
|
<QuadMeshHost xy0="-0.78236397748, 1" xy1="0.78236397748, -1" />
|
||||||
|
<SimpleTexturedMaterial ref="faceMaterial" />
|
||||||
|
</item>
|
||||||
</prefab>
|
</prefab>
|
@ -4,4 +4,4 @@
|
|||||||
# https://opensource.org/licenses/MIT
|
# https://opensource.org/licenses/MIT
|
||||||
|
|
||||||
tool_scene(${CMAKE_CURRENT_LIST_DIR}/SceneBase.xml)
|
tool_scene(${CMAKE_CURRENT_LIST_DIR}/SceneBase.xml)
|
||||||
# tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/Scene1Prologue0.xml)
|
tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/Scene1Prologue0.xml)
|
@ -1,17 +1,19 @@
|
|||||||
<vnscene name="Scene1Prologue" extend="scenes/SceneBase">
|
<vnscene name="Scene1Prologue" extend="scenes/SceneBase">
|
||||||
|
|
||||||
<asset type="texture" name="texture_eth_face_day_anger" ref="faceDayAnger" />
|
<asset type="texture" name="texture_eth_face_day_anger" ref="faceDayAnger" />
|
||||||
|
<asset type="texture" name="texture_eth_face_day_confused" ref="faceDayConfused" />
|
||||||
<asset type="texture" name="texture_eth_pose_day_back" ref="poseDayBack" />
|
<asset type="texture" name="texture_eth_pose_day_back" ref="poseDayBack" />
|
||||||
|
|
||||||
<events>
|
<events>
|
||||||
<set property="eth->faceMaterial->texture" to="&faceDayAnger->texture" type="Texture*" />
|
<set property="eth->faceMaterial->texture" to="&faceDayConfused->texture" type="Texture*" />
|
||||||
<set property="eth->faceMaterial->texture" to="&faceDayAnger->texture" type="Texture*" />
|
<set property="eth->bodyMaterial->texture" to="&poseDayBack->texture" type="Texture*" />
|
||||||
<set property="eth->faceMaterial->texture" to="&faceDayAnger->texture" type="Texture*" />
|
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<string lang="en"><font style="italics">There is a bucket.</font></string>
|
<string lang="en"><font style="italics">There is a bucket.</font></string>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
|
<set property="eth->faceMaterial->texture" to="&faceDayAnger->texture" type="Texture*" />
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<string lang="en">It sways above your head like the mouth of a god. You are on Angelwood's best stage, and they are cheering for you, calling you their Queen, their Prom Queen.</string>
|
<string lang="en">It sways above your head like the mouth of a god. You are on Angelwood's best stage, and they are cheering for you, calling you their Queen, their Prom Queen.</string>
|
||||||
</text>
|
</text>
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
<Camera ref="backCamera" />
|
<Camera ref="backCamera" />
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item position="0, 0, -10">
|
<!-- <item position="0, 0, -10">
|
||||||
<MeshRenderer />
|
<MeshRenderer />
|
||||||
<QuadMeshHost xy0="-500, -500" xy1="500, 500" />
|
<QuadMeshHost xy0="-500, -500" xy1="500, 500" />
|
||||||
<SimpleTexturedMaterial color="COLOR_BLACK" />
|
<SimpleTexturedMaterial color="COLOR_BLACK" />
|
||||||
</item>
|
</item> -->
|
||||||
|
|
||||||
<item ref="eth" prefab="prefabs/EthPrefab" />
|
<item ref="eth" prefab="prefabs/EthPrefab" />
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# This software is released under the MIT License.
|
# This software is released under the MIT License.
|
||||||
# https://opensource.org/licenses/MIT
|
# https://opensource.org/licenses/MIT
|
||||||
|
|
||||||
set(LIMINIAL_CHARACTER_SCALE 1.00)
|
set(LIMINIAL_CHARACTER_SCALE 0.20)
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/eth/CMakeLists.txt")
|
include("${CMAKE_CURRENT_LIST_DIR}/eth/CMakeLists.txt")
|
||||||
|
|
||||||
|
11
editor/electron/api/handlers.ts
Normal file
11
editor/electron/api/handlers.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import vnscene from './vnscene';
|
||||||
|
|
||||||
|
export const API_HANDLERS:{
|
||||||
|
[key:string]:(...args:any)=>any
|
||||||
|
} = {};
|
||||||
|
|
||||||
|
const addHandlers = (handlers:{[key:string]:(...args:any)=>any}) => {
|
||||||
|
Object.keys(handlers).forEach(key => API_HANDLERS[key] = handlers[key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
addHandlers(vnscene);
|
6
editor/electron/api/vnscene.ts
Normal file
6
editor/electron/api/vnscene.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export default {
|
||||||
|
"vnscene:test": (bruh1:string, bruh2:string) => {
|
||||||
|
console.log("vnscene:test", bruh1, bruh2);
|
||||||
|
return 'test?';
|
||||||
|
}
|
||||||
|
};
|
64
editor/electron/main.ts
Normal file
64
editor/electron/main.ts
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import { app, BrowserWindow, ipcMain } from 'electron';
|
||||||
|
import * as path from 'path';
|
||||||
|
import installExtension, { REACT_DEVELOPER_TOOLS } from "electron-devtools-installer";
|
||||||
|
import { API_HANDLERS } from './api/handlers';
|
||||||
|
|
||||||
|
function createWindow() {
|
||||||
|
const win = new BrowserWindow({
|
||||||
|
width: 800,
|
||||||
|
height: 600,
|
||||||
|
webPreferences: {
|
||||||
|
// contextIsolation: false,
|
||||||
|
preload: path.join(__dirname, 'preload.js')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (app.isPackaged) {
|
||||||
|
// 'build/index.html'
|
||||||
|
win.loadURL(`file://${__dirname}/../index.html`);
|
||||||
|
} else {
|
||||||
|
win.loadURL('http://localhost:3000/index.html');
|
||||||
|
|
||||||
|
win.webContents.openDevTools();
|
||||||
|
|
||||||
|
// Hot Reloading on 'node_modules/.bin/electronPath'
|
||||||
|
require('electron-reload')(__dirname, {
|
||||||
|
electron: path.join(__dirname,
|
||||||
|
'..',
|
||||||
|
'..',
|
||||||
|
'node_modules',
|
||||||
|
'.bin',
|
||||||
|
'electron' + (process.platform === "win32" ? ".cmd" : "")),
|
||||||
|
forceHardReset: true,
|
||||||
|
hardResetMethod: 'exit'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
app.whenReady().then(() => {
|
||||||
|
// DevTools
|
||||||
|
installExtension(REACT_DEVELOPER_TOOLS)
|
||||||
|
.then((name) => console.log(`Added Extension: ${name}`))
|
||||||
|
.catch((err) => console.log('An error occurred: ', err));
|
||||||
|
|
||||||
|
createWindow();
|
||||||
|
|
||||||
|
app.on('activate', () => {
|
||||||
|
if (BrowserWindow.getAllWindows().length === 0) {
|
||||||
|
createWindow();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
app.on('window-all-closed', () => {
|
||||||
|
if (process.platform !== 'darwin') {
|
||||||
|
app.quit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add API Handlers
|
||||||
|
Object.entries(API_HANDLERS).forEach(entry => {
|
||||||
|
ipcMain.handle(entry[0], (event:any, ...args:any) => {
|
||||||
|
return entry[1](...args);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
13
editor/electron/preload.ts
Normal file
13
editor/electron/preload.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { contextBridge, ipcRenderer } from 'electron';
|
||||||
|
|
||||||
|
const API_HANDLERS = [
|
||||||
|
"vnscene:test"
|
||||||
|
];
|
||||||
|
|
||||||
|
contextBridge.exposeInMainWorld(
|
||||||
|
'dawnapi',
|
||||||
|
API_HANDLERS.reduce((acc, key) => {
|
||||||
|
acc[key] = (...args:any) => ipcRenderer.invoke(key, ...args);
|
||||||
|
return acc;
|
||||||
|
}, {} as {[key:string]:()=>any})
|
||||||
|
);
|
14
editor/electron/tsconfig.json
Normal file
14
editor/electron/tsconfig.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"module": "commonjs",
|
||||||
|
"sourceMap": true,
|
||||||
|
"strict": true,
|
||||||
|
"outDir": "../build",
|
||||||
|
"rootDir": "../",
|
||||||
|
"noEmitOnError": true,
|
||||||
|
"typeRoots": [
|
||||||
|
"node_modules/@types"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
63
editor/package.json
Normal file
63
editor/package.json
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"main": "build/electron/main.js",
|
||||||
|
"dependencies": {
|
||||||
|
"@testing-library/jest-dom": "^5.16.5",
|
||||||
|
"@testing-library/react": "^13.4.0",
|
||||||
|
"@testing-library/user-event": "^14.4.3",
|
||||||
|
"@types/electron-devtools-installer": "^2.2.2",
|
||||||
|
"@types/jest": "^29.4.0",
|
||||||
|
"@types/node": "^18.13.0",
|
||||||
|
"@types/react": "^18.0.28",
|
||||||
|
"@types/react-dom": "^18.0.11",
|
||||||
|
"electron-devtools-installer": "^3.2.0",
|
||||||
|
"electron-reload": "^1.5.0",
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0",
|
||||||
|
"react-scripts": "5.0.1",
|
||||||
|
"typescript": "^4.9.5",
|
||||||
|
"web-vitals": "^3.1.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start",
|
||||||
|
"build": "react-scripts build",
|
||||||
|
"test": "react-scripts test",
|
||||||
|
"postinstall": "electron-builder install-app-deps",
|
||||||
|
"electron:dev": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://127.0.0.1:3000 && tsc -p electron -w\" \"wait-on http://127.0.0.1:3000 && tsc -p electron && electron .\"",
|
||||||
|
"electron:build": "yarn build && tsc -p electron && electron-builder",
|
||||||
|
"eject": "react-scripts eject"
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"extends": null,
|
||||||
|
"files": [
|
||||||
|
"build/**/*"
|
||||||
|
],
|
||||||
|
"directories": {
|
||||||
|
"buildResources": "assets"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"extends": [
|
||||||
|
"react-app",
|
||||||
|
"react-app/jest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 1 chrome version",
|
||||||
|
"last 1 firefox version",
|
||||||
|
"last 1 safari version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"concurrently": "^7.6.0",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
|
"electron": "^23.1.0",
|
||||||
|
"electron-builder": "^23.6.0",
|
||||||
|
"wait-on": "^7.0.1"
|
||||||
|
}
|
||||||
|
}
|
BIN
editor/public/favicon.ico
Normal file
BIN
editor/public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
43
editor/public/index.html
Normal file
43
editor/public/index.html
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="theme-color" content="#000000" />
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Web site created using create-react-app"
|
||||||
|
/>
|
||||||
|
<link rel="apple-touch-icon" href="logo192.png" />
|
||||||
|
<!--
|
||||||
|
manifest.json provides metadata used when your web app is installed on a
|
||||||
|
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||||
|
-->
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||||
|
<!--
|
||||||
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
|
Only files inside the `public` folder can be referenced from the HTML.
|
||||||
|
|
||||||
|
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||||
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
|
-->
|
||||||
|
<title>React App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
<div id="root"></div>
|
||||||
|
<!--
|
||||||
|
This HTML file is a template.
|
||||||
|
If you open it directly in the browser, you will see an empty page.
|
||||||
|
|
||||||
|
You can add webfonts, meta tags, or analytics to this file.
|
||||||
|
The build step will place the bundled scripts into the <body> tag.
|
||||||
|
|
||||||
|
To begin the development, run `npm start` or `yarn start`.
|
||||||
|
To create a production bundle, use `npm run build` or `yarn build`.
|
||||||
|
-->
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
editor/public/logo192.png
Normal file
BIN
editor/public/logo192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
BIN
editor/public/logo512.png
Normal file
BIN
editor/public/logo512.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
25
editor/public/manifest.json
Normal file
25
editor/public/manifest.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"short_name": "React App",
|
||||||
|
"name": "Create React App Sample",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "favicon.ico",
|
||||||
|
"sizes": "64x64 32x32 24x24 16x16",
|
||||||
|
"type": "image/x-icon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "logo192.png",
|
||||||
|
"type": "image/png",
|
||||||
|
"sizes": "192x192"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "logo512.png",
|
||||||
|
"type": "image/png",
|
||||||
|
"sizes": "512x512"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": ".",
|
||||||
|
"display": "standalone",
|
||||||
|
"theme_color": "#000000",
|
||||||
|
"background_color": "#ffffff"
|
||||||
|
}
|
2
editor/public/robots.txt
Normal file
2
editor/public/robots.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# https://www.robotstxt.org/robotstxt.html
|
||||||
|
User-agent: *
|
19
editor/src/App.tsx
Normal file
19
editor/src/App.tsx
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { VNSceneEditor } from "./views/VNSceneEditor";
|
||||||
|
|
||||||
|
export const App = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<header>
|
||||||
|
Header
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<VNSceneEditor />
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Footer
|
||||||
|
</footer>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
4
editor/src/api/base.ts
Normal file
4
editor/src/api/base.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
//@ts-ignore
|
||||||
|
const wdawnapi = (globalThis['dawnapi'] as any);
|
||||||
|
|
||||||
|
export const API_BASE = wdawnapi;
|
1
editor/src/api/index.ts
Normal file
1
editor/src/api/index.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from './vnscene';
|
3
editor/src/api/vnscene.ts
Normal file
3
editor/src/api/vnscene.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { API_BASE } from "./base";
|
||||||
|
|
||||||
|
export const doVnTest = API_BASE['vnscene:test'] as (bruh1:string, bruh2:string) => Promise<string>;
|
4
editor/src/index.css
Normal file
4
editor/src/index.css
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
html,body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
17
editor/src/index.tsx
Normal file
17
editor/src/index.tsx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import ReactDOM from 'react-dom/client';
|
||||||
|
import './index.css';
|
||||||
|
import { App } from './App';
|
||||||
|
import reportWebVitals from './reportWebVitals';
|
||||||
|
|
||||||
|
const root = ReactDOM.createRoot(document.getElementById('root')!);
|
||||||
|
root.render(
|
||||||
|
<React.StrictMode>
|
||||||
|
<App />
|
||||||
|
</React.StrictMode>
|
||||||
|
);
|
||||||
|
|
||||||
|
// If you want to start measuring performance in your app, pass a function
|
||||||
|
// to log results (for example: reportWebVitals(console.log))
|
||||||
|
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
||||||
|
reportWebVitals();
|
1
editor/src/react-app-env.d.ts
vendored
Normal file
1
editor/src/react-app-env.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/// <reference types="react-scripts" />
|
15
editor/src/reportWebVitals.ts
Normal file
15
editor/src/reportWebVitals.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { ReportHandler } from 'web-vitals';
|
||||||
|
|
||||||
|
const reportWebVitals = (onPerfEntry?: ReportHandler) => {
|
||||||
|
if (onPerfEntry && onPerfEntry instanceof Function) {
|
||||||
|
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
||||||
|
getCLS(onPerfEntry);
|
||||||
|
getFID(onPerfEntry);
|
||||||
|
getFCP(onPerfEntry);
|
||||||
|
getLCP(onPerfEntry);
|
||||||
|
getTTFB(onPerfEntry);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default reportWebVitals;
|
5
editor/src/setupTests.ts
Normal file
5
editor/src/setupTests.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||||
|
// allows you to do things like:
|
||||||
|
// expect(element).toHaveTextContent(/react/i)
|
||||||
|
// learn more: https://github.com/testing-library/jest-dom
|
||||||
|
import '@testing-library/jest-dom';
|
16
editor/src/views/VNSceneEditor.tsx
Normal file
16
editor/src/views/VNSceneEditor.tsx
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import React, { useState } from 'react';
|
||||||
|
import { doVnTest } from '../api';
|
||||||
|
|
||||||
|
export const VNSceneEditor = () => {
|
||||||
|
const [ test, setTest ] = useState('');
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
VN Scene Editor
|
||||||
|
|
||||||
|
<button onClick={() => {
|
||||||
|
doVnTest('bruh1', 'bruh2').then(e => console.log(e)).catch(e => console.error(e));
|
||||||
|
}}>Clicky</button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
26
editor/tsconfig.json
Normal file
26
editor/tsconfig.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"lib": [
|
||||||
|
"dom",
|
||||||
|
"dom.iterable",
|
||||||
|
"esnext"
|
||||||
|
],
|
||||||
|
"allowJs": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"strict": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"jsx": "react-jsx"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src"
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user