Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / exotic / core / Symbols.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.toSymbolFor = toSymbolFor;
exports.WellKnown = exports.SYMBOLS = void 0;

var _deps = require("../deps");

var _symbol = require("../types/primitive/symbol");

var _omni = require("../types/@omni");

// import { isString } from 'exotic/types/primitive/string'
// import { isNumber } from 'exotic/types/primitive/number'
// import { isSymbol } from 'exotic/types/primitive/symbol'
// import { isStringOrNumber } from 'exotic/types/@omni'
// import WellKnown from 'exoticdeps'
// const isStringOrNumber = x => isString(x) || isNumber(x)
const WellKnown = Symbol; // @NOTE all start with @@

exports.WellKnown = WellKnown;

const $ = x => Symbol.for(`@@${x}`);

const SYMBOL_STRINGS = (0, _deps.freeze)(['PARENT', 'INFERRED', 'INFERRED_DEFAULT', 'DEFAULT', 'SUPPORTS', 'FROM', 'TO', 'TYPE', 'COERCERS', 'UNKNOWN', 'EMPTY', 'IGNORE', 'SPECIES', 'NATIVE']); // array + array => {[values]: values}

const SYMBOLS = (0, _deps.freeze)((0, _deps.zip)(SYMBOL_STRINGS, SYMBOL_STRINGS)); // @TODO function toSymbol() {}

exports.SYMBOLS = SYMBOLS;

function toSymbolFor(sig) {
  if ((0, _symbol.isSymbol)(sig)) {
    return sig;
  } else if (!(0, _omni.isStringOrNumber)(sig)) {
    return $(sig);
  } else if (WellKnown[sig]) {
    return WellKnown[sig];
  } else {
    const caps = sig.startsWith('@@') ? sig.toUpperCase().replace('@@', '') : sig.toUpperCase(); // SYMBOLS[caps]

    return SYMBOL_STRINGS.includes(caps) ? $(caps) : $(sig);
  }
} // Object.assign(toSymbolFor, WellKnown)
// --- export default exports