aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKai WU <kaiwu2004@gmail.com>2024-07-19 14:21:27 +0800
committerKai WU <kaiwu2004@gmail.com>2024-07-19 14:21:27 +0800
commit12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7 (patch)
tree684fab33bfbf9df087b0550800995827a3844ff1 /src
parentd409d8893b099d484f3efbd8449a98018a28a13c (diff)
downloadwechat_dev_tools-12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7.tar.gz
wechat_dev_tools-12e0a14fc106afe64d6ef0a22c025c0b4f9fb1d7.zip
use esbuild less
Diffstat (limited to 'src')
-rw-r--r--src/build.gleam26
-rw-r--r--src/build_ffi.mjs40
2 files changed, 58 insertions, 8 deletions
diff --git a/src/build.gleam b/src/build.gleam
index 0aba25d..a35e8aa 100644
--- a/src/build.gleam
+++ b/src/build.gleam
@@ -1,5 +1,31 @@
+// import gleam/string
+import gleam/javascript/promise.{type Promise}
// import bundle
+// const entry = "./build/dev/javascript/wechat_dev_tools/bundle.mjs"
+// const app_content = "import { app } from './bundle.mjs'; app()"
+// const dist = "./dist/"
+// const src = "./src/"
+//
+// fn page_content(p: String) -> String {
+// "improt { pages, page } from './bundle.mjs'; page(pages(), \"" <> p <> "\")"
+// }
+
+@external(javascript, "./build_ffi.mjs", "bundle_build")
+pub fn bundle_build(entry f: String, outfile o: String) -> Promise(Result(Nil, String))
+
+@external(javascript, "./build_ffi.mjs", "js_build")
+pub fn js_build(content c: String, outfile o: String) -> Promise(Result(Nil, String))
+
+@external(javascript, "./build_ffi.mjs", "json_build")
+pub fn json_build(json f: String, outfile o: String) -> Promise(Result(Nil, String))
+
+@external(javascript, "./build_ffi.mjs", "wxml_build")
+pub fn wxml_build(wxml f: String, outfile o: String) -> Promise(Result(Nil, String))
+
+@external(javascript, "./build_ffi.mjs", "less_build")
+pub fn less_build(less f: String, outfile o: String) -> Promise(Result(Nil, String))
+
pub fn main() {
Nil
}
diff --git a/src/build_ffi.mjs b/src/build_ffi.mjs
index d9d2671..d60f1dd 100644
--- a/src/build_ffi.mjs
+++ b/src/build_ffi.mjs
@@ -1,13 +1,13 @@
-import {build} from 'esbuild'
+import { build } from 'esbuild'
+import { lessLoader } from 'esbuild-plugin-less';
-export async function bundle_build(es, out, min) {
+export async function bundle_build(entry, out) {
await build({
- entryPoints: es,
+ entryPoints: [entry],
bundle: true,
- minify: min,
+ minify: true,
format: 'esm',
- outdir: out,
- allowOverwrite: true,
+ outfile: out,
})
}
@@ -16,11 +16,35 @@ export async function js_build(js, out) {
stdin: {
contents: js,
loader: 'js',
- }
+ },
bundle: false,
minify: false,
format: 'esm',
outfile: out,
- allowOverwrite: true,
+ })
+}
+
+export async function wxml_build(wxml, out) {
+ await build({
+ entryPoints: [wxml],
+ loader: 'txt',
+ outfile: out,
+ })
+}
+
+export async function json_build(json, out) {
+ await build({
+ entryPoints: [json],
+ loader: 'json',
+ outfile: out,
+ })
+}
+
+export async function less_build(css, out) {
+ await build({
+ entryPoints: [css],
+ plugins: [lessLoader()],
+ loader: 'css',
+ outfile: out,
})
}