[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: validators.js
import definitions from "../../lib/definitions/index.js"; const has = Function.call.bind(Object.prototype.hasOwnProperty); function joinComparisons(leftArr, right) { return ( leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}` ); } function addIsHelper(type, aliasKeys, deprecated) { const targetType = JSON.stringify(type); let aliasSource = ""; if (aliasKeys) { aliasSource = joinComparisons(aliasKeys, "nodeType"); } let placeholderSource = ""; const placeholderTypes = []; if ( definitions.PLACEHOLDERS.includes(type) && has(definitions.FLIPPED_ALIAS_KEYS, type) ) { placeholderTypes.push(type); } if (has(definitions.PLACEHOLDERS_FLIPPED_ALIAS, type)) { placeholderTypes.push(...definitions.PLACEHOLDERS_FLIPPED_ALIAS[type]); } if (placeholderTypes.length > 0) { placeholderSource = ' || nodeType === "Placeholder" && (' + joinComparisons( placeholderTypes, "(node as t.Placeholder).expectedNode" ) + ")"; } const result = definitions.NODE_FIELDS[type] || definitions.FLIPPED_ALIAS_KEYS[type] ? `node is t.${type}` : "boolean"; return `export function is${type}(node: object | null | undefined, opts?: object | null): ${result} { ${deprecated || ""} if (!node) return false; const nodeType = (node as t.Node).type; if (${ aliasSource ? aliasSource : `nodeType === ${targetType}` }${placeholderSource}) { if (typeof opts === "undefined") { return true; } else { return shallowEqual(node, opts); } } return false; } `; } export default function generateValidators() { let output = `/* * This file is auto-generated! Do not modify it directly. * To re-generate run 'make build' */ import shallowEqual from "../../utils/shallowEqual"; import type * as t from "../..";\n\n`; Object.keys(definitions.VISITOR_KEYS).forEach(type => { output += addIsHelper(type); }); Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => { output += addIsHelper(type, definitions.FLIPPED_ALIAS_KEYS[type]); }); Object.keys(definitions.DEPRECATED_KEYS).forEach(type => { const newType = definitions.DEPRECATED_KEYS[type]; const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`; output += addIsHelper(type, null, deprecated); }); return output; }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.55 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002