Using TypeScript
ThyWeaver supports writing your JS with TypeScript, and is the recommended way using it, you just need a tsconfig.json
in your project root and, assuming you are using the default file structure, an entry point file named index.ts
under src/assets/app/
create-weaver
provide the following tsconfig.json
when scaffolding:
json
{
// exclude compiled output from code lookup
"exclude": ["dist"],
"compilerOptions": {
// Enable latest features
"lib": ["ESNext", "DOM"],
"target": "ESNext",
"module": "ESNext",
"moduleDetection": "force",
"jsx": "react-jsx",
"allowJs": true,
// Bundler mode
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"verbatimModuleSyntax": true,
"noEmit": true,
// Best practices
"strict": true,
"skipLibCheck": true,
"noFallthroughCasesInSwitch": true,
// Some stricter flags (disabled by default)
"noUnusedLocals": false,
"noUnusedParameters": false,
"noPropertyAccessFromIndexSignature": false,
"emitDeclarationOnly": false,
"sourceMap": false,
"types": ["@thy-weaver/core/types"]
}
}
Using Vanilla JavaScript
By default, the bundler will look for an index.ts
, but, if you wish to use vanilla, you can, by telling it to look for .js
file instead
js
import { defineConfig } from "@thy-weaver/core";
const config = defineConfig({
devServer: {
port: 3000,
restricToLocalhost: false,
twineDebug: false,
},
bundler: {
watcherDelay: 1000,
filesystem: {
projectFiles: {
entryPoint: "src/assets/app/index.js",
},
},
},
});
export default config;
You can still use JSDocs
or simple type checking by providing a jsconfig.json
in your project root. create-weaver
comes with one by default