changed function returns to objects
This commit is contained in:
35
src/build.ts
35
src/build.ts
@@ -6,12 +6,17 @@ import readMeta from './readmeta'
|
||||
import { format, resolveConfig } from 'prettier'
|
||||
import { CLIArgs } from './main'
|
||||
|
||||
export default function (
|
||||
export default interface runBuild {
|
||||
meta: UserScriptMetaFull
|
||||
error: string | null
|
||||
}
|
||||
|
||||
export default function runBuild(
|
||||
name: string,
|
||||
watchCallback: (meta: UserScriptMetaFull, error: string | null) => void
|
||||
): [UserScriptMetaFull, string | null] {
|
||||
watchCallback: (result: runBuild) => void
|
||||
) {
|
||||
//read meta file
|
||||
let [metaJson, metaString] = readMeta(name)
|
||||
let { meta, metaString } = readMeta(name)
|
||||
let pathDist = DistPath(name)
|
||||
|
||||
let result = runEsbuild(
|
||||
@@ -27,24 +32,30 @@ export default function (
|
||||
minify: CLIArgs.minify,
|
||||
|
||||
define: {
|
||||
UserScriptName: `'${metaJson.name}'`,
|
||||
UserScriptNamespace: `'${metaJson.namespace}'`,
|
||||
UserScriptVersion: `'${metaJson.version}'`,
|
||||
UserScriptName: `'${meta.name}'`,
|
||||
UserScriptNamespace: `'${meta.namespace}'`,
|
||||
UserScriptVersion: `'${meta.version}'`,
|
||||
|
||||
UserScriptDownloadURL: `'${metaJson.downloadURL}'`,
|
||||
UserScriptSupportURL: `'${metaJson.supportURL}'`,
|
||||
UserScriptHomepageURL: `'${metaJson.homepageURL}'`,
|
||||
UserScriptDownloadURL: `'${meta.downloadURL}'`,
|
||||
UserScriptSupportURL: `'${meta.supportURL}'`,
|
||||
UserScriptHomepageURL: `'${meta.homepageURL}'`,
|
||||
},
|
||||
},
|
||||
result => {
|
||||
let error = postBuild(name, result, metaString)
|
||||
watchCallback(metaJson, error)
|
||||
watchCallback({
|
||||
meta,
|
||||
error,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
let error = postBuild(name, result, metaString)
|
||||
|
||||
return [metaJson, error]
|
||||
return {
|
||||
meta,
|
||||
error,
|
||||
}
|
||||
}
|
||||
|
||||
interface RunEsbuildResult {
|
||||
|
||||
20
src/main.ts
20
src/main.ts
@@ -1,9 +1,8 @@
|
||||
import { existsSync, lstatSync, readdirSync, unlinkSync } from 'fs'
|
||||
import commandLineArgs from 'command-line-args'
|
||||
import { DistBase, ScriptBase, ScriptPath } from './paths'
|
||||
import { readmeData, updateReadmeFile } from './readmefile'
|
||||
import { updateReadmeFile } from './readmefile'
|
||||
import runBuild from './build'
|
||||
import { UserScriptMetaFull } from './types'
|
||||
import * as Path from 'path'
|
||||
|
||||
export interface CLIArgsT {
|
||||
@@ -66,7 +65,7 @@ readdirSync(DistBase).forEach(file => unlinkSync(`${DistBase}/${file}`))
|
||||
|
||||
//compile scripts
|
||||
let scripts = readdirSync(ScriptBase)
|
||||
let scriptMeta: readmeData[] = []
|
||||
let scriptMeta: runBuild[] = []
|
||||
|
||||
for (let name of scripts) {
|
||||
let path = ScriptPath(name)
|
||||
@@ -80,19 +79,16 @@ for (let name of scripts) {
|
||||
) {
|
||||
let id = scriptMeta.length
|
||||
|
||||
function postWatchUpdate(
|
||||
meta: UserScriptMetaFull,
|
||||
error: string | null
|
||||
) {
|
||||
scriptMeta[id] = { meta, error }
|
||||
console.log('WATCH', name, meta.version)
|
||||
function update(result: runBuild) {
|
||||
console.log('WATCH', name, result.meta.version)
|
||||
scriptMeta[id] = result
|
||||
updateReadmeFile(scriptMeta)
|
||||
}
|
||||
|
||||
let [meta, error] = runBuild(name, postWatchUpdate)
|
||||
scriptMeta[id] = { meta, error }
|
||||
let result = runBuild(name, update)
|
||||
console.log(name, result.meta.version)
|
||||
|
||||
console.log(name, meta.version)
|
||||
scriptMeta[id] = result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import { readdirSync, readFileSync, writeFileSync } from 'fs'
|
||||
import { UserScriptMetaFull } from './types'
|
||||
import runBuild from './build'
|
||||
|
||||
export interface readmeData {
|
||||
meta: UserScriptMetaFull
|
||||
error: string | null
|
||||
}
|
||||
|
||||
export function updateReadmeFile(fileList: readmeData[]) {
|
||||
export function updateReadmeFile(fileList: runBuild[]) {
|
||||
let readmeFile = getReadmeFileName()
|
||||
if (readmeFile !== null) {
|
||||
let [readmeStart, readmeEnd] = readReadmeFile(readmeFile)
|
||||
@@ -33,8 +28,8 @@ function readmeDataErrorString(error: string | null): string {
|
||||
return `\n\n${error}`
|
||||
}
|
||||
|
||||
function readmeDataToString(readmeData: readmeData): string {
|
||||
let { meta, error } = readmeData
|
||||
function readmeDataToString(results: runBuild): string {
|
||||
let { meta, error } = results
|
||||
let errStr = error !== null ? '~~' : ''
|
||||
let errMsg = readmeDataErrorString(error)
|
||||
return `- ${errStr}[${meta.name}](${meta.downloadURL})${errStr}${errMsg}`
|
||||
|
||||
@@ -6,7 +6,12 @@ import {
|
||||
UserScriptMetaPartial,
|
||||
} from './types'
|
||||
|
||||
export default function (name: string): [UserScriptMetaFull, string] {
|
||||
export default interface readMeta {
|
||||
meta: UserScriptMetaFull
|
||||
metaString: string
|
||||
}
|
||||
|
||||
export default function readMeta(name: string) {
|
||||
var meta: UserScriptMetaFull = {
|
||||
name: name,
|
||||
namespace: 'zomo.dev',
|
||||
@@ -60,9 +65,9 @@ export default function (name: string): [UserScriptMetaFull, string] {
|
||||
excludematch: 'exclude-match',
|
||||
}
|
||||
|
||||
return [
|
||||
return {
|
||||
meta,
|
||||
`// ==UserScript==
|
||||
metaString: `// ==UserScript==
|
||||
${(Object.keys(meta) as Array<keyof UserScriptMetaFull>)
|
||||
.filter(key => {
|
||||
let val = meta[key]
|
||||
@@ -105,5 +110,5 @@ ${(Object.keys(meta) as Array<keyof UserScriptMetaFull>)
|
||||
.join('\n')}
|
||||
// ==/UserScript==
|
||||
`,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user