@bscotch/stitch
Version:
Stitch: The GameMaker Studio 2 Asset Pipeline Development Kit.
43 lines • 1.41 kB
JavaScript
import { keysOf } from '@bscotch/utility';
import { parse as parseArgs } from 'ts-command-line-args';
import { StitchProject } from '../../index.js';
import { assert } from '../../utility/errors.js';
import { globalParams } from './params.global.js';
export * from './params.global.js';
export * from './params.merge.js';
export * from './params.types.js';
export async function loadProjectFromArgs(options) {
return await StitchProject.load({
projectPath: options.targetProject,
dangerouslyAllowDirtyWorkingDir: options.force,
readOnly: options.readOnly,
});
}
export function parseStitchArgs(args, info) {
const argsConfig = {
...args,
...globalParams,
};
const argNames = keysOf(argsConfig);
const groups = argNames.map((name) => {
// @ts-expect-error
const { group } = argsConfig[name];
assert(group, `Argument definition for ${name} does not have a group.`);
return group;
});
return parseArgs(argsConfig, {
// @ts-expect-error
helpArg: 'help',
headerContentSections: [
{
header: info.title,
content: info.description,
},
],
optionSections: [...new Set(groups)].map((groupName) => ({
group: groupName,
header: groupName,
})),
});
}
//# sourceMappingURL=params.js.map