@ma3-pro-plugins/ma3-ts-plugin-builder
Version:
grandMA3 Typescript plugin build script
100 lines • 4.5 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createEntryConfig = exports.getTranspiledFileName = exports.createConfig = exports.createBaseConfig = void 0;
const logger_1 = __importDefault(require("../utils/logger"));
const path = __importStar(require("path"));
const MA_USB_PLUGINS_PATH = `grandMA3/gma3_library/datapools/plugins/`;
function createFSName(...parts) {
return parts.join(" - ");
}
function createBaseConfig(maconfig, buildConfig) {
var _a;
function assertThrow(condition, msg) {
if (!condition) {
logger_1.default.error(msg);
process.exit();
}
}
const maPluginsInstallPath = path.join(buildConfig.maInstallPath, "gma3_library/datapools/plugins/");
const { maPluginName, pluginVersion } = maconfig;
assertThrow(pluginVersion, "macofig.json missing 'pluginVersion' property");
const versionSuffix = `v${maconfig.pluginVersion}`;
const author = maconfig.author;
const authorX = author.replace(" ", "");
const pluginFolderNameWithVersion = buildConfig.isDev
? `${maPluginName}`
: createFSName(maPluginName, versionSuffix);
const pluginFSNameWithAuthorAndVersion = createFSName(author, maPluginName, versionSuffix);
const distRoot = path.join(process.cwd(), (_a = buildConfig.distPath) !== null && _a !== void 0 ? _a : "dist");
const distPath = path.join(distRoot, pluginFSNameWithAuthorAndVersion);
return {
author,
authorX,
distRoot,
distPath,
isDev: buildConfig.isDev,
maPluginsInstallPath,
pluginVersion,
pluginsPath: buildConfig.isDev ? path.join(maPluginsInstallPath) : path.join(distPath, MA_USB_PLUGINS_PATH),
pluginFolderPath: buildConfig.pluginFolderPath,
pluginFolderNameWithVersion,
pluginFSNameWithAuthorAndVersion,
pluginName: maPluginName,
relativePathToRoot: `./`,
srcPath: "./src/",
versionSuffix,
};
}
exports.createBaseConfig = createBaseConfig;
function createConfig(baseConfig, maTargetVersion) {
const { author, pluginsPath, pluginFolderNameWithVersion, pluginName, versionSuffix, isDev } = baseConfig;
const maPluginPathFirstPart = isDev ? `${author} DEV` : `${author}`;
const maPluginPath = path.join(maPluginPathFirstPart, pluginFolderNameWithVersion, `MA3 ${maTargetVersion}`);
const fullPluginName = isDev
? `${pluginName} DEV`
: `MA3 ${maTargetVersion} - ${author} - ${pluginName} - ${versionSuffix}`;
return Object.assign(Object.assign({}, baseConfig), { fullPluginName, targetPluginPath: path.join(pluginsPath, maPluginPath), maTargetVersion,
maPluginPath,
maPluginPathFirstPart });
}
exports.createConfig = createConfig;
function getTranspiledFileName(fileName) {
return `${path.basename(fileName, path.extname(fileName))}.lua`;
}
exports.getTranspiledFileName = getTranspiledFileName;
function createEntryConfig(fileName, config) {
const maPluginPath = config.maPluginPath;
const targetFileName = getTranspiledFileName(fileName);
return {
targetFileName,
targetBundlePath: path.join(config.pluginsPath, maPluginPath, targetFileName),
};
}
exports.createEntryConfig = createEntryConfig;
//# sourceMappingURL=config.js.map