Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ serde_path_to_error = "0.1.16"
simd-json = "0.17.0"
thiserror = "1.0"
tokio = { version = "1.47.1" }
tokio-fs-ext = "0.6.9"
tokio-fs-ext = "0.6.10"
toml = "0.8"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "fmt"] }
Expand Down
1 change: 0 additions & 1 deletion crates/utoo-wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ pub fn init_log_filter(mut filter: String) {
let filter_str = filter.clone();
let fmt_layer = fmt::layer()
.without_time()
.with_target(false)
.with_writer(MakeWebConsoleWriter::new())
.with_filter(EnvFilter::new(filter));

Expand Down
7 changes: 7 additions & 0 deletions examples/utooweb-demo/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,13 @@ module.exports = [
),
to: "loaderWorker.js",
},
{
from: path.resolve(
__dirname,
"../../packages/utoo-web/esm/utoo/index_bg.wasm",
),
to: "index_bg.wasm",
},
],
}),
],
Expand Down
20 changes: 10 additions & 10 deletions packages/utoo-web/src/utoo/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,6 @@ export function workerCreated(worker_id: number): void;
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
readonly registerWorkerScheduler: (a: any, b: any) => void;
readonly workerCreated: (a: number) => void;
readonly initLogFilter: (a: number, b: number) => void;
readonly init_pack: () => void;
readonly __wbg_direntry_free: (a: number, b: number) => void;
readonly __wbg_get_direntry_name: (a: number) => [number, number];
readonly __wbg_get_direntry_type: (a: number) => number;
Expand Down Expand Up @@ -185,6 +181,10 @@ export interface InitOutput {
readonly project_write: (a: number, b: number, c: any) => any;
readonly project_writeString: (a: number, b: number, c: number, d: number) => any;
readonly project_writeSync: (a: number, b: number, c: any) => [number, number];
readonly initLogFilter: (a: number, b: number) => void;
readonly init_pack: () => void;
readonly registerWorkerScheduler: (a: any, b: any) => void;
readonly workerCreated: (a: number) => void;
readonly rust_mi_get_default_heap: () => number;
readonly rust_mi_get_thread_id: () => number;
readonly rust_mi_set_default_heap: (a: number) => void;
Expand All @@ -209,16 +209,16 @@ export interface InitOutput {
readonly wasmtaskmessage_data: (a: number) => any;
readonly __wbg_createsyncaccesshandleoptions_free: (a: number, b: number) => void;
readonly wasm_thread_entry_point: (a: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h09bb7c51b3f33a59: (a: number, b: number, c: any) => void;
readonly wasm_bindgen__closure__destroy__h480d1d539058407b: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__hce460cf0a813c454: (a: number, b: number) => void;
readonly wasm_bindgen__closure__destroy__hc14e8607e23cebd7: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures________invoke__hc572a1bf691b2f02: (a: number, b: number, c: any) => void;
readonly wasm_bindgen__closure__destroy__h79b136ee1664aaaa: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h1fc3e28920f04101: (a: number, b: number) => void;
readonly wasm_bindgen__closure__destroy__h697219d9b2418ea3: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h12ad3f2e11ef8f1f: (a: number, b: number, c: any) => void;
readonly wasm_bindgen__closure__destroy__ha0c175f92395ef9a: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h8bdf724950a20526: (a: number, b: number, c: any) => void;
readonly wasm_bindgen__closure__destroy__h33b24a5c45343d26: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__hce460cf0a813c454: (a: number, b: number) => void;
readonly wasm_bindgen__closure__destroy__hc14e8607e23cebd7: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h1fc3e28920f04101: (a: number, b: number) => void;
readonly wasm_bindgen__closure__destroy__h697219d9b2418ea3: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__h05951ccee93604a9: (a: number, b: number, c: any) => void;
readonly wasm_bindgen__closure__destroy__hc95bb6053e4d238d: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures_____invoke__heb9448f3005917b6: (a: number, b: number, c: any, d: any) => void;
Expand Down
2 changes: 1 addition & 1 deletion packages/utoo-web/src/webpackLoaders/loaderWorkerPool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export const runLoaderWorkerPool = async (
workerData: {
cwd: finalCwd,
projectRoot: projectCwd,
workerId: workerId,
threadId: workerId,
},
loaderAssets: {
importMaps: { ...loadersImportMap },
Expand Down
5 changes: 3 additions & 2 deletions packages/utoo-web/src/webpackLoaders/polyfills/fsPolyfill.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@ import { Buffer } from "buffer";
import path from "path";
import { Stats } from "../../types";
import { promises } from "./fsPromisesPolyfill";
import { workerData } from "./workerThreadsPolyfill";

function resolvePath(p: string): string {
// @ts-ignore
const cwd = self.process?.cwd?.() || self.workerData?.cwd || "/";
const cwd = self.process?.cwd?.() || workerData?.cwd || "/";
return path.resolve(cwd, p);
}

function getFs() {
// @ts-ignore
const fs = self.workerData.fs;
const fs = workerData.fs;
if (!fs) {
throw new Error("FS not initialized");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
import { Buffer } from "buffer";
import path from "path";
import { Stats } from "../../types";
import { workerData } from "./workerThreadsPolyfill";

function resolvePath(p: string): string {
// @ts-ignore
const cwd = self.process?.cwd?.() || self.workerData?.cwd || "/";
const cwd = self.process?.cwd?.() || workerData?.cwd || "/";
return path.resolve(cwd, p);
}

function getFs() {
// @ts-ignore
const fs = self.workerData.fs;
const fs = workerData.fs;
if (!fs) {
throw new Error("FS not initialized");
}
Expand Down
22 changes: 10 additions & 12 deletions packages/utoo-web/src/webpackLoaders/polyfills/nodePolyFills.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import * as fs from "./fsPolyfill";
import * as workerThreads from "./workerThreadsPolyfill";

const buffer = require("buffer");
self.Buffer = buffer.Buffer;
const process = require("process");
const originalCwd = process.cwd;
process.cwd = () => {
// @ts-ignore
return self.workerData?.cwd || originalCwd?.() || "/";
return workerThreads.workerData?.cwd || originalCwd?.() || "/";
};
if (!process.versions) process.versions = {};
if (!process.versions.node) process.versions.node = "24.0.0";
Expand All @@ -15,22 +18,17 @@ const path = require("path");
const originalResolve = path.resolve;
path.resolve = (...args: string[]) => {
// @ts-ignore
const cwd = self.workerData?.cwd || "/";
const cwd = workerThreads.workerData?.cwd || "/";
return originalResolve(cwd, ...args);
};

import * as fs from "./fsPolyfill";
import * as workerThreads from "./workerThreadsPolyfill";

const workerThreadsWithLiveWorkerData = {
const workerThreadsWithWorkerData = {
...workerThreads,
get workerData() {
// @ts-ignore
return self.workerData;
return workerThreads.workerData;
},
get threadId() {
// @ts-ignore
return self.workerData?.workerId || 0;
return workerThreads.workerData?.threadId || 0;
},
};

Expand Down Expand Up @@ -258,6 +256,6 @@ export default {
return require("util");
},

worker_threads: workerThreadsWithLiveWorkerData,
"node:worker_threads": workerThreadsWithLiveWorkerData,
worker_threads: workerThreadsWithWorkerData,
"node:worker_threads": workerThreadsWithWorkerData,
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
// @ts-ignore
export const workerData = self.workerData;
const globalSelf = self as any;

export const workerData: any = new Proxy(
{},
{
get(_target, prop) {
return globalSelf.workerData?.[prop];
},
has(_target, prop) {
return globalSelf.workerData && prop in globalSelf.workerData;
},
ownKeys(_target) {
return globalSelf.workerData
? Reflect.ownKeys(globalSelf.workerData)
: [];
},
getOwnPropertyDescriptor(_target, prop) {
return globalSelf.workerData
? Object.getOwnPropertyDescriptor(globalSelf.workerData, prop)
: undefined;
},
},
);

export const isMainThread = false;

export const parentPort = {
postMessage: (message: any) => self.postMessage(message),
on: (event: string, listener: (...args: any[]) => void) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/utoo-web/src/webpackLoaders/types.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export interface LoaderRunnerMeta {
workerData: {
workerId: number;
threadId: number;
cwd: string;
projectRoot: string;
};
Expand Down
4 changes: 2 additions & 2 deletions packages/utoo-web/src/webpackLoaders/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ declare let self: DedicatedWorkerGlobalScope & {
cwd: () => string;
};
workerData: {
workerId: number;
threadId: number;
cwd: string;
projectRoot: string;
binding: typeof binding;
Expand All @@ -46,7 +46,7 @@ export function startLoaderWorker() {
Project.setCwd(meta.workerData.cwd);

self.workerData = {
workerId: meta.workerData.workerId,
threadId: meta.workerData.threadId,
cwd: meta.workerData.cwd,
projectRoot: meta.workerData.projectRoot,
binding,
Expand Down
Loading