diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/build.gleam | 26 | ||||
-rw-r--r-- | src/build_ffi.mjs | 40 |
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, }) } |