ParamTagToken (EN) - bhsd-harry/wikiparser-node GitHub Wiki
Content of extension tags that specify parameters line by line, used for the <dynamicpagelist> or <inputbox> tag. This class inherits all the properties and methods of the MultiLineToken class.
✅ Available in the Mini and Browser versions.
Inherited properties from MultiLineToken
✅ Expand
type: string
Name of the extension tag in lowercase, read-only.
// name
var {
firstChild: {lastChild},
} = Parser.parse("<inputbox>type=create</inputbox>");
assert.equal(lastChild, "type=create");
assert.strictEqual(lastChild.name, "inputbox");Inherited methods from MultiLineToken
Expand
returns: this
Deep clone the node.
// cloneNode (main)
var {
firstChild: {lastChild},
} = Parser.parse("<dynamicpagelist>category = A</dynamicpagelist>");
assert.equal(lastChild, "category = A");
assert.deepStrictEqual(lastChild.cloneNode(), lastChild);✅ Expand
returns: [string, ParamLineToken[]][]
Get duplicate parameters.
// getDuplicatedParams
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(
lastChild.getDuplicatedParams(),
[["type", lastChild.childNodes]],
);✅ Expand
returns: Set<string>
Get all parameter keys.
// getKeys
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>
TYPE = create
buttonlabel = Create
</inputbox>`);
assert.equal(
lastChild,
`
TYPE = create
buttonlabel = Create
`,
);
assert.deepStrictEqual(lastChild.getKeys(), new Set(["type", "buttonlabel"]));✅ Expand
param: string parameter key
returns: ParamLineToken[]
Get specified parameters.
// getParams
var {
firstChild: {lastChild: inputbox},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`),
{firstChild, lastChild} = inputbox;
assert.equal(firstChild, "type=create");
assert.equal(lastChild, "TYPE = search");
assert.deepStrictEqual(inputbox.getParams("type"), [firstChild, lastChild]);Expand
param: string parameter key
returns: string[]
Get specified parameter values.
// getValues (main)
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(lastChild.getValues("type"), ["create", "search"]);Expand
returns: number
Get the number of duplicate parameters.
// hasDuplicatedParams (main)
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.strictEqual(lastChild.hasDuplicatedParams(), 1);Expand
param: string parameter key
returns: boolean
Whether the node has specified parameter.
// hasParam (main)
var {
firstChild: {lastChild},
} = Parser.parse("<inputbox>TYPE = create</inputbox>");
assert.equal(lastChild, "TYPE = create");
assert.ok(lastChild.hasParam("type"));✅ Expand
returns: LintError[]
Report potential grammar errors.
// lint
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(lastChild.lint(), [
{
rule: "no-duplicate",
severity: "error",
message: "duplicate parameter of <inputbox>",
startLine: 0,
startCol: 10,
startIndex: 10,
endLine: 0,
endCol: 21,
endIndex: 21,
suggestions: [
{
desc: "remove",
range: [10, 21],
text: "",
},
],
},
{
rule: "no-duplicate",
severity: "error",
message: "duplicate parameter of <inputbox>",
startLine: 1,
startCol: 0,
startIndex: 22,
endLine: 1,
endCol: 13,
endIndex: 35,
suggestions: [
{
desc: "remove",
range: [21, 35],
text: "",
},
],
},
]);Expand
param: string parameter key
param: string parameter value
Insert a new parameter.
// newParam (main)
var {
firstChild: {lastChild},
} = Parser.parse("<dynamicpagelist>category = A</dynamicpagelist>");
assert.equal(lastChild, "category = A");
lastChild.newParam("count", "5");
assert.equal(lastChild, "category = A\ncount=5");Expand
param: string parameter key
Remove specified parameter.
// removeParams (main)
var {
firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
lastChild.removeParams("type");
assert.equal(lastChild, "");Expand
param: string parameter key
param: string parameter value
Set specified parameter value.
// setValue (main)
var {
firstChild: {lastChild},
} = Parser.parse("<inputbox>TYPE = create</inputbox>");
assert.equal(lastChild, "TYPE = create");
lastChild.setValue("type", "search");
assert.equal(lastChild, "TYPE =search");
lastChild.setValue("buttonlabel", "Search");
assert.equal(lastChild, "TYPE =search\nbuttonlabel=Search");