mirror of
https://github.com/nvms/esr.git
synced 2025-12-16 06:40:52 +00:00
cleanup, support loaders
This commit is contained in:
parent
0a67f3bc40
commit
d35e137872
@ -44,7 +44,10 @@ func (b *Builder) Build(buildOptions *api.BuildOptions) error {
|
|||||||
if err := os.WriteFile(file.Path, file.Contents, os.ModePerm); err != nil {
|
if err := os.WriteFile(file.Path, file.Contents, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("esr :: failed to write file: %v", err)
|
return fmt.Errorf("esr :: failed to write file: %v", err)
|
||||||
}
|
}
|
||||||
fmt.Printf("esr :: wrote: %s\n", filepath.Join(b.Config.Outdir, filepath.Base(file.Path)))
|
|
||||||
|
// fmt.Printf("esr :: wrote: %s\n", filepath.Join(b.Config.Outdir, filepath.Base(file.Path)))
|
||||||
|
fmt.Printf("esr :: wrote: %s\n", filepath.Join(filepath.Dir(file.Path), filepath.Base(file.Path)))
|
||||||
|
// fmt.Printf("esr :: wrote: %s\n", file.Path)
|
||||||
|
|
||||||
if filepath.Ext(file.Path) == ".js" {
|
if filepath.Ext(file.Path) == ".js" {
|
||||||
b.BuiltJS = append(b.BuiltJS, file.Path)
|
b.BuiltJS = append(b.BuiltJS, file.Path)
|
||||||
|
|||||||
@ -70,6 +70,14 @@ func CreateDefaultPackageJson() string {
|
|||||||
}`
|
}`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InitProject initializes a new project in the current working directory.
|
||||||
|
// It ensures the directory is empty before proceeding. The function creates
|
||||||
|
// essential directories and files required for the project, including:
|
||||||
|
// - A 'public' directory with an 'index.html' file.
|
||||||
|
// - A 'src' directory with an 'index.ts' file.
|
||||||
|
// - Configuration files such as '.esr.yml', 'package.json', 'tsconfig.json',
|
||||||
|
// and '.prettierrc' with default settings.
|
||||||
|
// If any step fails, the function calls Die with an appropriate error message.
|
||||||
func InitProject() {
|
func InitProject() {
|
||||||
cwd, err := os.Getwd()
|
cwd, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -79,6 +79,3 @@ func (l *LiveReload) Start() {
|
|||||||
func (l *LiveReload) Reload() {
|
func (l *LiveReload) Reload() {
|
||||||
l.messages <- "reload"
|
l.messages <- "reload"
|
||||||
}
|
}
|
||||||
|
|
||||||
// JsSnippet generates a JS snippet for including in the template.
|
|
||||||
// const JsSnippet = `<script>const source = new EventSource('/livereload'); source.onmessage = (e) => { if (e.data === 'reload') location.reload(); };</script>`
|
|
||||||
|
|||||||
@ -99,6 +99,7 @@ func ModeOptions(config *config.Config, mode ModeType, entryPoint, tempFilePath
|
|||||||
fmt.Printf("Unknown JSX: %s, using default\n", config.JSX)
|
fmt.Printf("Unknown JSX: %s, using default\n", config.JSX)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default loaders
|
||||||
var loaders = map[string]api.Loader{
|
var loaders = map[string]api.Loader{
|
||||||
".js": api.LoaderJS,
|
".js": api.LoaderJS,
|
||||||
".mjs": api.LoaderJS,
|
".mjs": api.LoaderJS,
|
||||||
@ -122,50 +123,39 @@ func ModeOptions(config *config.Config, mode ModeType, entryPoint, tempFilePath
|
|||||||
".woff2": api.LoaderDataURL,
|
".woff2": api.LoaderDataURL,
|
||||||
}
|
}
|
||||||
|
|
||||||
buildOptions.Loader = loaders
|
// Overwrite sane default loaders with ones from config
|
||||||
|
for ext, loader := range config.Loader {
|
||||||
|
switch loader {
|
||||||
|
case "file":
|
||||||
|
loaders[ext] = api.LoaderFile
|
||||||
|
case "dataurl":
|
||||||
|
loaders[ext] = api.LoaderDataURL
|
||||||
|
case "binary":
|
||||||
|
loaders[ext] = api.LoaderBinary
|
||||||
|
case "text":
|
||||||
|
loaders[ext] = api.LoaderText
|
||||||
|
case "js":
|
||||||
|
loaders[ext] = api.LoaderJS
|
||||||
|
case "jsx":
|
||||||
|
loaders[ext] = api.LoaderJSX
|
||||||
|
case "tsx":
|
||||||
|
loaders[ext] = api.LoaderTSX
|
||||||
|
case "ts":
|
||||||
|
loaders[ext] = api.LoaderTS
|
||||||
|
case "json":
|
||||||
|
loaders[ext] = api.LoaderJSON
|
||||||
|
case "css":
|
||||||
|
loaders[ext] = api.LoaderCSS
|
||||||
|
case "default":
|
||||||
|
loaders[ext] = api.LoaderDefault
|
||||||
|
// Add additional cases if necessary for other loaders
|
||||||
|
default:
|
||||||
|
fmt.Printf("Unknown loader: %s for extension %s, using none\n", loader, ext)
|
||||||
|
loaders[ext] = api.LoaderNone
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Apply loader
|
buildOptions.Loader = loaders
|
||||||
// buildOptions.Loader = make(map[string]api.Loader)
|
|
||||||
// for k, v := range config.Loader {
|
|
||||||
// switch v {
|
|
||||||
// case ".woff2":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderDataURL
|
|
||||||
// case "file":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderFile
|
|
||||||
// case "dataurl":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderDataURL
|
|
||||||
// case "binary":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderBinary
|
|
||||||
// case "base64":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderBase64
|
|
||||||
// case "copy":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderCopy
|
|
||||||
// case "text":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderText
|
|
||||||
// case "js":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderJS
|
|
||||||
// case "jsx":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderJSX
|
|
||||||
// case "tsx":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderTSX
|
|
||||||
// case "ts":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderTS
|
|
||||||
// case "json":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderJSON
|
|
||||||
// case "css":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderCSS
|
|
||||||
// case "globalcss":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderGlobalCSS
|
|
||||||
// case "localcss":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderLocalCSS
|
|
||||||
// case "empty":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderEmpty
|
|
||||||
// case "default":
|
|
||||||
// buildOptions.Loader[k] = api.LoaderDefault
|
|
||||||
// default:
|
|
||||||
// buildOptions.Loader[k] = api.LoaderNone
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
return &buildOptions
|
return &buildOptions
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,6 +46,8 @@ func (r *Runner) Run(entryPoint string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("esr :: running: \"%s %s\"\n", r.Config.Run.Runtime, r.TempFilePath)
|
||||||
|
|
||||||
cmd := exec.Command(r.Config.Run.Runtime, r.TempFilePath)
|
cmd := exec.Command(r.Config.Run.Runtime, r.TempFilePath)
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user