Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
23 lines
573 B
Text
23 lines
573 B
Text
export class UnionSerde {
|
|
from;
|
|
to;
|
|
keys;
|
|
constructor(from, to) {
|
|
this.from = from;
|
|
this.to = to;
|
|
this.keys = new Set(Object.keys(this.from).filter((k) => k !== "__type"));
|
|
}
|
|
mark(key) {
|
|
this.keys.delete(key);
|
|
}
|
|
hasUnknown() {
|
|
return this.keys.size === 1 && Object.keys(this.to).length === 0;
|
|
}
|
|
writeUnknown() {
|
|
if (this.hasUnknown()) {
|
|
const k = this.keys.values().next().value;
|
|
const v = this.from[k];
|
|
this.to.$unknown = [k, v];
|
|
}
|
|
}
|
|
}
|