Module:Variables

-- Imports

local libraryUtil = require( 'libraryUtil' )

-- Helper functions

local h = {}

function h.callParserFunction( 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', 'nil' } )

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

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

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

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

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

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

local value = h.callParserFunction( '#var', name ) if value ~= '' then return value elseif default then return default else return nil end end

-- Return

return p