Fix StartOS 0.4 TypeScript packaging to match SDK API

This commit is contained in:
MacPro
2026-04-09 15:10:44 -05:00
parent d5046a0daf
commit 0b70cbb2bf
3436 changed files with 867051 additions and 92 deletions
+130
View File
@@ -0,0 +1,130 @@
"use strict";
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DropGenerator = exports.DropPromise = exports.Drop = void 0;
const dropId = Symbol('id');
class Drop {
constructor() {
this.dropId = Drop.idCtr++;
this.dropRef = { [dropId]: this.dropId };
const weak = this.weak();
Drop.weak[this.dropId] = weak;
Drop.registry.register(this.dropRef, this.dropId, this.dropRef);
return new Proxy(this, {
set(target, prop, value) {
if (prop === 'dropRef' || prop == 'dropId')
return false;
target[prop] = value;
weak[prop] = value;
return true;
},
});
}
register() { }
weak() {
const weak = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
if (this.dropRef)
weak.ref = new WeakRef(this.dropRef);
return weak;
}
drop() {
if (!this.dropRef || !this.dropId)
return;
this.onDrop();
this.leak();
}
leak() {
if (!this.dropRef || !this.dropId)
return this;
Drop.registry.unregister(this.dropRef);
delete Drop.weak[this.dropId];
delete this.dropRef;
delete this.dropId;
return this;
}
}
exports.Drop = Drop;
Drop.weak = {};
Drop.registry = new FinalizationRegistry((id) => {
const weak = Drop.weak[id];
if (weak)
weak.drop();
});
Drop.idCtr = 0;
class DropPromise {
constructor(promise, dropFnOrRef) {
this.promise = promise;
this[_a] = 'DropPromise';
if (dropFnOrRef && dropId in dropFnOrRef) {
this.dropId = dropFnOrRef[dropId];
this.dropRef = dropFnOrRef;
return;
}
this.dropId = DropPromise.idCtr++;
this.dropRef = { [dropId]: this.dropId };
if (dropFnOrRef)
DropPromise.dropFns[this.dropId] = dropFnOrRef;
DropPromise.registry.register(this.dropRef, this.dropId, this.dropRef);
}
static of(promise, dropFn) {
return new DropPromise(promise, dropFn);
}
static ref(promise, dropRef) {
return new DropPromise(promise, dropRef);
}
then(onfulfilled, onrejected) {
return DropPromise.ref(this.promise.then(onfulfilled, onrejected), this.dropRef);
}
catch(onrejected) {
return DropPromise.ref(this.promise.catch(onrejected), this.dropRef);
}
finally(onfinally) {
return DropPromise.ref(this.promise.finally(onfinally), this.dropRef);
}
}
exports.DropPromise = DropPromise;
_a = Symbol.toStringTag;
DropPromise.dropFns = {};
DropPromise.registry = new FinalizationRegistry((id) => {
const drop = DropPromise.dropFns[id];
if (drop) {
drop();
delete DropPromise.dropFns[id];
}
});
DropPromise.idCtr = 0;
class DropGenerator {
constructor(generator, dropFn) {
this.generator = generator;
this[_b] = () => this;
this.dropId = DropGenerator.idCtr++;
this.dropRef = { [dropId]: this.dropId };
if (dropFn)
DropGenerator.dropFns[this.dropId] = dropFn;
DropGenerator.registry.register(this.dropRef, this.dropId, this.dropRef);
}
static of(generator, dropFn) {
return new DropGenerator(generator, dropFn);
}
next(...args) {
return DropPromise.ref(this.generator.next(...args), this.dropRef);
}
return(value) {
return DropPromise.ref(this.generator.return(value), this.dropRef);
}
throw(e) {
return DropPromise.ref(this.generator.throw(e), this.dropRef);
}
}
exports.DropGenerator = DropGenerator;
_b = Symbol.asyncIterator;
DropGenerator.dropFns = {};
DropGenerator.registry = new FinalizationRegistry((id) => {
const drop = DropGenerator.dropFns[id];
if (drop) {
drop();
delete DropGenerator.dropFns[id];
}
});
DropGenerator.idCtr = 0;
//# sourceMappingURL=Drop.js.map