@haelp/teto
Version:
A typescript-based controllable TETR.IO client.
50 lines (49 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "deepCopy", {
enumerable: true,
get: function() {
return deepCopy;
}
});
_export_star(require("./damageCalc"), exports);
_export_star(require("./increase"), exports);
_export_star(require("./kicks"), exports);
_export_star(require("./tetromino"), exports);
_export_star(require("./seed"), exports);
_export_star(require("./polyfills"), exports);
_export_star(require("./rng"), exports);
function _export_star(from, to) {
Object.keys(from).forEach(function(k) {
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
Object.defineProperty(to, k, {
enumerable: true,
get: function() {
return from[k];
}
});
}
});
return from;
}
function deepCopy(obj, handlers = []) {
if (obj === null || obj === undefined || typeof obj !== "object") {
return obj;
}
for (const h of handlers){
if (obj instanceof h.type) {
return h.copy(obj);
}
}
if (Array.isArray(obj)) {
return obj.map((item)=>deepCopy(item, handlers));
}
const out = {};
for (const key of Object.keys(obj)){
out[key] = deepCopy(obj[key], handlers);
}
return out;
}
//# sourceMappingURL=index.js.map