Files
picoGraph/scripts/nodes/library/strings/ord.js
Max Litruv Boonzaayer e64f3e881e Initial commit
moved from private version control
2025-10-19 21:12:41 +11:00

56 lines
1.4 KiB
JavaScript

import { createNodeModule } from "../../nodeTypes.js";
/**
* Converts characters to ordinal values using ord.
*/
export const stringOrdNode = createNodeModule(
{
id: "string_ord",
title: "Ordinals From String",
category: "Strings",
description:
"Return ordinal codes for characters in a string using ORD().",
searchTags: ["ord", "string", "character"],
inputs: [
{ id: "string", name: "String", direction: "input", kind: "string" },
{
id: "index",
name: "Index",
direction: "input",
kind: "number",
description: "Optional starting index",
},
{
id: "count",
name: "Count",
direction: "input",
kind: "number",
description: "Optional result count",
},
],
outputs: [
{ id: "result", name: "Result", direction: "output", kind: "number" },
],
properties: [],
},
{
evaluateValue: ({ resolveValueInput }) => {
const OMIT = "__pg_omit__";
const str = resolveValueInput("string", "\"\"");
const index = resolveValueInput("index", OMIT);
const count = resolveValueInput("count", OMIT);
if (index === OMIT && count === OMIT) {
return `ord(${str})`;
}
if (count === OMIT) {
return `ord(${str}, ${index === OMIT ? "nil" : index})`;
}
const indexArg = index === OMIT ? "nil" : index;
return `ord(${str}, ${indexArg}, ${count})`;
},
}
);