Module:Variables

-- Imports

local libraryUtil = require( 'libraryUtil' )

-- Helper functions

local h = {}

function h.parser_function( func, args ) if not frame then frame = mw.getCurrentFrame end

return frame:callParserFunction( func, args ) end

-- Functions

local p = {}

function p.vardefine( name, value ) libraryUtil.checkType( 'vardefine', 1, name, 'string' ) libraryUtil.checkTypeMulti( 'vardefine', 2, value, { 'boolean', 'string', 'number' }, true )

h.parser_function( '#vardefine', { name, tostring(value) } ) end

function p.vardefineecho( name, value ) libraryUtil.checkType( 'vardefineecho', 1, name, 'string' ) libraryUtil.checkTypeMulti( 'vardefineecho', 2, value, { 'boolean', 'string', 'number' }, true )

return h.parser_function( '#vardefineecho', { name, tostring(value) } ) end

function p.varexists( name ) libraryUtil.checkType( 'varexists', 1, name, 'string' )

return ( h.parser_function( '#varexists', name ) == '1' ) end

function p.var( name ) libraryUtil.checkType( 'var', 1, name, 'string' )

if p.varexists( name ) then return h.parser_function( '#var', name ) end end

function p.var_final( name ) libraryUtil.checkType( 'var_final', 1, name, 'string' )

return h.parser_function( '#var_final', name ) end

-- Return

return p