mirror of
https://github.com/0x5eal/terracotta.git
synced 2024-12-12 04:40:42 +00:00
feat(cmd): reduce init boilerplate in minify & bundle wrappers
This commit is contained in:
parent
0ff7bcd36c
commit
9b34155267
1 changed files with 51 additions and 50 deletions
101
darklua/cmd.luau
101
darklua/cmd.luau
|
@ -54,31 +54,7 @@ local function ProcessWhich(binName: string): { path: string?, warnings: { strin
|
|||
}
|
||||
end
|
||||
|
||||
Darklua.Type = "Darklua"
|
||||
|
||||
Darklua.Interface = {}
|
||||
Darklua.Prototype = {}
|
||||
|
||||
function Darklua.Prototype.ToString(self: DarkluaExtended): string
|
||||
return string.format("%s<%s>", Darklua.Type, "Global")
|
||||
end
|
||||
|
||||
function Darklua.Prototype.IsOk(self: DarkluaExtended): boolean
|
||||
if self.darkluaPath and Fs.isFile(self.darkluaPath) then
|
||||
local isExecutable = Process.spawn(self.darkluaPath, { "--help" }, { stdio = "default" }).ok
|
||||
|
||||
return isExecutable
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function Darklua.Prototype.Process(
|
||||
self: DarkluaExtended,
|
||||
sourceKind: "code" | "path",
|
||||
source: string,
|
||||
configPath: string?
|
||||
): { error: string?, processed: string? }
|
||||
function __DarkluaInit(sourceKind: "code" | "path", source: string): { res: { string }?, error: string? }
|
||||
local sourcePath: string
|
||||
|
||||
if sourceKind == "code" then
|
||||
|
@ -109,6 +85,50 @@ function Darklua.Prototype.Process(
|
|||
}
|
||||
end
|
||||
|
||||
-- [1] => sourcePath
|
||||
-- [2] => outFilePath
|
||||
return {
|
||||
res = { sourcePath, outFilePath },
|
||||
}
|
||||
end
|
||||
|
||||
Darklua.Type = "Darklua"
|
||||
|
||||
Darklua.Interface = {}
|
||||
Darklua.Prototype = {}
|
||||
|
||||
function Darklua.Prototype.ToString(self: DarkluaExtended): string
|
||||
return string.format("%s<%s>", Darklua.Type, "Global")
|
||||
end
|
||||
|
||||
function Darklua.Prototype.IsOk(self: DarkluaExtended): boolean
|
||||
if self.darkluaPath and Fs.isFile(self.darkluaPath) then
|
||||
local isExecutable = Process.spawn(self.darkluaPath, { "--help" }, { stdio = "default" }).ok
|
||||
|
||||
return isExecutable
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function Darklua.Prototype.Process(
|
||||
self: DarkluaExtended,
|
||||
sourceKind: "code" | "path",
|
||||
source: string,
|
||||
configPath: string?
|
||||
): { error: string?, processed: string? }
|
||||
local initOut = __DarkluaInit(sourceKind, source)
|
||||
if initOut.error then
|
||||
return {
|
||||
error = initOut.error,
|
||||
}
|
||||
end
|
||||
|
||||
local paths = initOut.res :: { string }
|
||||
|
||||
local sourcePath = paths[1]
|
||||
local outFilePath = paths[2]
|
||||
|
||||
local args = { "--config" }
|
||||
|
||||
if configPath and configPath ~= "" then
|
||||
|
@ -137,36 +157,17 @@ function Darklua.Prototype.Minify(
|
|||
sourceKind: "code" | "path",
|
||||
source: string
|
||||
): { error: string?, minified: string? }
|
||||
local sourcePath: string
|
||||
|
||||
if sourceKind == "code" then
|
||||
local ok, tmpFilePath = FsUtils.MakeTemp()
|
||||
|
||||
if not ok then
|
||||
return {
|
||||
error = "failed to create temporary file for darklua minification",
|
||||
}
|
||||
end
|
||||
|
||||
Fs.writeFile(tmpFilePath, source)
|
||||
|
||||
sourcePath = tmpFilePath
|
||||
elseif sourceKind == "path" then
|
||||
sourcePath = source
|
||||
else
|
||||
local initOut = __DarkluaInit(sourceKind, source)
|
||||
if initOut.error then
|
||||
return {
|
||||
error = "invalid sourceKind provided",
|
||||
error = initOut.error,
|
||||
}
|
||||
end
|
||||
|
||||
local ok, outFilePath = FsUtils.MakeTemp()
|
||||
|
||||
if not ok then
|
||||
return {
|
||||
error = "failed to create temporary file for darklua minification",
|
||||
}
|
||||
end
|
||||
local paths = initOut.res :: { string }
|
||||
|
||||
local sourcePath = paths[1]
|
||||
local outFilePath = paths[2]
|
||||
local darkluaChild = Process.spawn(self.darkluaPath, { "minify", sourcePath, outFilePath })
|
||||
|
||||
if not darkluaChild.ok then
|
||||
|
|
Loading…
Reference in a new issue