mirror of
https://github.com/aljazceru/pubky-core.git
synced 2026-01-05 07:14:28 +01:00
examples: add preinstall script
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"type": "module",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"preinstall": "cargo run --bin bundle_pubky_npm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@synonymdev/pubky":"file:../../pubky/pkg"
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"build": "vite build",
|
||||
"start": "vite serve",
|
||||
"preview": "vite preview",
|
||||
"wasm": "wasm-pack build ../../../pubky/ --target web"
|
||||
"preinstall": "cargo run --bin bundle_pubky_npm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@synonymdev/pubky": "file:../../../pubky/pkg",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"scripts": {
|
||||
"start": "vite serve"
|
||||
"start": "vite serve",
|
||||
"preinstall": "cargo run --bin bundle_pubky_npm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@synonymdev/pubky": "file:../../../pubky/pkg",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use std::env;
|
||||
use std::io;
|
||||
use std::process::{Command, ExitStatus};
|
||||
|
||||
@@ -11,9 +12,12 @@ fn main() {
|
||||
}
|
||||
|
||||
fn build_wasm(target: &str) -> io::Result<ExitStatus> {
|
||||
let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
|
||||
|
||||
let output = Command::new("wasm-pack")
|
||||
.args([
|
||||
"build",
|
||||
&manifest_dir,
|
||||
"--release",
|
||||
"--target",
|
||||
target,
|
||||
@@ -38,8 +42,11 @@ fn build_wasm(target: &str) -> io::Result<ExitStatus> {
|
||||
}
|
||||
|
||||
fn patch() -> io::Result<ExitStatus> {
|
||||
let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
|
||||
|
||||
println!("{manifest_dir}/src/bin/patch.mjs");
|
||||
let output = Command::new("node")
|
||||
.args(["./src/bin/patch.mjs"])
|
||||
.args([format!("{manifest_dir}/src/bin/patch.mjs")])
|
||||
.output()?;
|
||||
|
||||
println!(
|
||||
@@ -49,7 +56,7 @@ fn patch() -> io::Result<ExitStatus> {
|
||||
|
||||
if !output.status.success() {
|
||||
eprintln!(
|
||||
"wasm-pack failed: {}",
|
||||
"patch.mjs failed: {}",
|
||||
String::from_utf8_lossy(&output.stderr)
|
||||
);
|
||||
}
|
||||
@@ -3,12 +3,17 @@
|
||||
// Based on hacks from [this issue](https://github.com/rustwasm/wasm-pack/issues/1334)
|
||||
|
||||
import { readFile, writeFile } from "node:fs/promises";
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import path, { dirname } from 'node:path';
|
||||
|
||||
const cargoTomlContent = await readFile("./Cargo.toml", "utf8");
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
const cargoTomlContent = await readFile(path.join(__dirname, "../../Cargo.toml"), "utf8");
|
||||
const cargoPackageName = /\[package\]\nname = "(.*?)"/.exec(cargoTomlContent)[1]
|
||||
const name = cargoPackageName.replace(/-/g, '_')
|
||||
|
||||
const content = await readFile(`./pkg/nodejs/${name}.js`, "utf8");
|
||||
const content = await readFile(path.join(__dirname, `../../pkg/nodejs/${name}.js`), "utf8");
|
||||
|
||||
const patched = content
|
||||
// use global TextDecoder TextEncoder
|
||||
@@ -46,9 +51,9 @@ var __toBinary = /* @__PURE__ */ (() => {
|
||||
};
|
||||
})();
|
||||
|
||||
const bytes = __toBinary(${JSON.stringify(await readFile(`./pkg/nodejs/${name}_bg.wasm`, "base64"))
|
||||
const bytes = __toBinary(${JSON.stringify(await readFile(path.join(__dirname, `../../pkg/nodejs/${name}_bg.wasm`), "base64"))
|
||||
});
|
||||
`,
|
||||
);
|
||||
|
||||
await writeFile(`./pkg/${name}.mjs`, patched);
|
||||
await writeFile(path.join(__dirname, `../../pkg/${name}.mjs`), patched);
|
||||
|
||||
Reference in New Issue
Block a user