Skip to content

Commit 27cbf7f

Browse files
authored
[skjson] Rename sk_freeze and remove unused export (#806)
I noticed while adding an optional default parameter to Values#getUnique that it's probably a footgun to export `sk_freeze` from skjson via `core`'s index.ts, since it doesn't actually _freeze_, just adds the hidden property that we use to track frozen-ness. This PR drops that export and renames to avoid confusion.
2 parents 056c8d9 + 42e2f6a commit 27cbf7f

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

skiplang/skjson/ts/binding/src/index.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export abstract class Frozen implements Managed {
3434
protected abstract freeze(): void;
3535
}
3636

37-
export function sk_freeze<T extends object>(x: T): T & Managed {
37+
function tagSkManaged<T extends object>(x: T): T & Managed {
3838
return Object.defineProperty(x, sk_managed, {
3939
enumerable: false,
4040
writable: false,
@@ -48,7 +48,7 @@ export function isSkManaged(x: any): x is Managed {
4848

4949
export abstract class SkManaged extends Frozen {
5050
protected freeze() {
51-
sk_freeze(this);
51+
tagSkManaged(this);
5252
}
5353
}
5454

@@ -126,12 +126,12 @@ export function deepFreeze<T>(value: T): T & DepSafe {
126126
for (const elt of value) {
127127
deepFreeze(elt);
128128
}
129-
return Object.freeze(sk_freeze(value));
129+
return Object.freeze(tagSkManaged(value));
130130
} else {
131131
for (const val of Object.values(value)) {
132132
deepFreeze(val);
133133
}
134-
return Object.freeze(sk_freeze(value));
134+
return Object.freeze(tagSkManaged(value));
135135
}
136136
} else {
137137
// typeof value == "function" || typeof value == "undefined"
@@ -265,7 +265,7 @@ function interpretPointer<T extends Internal.CJSON>(
265265
const array = Array.from({ length }, (_, idx) =>
266266
interpretPointer(binding, binding.SKIP_SKJSON_at(aPtr, idx)),
267267
);
268-
return sk_freeze(array);
268+
return tagSkManaged(array);
269269
}
270270
case Type.Object: {
271271
const oPtr = binding.SKIP_SKJSON_asObject(pointer);

skipruntime-ts/core/src/index.ts

+1-7
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@ import type {
1212
JsonConverter,
1313
JsonObject,
1414
} from "../skiplang-json/index.js";
15-
import {
16-
sk_freeze,
17-
isSkManaged,
18-
SkManaged,
19-
checkOrCloneParam,
20-
} from "../skiplang-json/index.js";
15+
import { SkManaged, checkOrCloneParam } from "../skiplang-json/index.js";
2116

2217
import { sknative } from "../skiplang-std/index.js";
2318

@@ -54,7 +49,6 @@ import {
5449
type FromBinding,
5550
} from "./binding.js";
5651

57-
export { sk_freeze, isSkManaged };
5852
export * from "./api.js";
5953
export * from "./errors.js";
6054

0 commit comments

Comments
 (0)