DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
1.82 kB
'use strict';
const {
OBJECT,
FUNCTION,
BOOLEAN,
NUMBER,
STRING,
UNDEFINED,
BIGINT,
SYMBOL,
NULL
} = require('./types.js');
const {
defineProperty,
getOwnPropertyDescriptor,
getPrototypeOf,
isExtensible,
ownKeys,
preventExtensions,
set,
setPrototypeOf
} = Reflect;
const TypedArray = getPrototypeOf(Int8Array);
exports.TypedArray = TypedArray;
exports.defineProperty = defineProperty;
exports.getOwnPropertyDescriptor = getOwnPropertyDescriptor;
exports.getPrototypeOf = getPrototypeOf;
exports.isExtensible = isExtensible;
exports.ownKeys = ownKeys;
exports.preventExtensions = preventExtensions;
exports.set = set;
exports.setPrototypeOf = setPrototypeOf;
const augment = (descriptor, how) => {
const {get, set, value} = descriptor;
if (get) descriptor.get = how(get);
if (set) descriptor.set = how(set);
if (value) descriptor.value = how(value);
return descriptor;
};
exports.augment = augment;
const entry = (type, value) => [type, value];
exports.entry = entry;
const asEntry = transform => value => {
const type = typeof value;
switch (type) {
case OBJECT:
if (value == null)
return entry(NULL, value);
case FUNCTION:
return transform(type, value);
case BOOLEAN:
case NUMBER:
case STRING:
case UNDEFINED:
case BIGINT:
return entry(type, value);
case SYMBOL: {
if (symbols.has(value))
return entry(type, symbols.get(value));
}
}
throw new Error(`Unable to handle this ${type} type`);
};
exports.asEntry = asEntry;
const symbols = new Map(
ownKeys(Symbol)
.filter(s => typeof Symbol[s] === SYMBOL)
.map(s => [Symbol[s], s])
);
const symbol = value => {
for (const [symbol, name] of symbols) {
if (name === value)
return symbol;
}
};
exports.symbol = symbol;