package js

import (
	"embed"
	"io/fs"
	"os"
)
import _ "embed"

//go:embed */*/*.js
var jsList embed.FS

//go:embed lib/main.js
var jsMain embed.FS

var jsMap = initJsMap()

func initJsMap() map[string][]byte {

	var dataMap = make(map[string][]byte)

	btys, _ := jsMain.ReadFile("lib/main.js")
	dataMap["lib/main.js"] = btys

	list := initJsMapInner("lib/biz")
	if list != nil && len(list) > 0 {
		for _, file := range list {
			//读取配置文件
			data, err := jsList.ReadFile("lib/biz/" + file.Name())
			if err == nil {
				dataMap["lib/biz/"+file.Name()] = data
			}
		}
	}

	list = initJsMapInner("lib/common")
	if list != nil && len(list) > 0 {
		for _, file := range list {
			//读取配置文件
			data, err := jsList.ReadFile("lib/common/" + file.Name())
			if err == nil {
				dataMap["lib/common/"+file.Name()] = data
			}
		}
	}
	list = initJsMapInner("lib/event")
	if list != nil && len(list) > 0 {
		for _, file := range list {
			//读取配置文件
			data, err := jsList.ReadFile("lib/event/" + file.Name())
			if err == nil {
				dataMap["lib/event/"+file.Name()] = data
			}
		}
	}
	list = initJsMapInner("lib/model")
	if list != nil && len(list) > 0 {
		for _, file := range list {
			//读取配置文件
			data, err := jsList.ReadFile("lib/model/" + file.Name())
			if err == nil {
				dataMap["lib/model/"+file.Name()] = data
			}
		}
	}

	return dataMap
}

func initJsMapInner(path string) []fs.DirEntry {
	list, err := jsList.ReadDir(path)
	if err != nil {
		os.Exit(-1)
		return nil
	}

	return list
}