Skip to content

Commit 7d50ed5

Browse files
authored
feat(build): add typescript support (#225)
1 parent e0f0f47 commit 7d50ed5

File tree

3 files changed

+260
-7
lines changed

3 files changed

+260
-7
lines changed

packages/build/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dependencies": {
77
"@babel/core": "^7.17.5",
88
"@babel/preset-env": "^7.16.11",
9+
"@babel/preset-typescript": "^7.17.12",
910
"@babel/runtime": "^7.17.2",
1011
"@marko/babel-utils": "^5.19.1",
1112
"@marko/compiler": "^5.19.1",

packages/build/src/index.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,13 @@ const configBuilder = (exports.configBuilder = ({
9191
compact: false,
9292
babelrc: false,
9393
configFile: false,
94-
browserslistConfigFile: false
94+
browserslistConfigFile: false,
95+
overrides: [
96+
{
97+
test: /\.[cm]?ts$/,
98+
presets: [require.resolve("@babel/preset-typescript")]
99+
}
100+
]
95101
});
96102

97103
const babelLoader = targets => ({
@@ -156,7 +162,7 @@ const configBuilder = (exports.configBuilder = ({
156162

157163
return [
158164
{
159-
test: /\.[cm]?js$/,
165+
test: /\.[cm]?[jt]s$/,
160166
exclude: !production || isServer ? /node_modules/ : undefined,
161167
use: [babelLoader(targets)]
162168
},
@@ -212,7 +218,7 @@ const configBuilder = (exports.configBuilder = ({
212218
{
213219
test: file =>
214220
file &&
215-
!/\.([cm]?js|json|css|less|s[ac]ss|styl|wasm|marko)$/.test(file),
221+
!/\.([cm]?[jt]s|json|css|less|s[ac]ss|styl|wasm|marko)$/.test(file),
216222
use: [
217223
{
218224
loader: require.resolve("file-loader"),
@@ -256,7 +262,7 @@ const configBuilder = (exports.configBuilder = ({
256262
context: CONTEXT,
257263
resolve: {
258264
alias: sharedAliases(options),
259-
extensions: [".wasm", ".mjs", ".js", ".json", ".marko"]
265+
extensions: [".wasm", ".mjs", ".js", ".json", ".ts", ".mts", ".marko"]
260266
},
261267
cache: { type: "filesystem" },
262268
module: { rules: sharedRules(options) }
@@ -421,9 +427,9 @@ function loadBrowsersLists(entry, production) {
421427
const customBrowsersList = browserslist.findConfig(entry);
422428

423429
if (customBrowsersList) {
424-
const customBrowserEnvs = Object.entries(
425-
customBrowsersList
426-
).map(([env, targets]) => ({ env, targets }));
430+
const customBrowserEnvs = Object.entries(customBrowsersList).map(
431+
([env, targets]) => ({ env, targets })
432+
);
427433
const activeBrowserEnvs = customBrowserEnvs.filter(
428434
({ env, targets }) =>
429435
targets.length && (production ? env !== "dev" : env === "dev")

0 commit comments

Comments
 (0)