Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F8929714
backend-ts-builder.ts
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
backend-ts-builder.ts
View Options
import
glob
from
"tiny-glob"
;
import
{
build
}
from
"esbuild"
;
import
{
promises
as
fs
}
from
"fs"
;
import
{
relative
}
from
"node:path"
;
import
{
embeddable_file_extensions
}
from
"../embeddable-file-extensions.js"
;
import
{
generateCollections
}
from
"../generate-collections.js"
;
import
{
generateComponents
}
from
"../generate-components.js"
;
import
{
generateRoutes
}
from
"../generate-routes.js"
;
import
{
Builder
}
from
"./builder.js"
;
import
{
rewrite_asset_imports_plugin
}
from
"../esbuild-plugins/rewrite-asset-imports.js"
;
import
{
load_assets_plugin
}
from
"../esbuild-plugins/load-assets.js"
;
export
class
BackendTSBuilder
extends
Builder
{
getName
()
:
string
{
return
"backend-ts"
;
}
ownsFile
(
file_path
:
string
)
{
return
(
(
file_path
.
endsWith
(
".ts"
)
||
file_path
.
endsWith
(
".tsx"
))
&&
!
file_path
.
endsWith
(
"src/back/collections/collections.ts"
)
&&
!
file_path
.
endsWith
(
"src/back/routes/routes.ts"
)
&&
!
file_path
.
endsWith
(
"src/back/routes/urls.ts"
)
&&
!
file_path
.
endsWith
(
"stimulus.ts"
)
&&
!
file_path
.
startsWith
(
"src/front"
)
);
}
// eslint-disable-next-line @typescript-eslint/no-empty-function
async
dispose
()
:
Promise
<
void
>
{}
async
_build
()
:
Promise
<
void
>
{
await
Promise
.
all
([
generateCollections
(),
generateRoutes
(),
generateComponents
(),
]);
const
entryPoints
=
(
await
glob
(
`./src/back/**/*.{ts,tsx,
${
embeddable_file_extensions
.
join
(
","
)
}
}`
)
).
filter
((
path
)
=>
!
path
.
includes
(
".#"
));
const
{
metafile
}
=
await
build
({
entryPoints
,
sourcemap
:
true
,
bundle
:
false
,
jsxFactory
:
"TempstreamJSX.createElement"
,
jsxFragment
:
"TempstreamJSX.Fragment"
,
outdir
:
"./dist/back"
,
logLevel
:
"info"
,
platform
:
"node"
,
target
:
"es2022"
,
format
:
"esm"
,
loader
:
Object
.
fromEntries
(
embeddable_file_extensions
.
map
((
ext
)
=>
[
"."
+
ext
,
"js"
])
),
plugins
:
[
rewrite_asset_imports_plugin
(
this
.
project_dir
),
load_assets_plugin
,
],
metafile
:
true
,
});
await
fs
.
writeFile
(
relative
(
this
.
project_dir
,
"dist"
)
+
"/"
+
"back"
+
".meta.json"
,
JSON
.
stringify
(
metafile
)
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Sat, Sep 20, 23:53 (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
930895
Default Alt Text
backend-ts-builder.ts (2 KB)
Attached To
Mode
rSGEN sealgen
Attached
Detach File
Event Timeline
Log In to Comment