Skip to content

Commit 91c4537

Browse files
committed
update to new epoxy build
1 parent b0f66a4 commit 91c4537

2 files changed

Lines changed: 23 additions & 30 deletions

File tree

src/puter-js/src/modules/networking/epoxy.js

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
1-
let EPOXY_BASE = 'https://epoxy.puter.com/0265590';
1+
let EPOXY_BASE = 'https://puter-net.b-cdn.net/epoxy/7fbb05b';
22
let epoxyRuntimePromise;
33

44
const textEncoder = new TextEncoder();
55

6-
function getEpoxyBase () {
7-
const overriddenBase =
8-
globalThis.PUTER_EPOXY_BASE || globalThis.PUTER_EPOXY_BASE_ENV;
9-
const base = overriddenBase || EPOXY_BASE;
10-
return base.endsWith('/') ? base.slice(0, -1) : base;
11-
}
12-
136
async function getEpoxyRuntime () {
147
if ( epoxyRuntimePromise ) {
15-
return epoxyRuntimePromise;
8+
return await epoxyRuntimePromise;
169
}
1710

1811
epoxyRuntimePromise = (async () => {
19-
const base = getEpoxyBase();
12+
const base = EPOXY_BASE;
2013
const runtime = await import(/* webpackIgnore: true */ `${base}/full.js`);
2114
const wasmResponse = await fetch(`${base}/full.wasm`);
2215
if ( ! wasmResponse.ok ) {
@@ -82,10 +75,6 @@ function createPuterPasswordBuilder (runtime, wispToken) {
8275
}
8376

8477
export let initEpoxy = async ({ wispToken, wispServer }) => {
85-
if ( !wispServer || !wispToken ) {
86-
throw new Error('Both wispServer and wispToken are required to initialize networking.');
87-
}
88-
8978
const runtime = await getEpoxyRuntime();
9079

9180
const provider = new runtime.WispSocketProvider(

src/puter-js/src/modules/networking/index.js

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import { initEpoxy } from './epoxy.js';
22
import { PSocket, PTLSSocket } from './PSocket.js';
33
import { pFetch } from './requests.js';
44

5-
let cachedEpoxyClientPromise;
6-
let cachedEpoxyClientKey;
5+
let cachedEpoxy = undefined;
76

87
function getPuterInstance () {
98
const puter = globalThis.puter;
@@ -59,28 +58,33 @@ export async function generateWispV1URL () {
5958
}
6059

6160
export async function getEpoxyClient ({ refresh = false } = {}) {
61+
if ( cachedEpoxy && cachedEpoxy.initting ) return await cachedEpoxy.promise;
62+
6263
const nextKey = getClientCacheKey();
63-
if ( refresh || !cachedEpoxyClientPromise || cachedEpoxyClientKey !== nextKey ) {
64-
cachedEpoxyClientKey = nextKey;
65-
cachedEpoxyClientPromise = (async () => {
66-
const { wispToken, wispServer } = await getWispCredentials();
67-
return await initEpoxy({ wispToken, wispServer });
64+
if ( refresh || !(cachedEpoxy && cachedEpoxy.key === nextKey) ) {
65+
let epoxy = { key: nextKey, initting: true };
66+
let promise = (async () => {
67+
try {
68+
const { wispToken, wispServer } = await getWispCredentials();
69+
let ret = await initEpoxy({ wispToken, wispServer });
70+
epoxy.initting = false;
71+
return ret;
72+
} catch {
73+
if ( cachedEpoxy === epoxy ) {
74+
cachedEpoxy = undefined;
75+
}
76+
}
6877
})();
78+
epoxy.promise = promise;
6979

70-
cachedEpoxyClientPromise.catch(() => {
71-
if ( cachedEpoxyClientKey === nextKey ) {
72-
cachedEpoxyClientPromise = undefined;
73-
cachedEpoxyClientKey = undefined;
74-
}
75-
});
80+
cachedEpoxy = epoxy;
7681
}
7782

78-
return await cachedEpoxyClientPromise;
83+
return await cachedEpoxy.promise;
7984
}
8085

8186
export function clearEpoxyClientCache () {
82-
cachedEpoxyClientPromise = undefined;
83-
cachedEpoxyClientKey = undefined;
87+
cachedEpoxy = undefined;
8488
}
8589

8690
export let netAPI = {

0 commit comments

Comments
 (0)