Documentation for this module may be created at Module:IATA and ICAO code/sandbox2/doc

require('strict');
local p = {}

local airportLink
local master = mw.loadData("Module:IATA and ICAO code/data/sandbox2")

local IATA_airport = master.IATA
local ICAO_airport = master.ICAO
local wikilink_label = master.WikiName


function p.main(frame)
local code = mw.text.trim(frame.args[1] or ''):upper()
--exemple of data { 'AAA', 'NTGA', 'Anaa Airport', 'Anaa' },

	if 3 ~= #code and 4 ~= #code then											--accepts only three-letter codes (IATA) and 4-letter codes (ICAO)
		return table.concat ({'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: invalid code: ', code, ', must be an ICAO or IATA code</span>'});
	end

	if IATA_airport[code] then
		airportLink= table.concat ({'[[', IATA_airport[code], '|', wikilink_label[code], ']]'})	-- make wikilink from iata code
	elseif ICAO_airport[code] then
		airportLink = table.concat ({'[[', ICAO_airport[code], '|', wikilink_label[code], ']]'})	-- make wikilink from icao code
	else
		airportLink = table.concat ({'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: data missing for code: <b>', code, '</b></span>'});
	end

	return airportLink
end

return p