appactive-gateway/nginx-plugin/etc/nginx/conf/lua/util/token_parser.lua (42 lines of code) (raw):

local _M = {} _M._VERSION = '1.0' local function doFilterMod(id, config) if id == nil then return nil end local idNum = tonumber(id) if idNum == nil then return id end local modNum = tonumber(config.mod) if modNum == nil or modNum == 0 then return id end return tostring(idNum % modNum) end -- hold all filters local modeTable = { mod = doFilterMod, other = nil, } local function getAction(rule) local action = {} action[1] = { name = rule.id, config = rule, filter = rule.mod and modeTable.mod or modeTable.other } return action end function _M.doParseTransformer(val) local idTransformer = {} local count = 1 for _, rule in pairs(val) do idTransformer[count] = { tokenName = rule.id, action = getAction(rule) } count = count + 1 end return idTransformer end return _M