Moved v3 code from NginxProxyManager/nginx-proxy-manager-3 to NginxProxyManager/nginx-proxy-manager

This commit is contained in:
Jamie Curnow
2022-05-12 08:47:31 +10:00
parent 4db34f5894
commit 2110ecc382
830 changed files with 38168 additions and 36635 deletions
.dockerignore.gitignore.versionDEV-README.mdJenkinsfileREADME.md
backend
.editorconfig.eslintrc.json.gitignore.golangci.yml.nancy-ignore
.vscode
README.mdTaskfile.ymlapp.js
cmd
server
config
db.js
doc
embed
go.modgo.sumindex.js
internal
access-list.js
acme
api
audit-log.js
cache
certificate.js
config
database
dead-host.js
dnsproviders
entity
errors
host.jsip_ranges.js
jwt
logger
model
nginx.js
nginx
proxy-host.jsredirection-host.jsreport.jssetting.js
state
stream.jstoken.js
types
user.js
util
validator
worker
knexfile.js
lib
logger.jsmigrate.js
migrations
models
nodemon.jsonpackage.json
routes
schema
scripts
setup.js
templates
yarn.lock
docker
docs
frontend
.babelrc.env.development.eslintrc.gitignore.prettierrcREADME.mdcheck-locales.js
fonts
globalSetup.js
html
imagesjest.eslint.js
js
package.json
public
scss
src
App.test.tsxApp.tsxRouter.tsx
api
components
context
declarations.d.ts
fonts
hooks
img
index.scssindex.tsx
locale
modals
modules
pages
react-app-env.d.ts
styles
theme
tsconfig.jsonwebpack.config.jsyarn.lock
global
scripts
test

@ -0,0 +1,36 @@
package util
// FindItemInInterface Find key in interface (recursively) and return value as interface
func FindItemInInterface(key string, obj interface{}) (interface{}, bool) {
// if the argument is not a map, ignore it
mobj, ok := obj.(map[string]interface{})
if !ok {
return nil, false
}
for k, v := range mobj {
// key match, return value
if k == key {
return v, true
}
// if the value is a map, search recursively
if m, ok := v.(map[string]interface{}); ok {
if res, ok := FindItemInInterface(key, m); ok {
return res, true
}
}
// if the value is an array, search recursively
// from each element
if va, ok := v.([]interface{}); ok {
for _, a := range va {
if res, ok := FindItemInInterface(key, a); ok {
return res, true
}
}
}
}
// element not found
return nil, false
}