You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
8.6 KiB
89 lines
8.6 KiB
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.BaseTemplate = void 0;
|
|
const path_1 = __importDefault(require("path"));
|
|
const debug_1 = __importDefault(require("debug"));
|
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
const determine_author_1 = __importDefault(require("./determine-author"));
|
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
const currentForgeVersion = require('../package.json').version;
|
|
const d = (0, debug_1.default)('electron-forge:template:base');
|
|
const tmplDir = path_1.default.resolve(__dirname, '../tmpl');
|
|
class BaseTemplate {
|
|
constructor() {
|
|
this.templateDir = tmplDir;
|
|
this.requiredForgeVersion = currentForgeVersion;
|
|
}
|
|
get devDependencies() {
|
|
const packageJSONPath = path_1.default.join(this.templateDir, 'package.json');
|
|
if (fs_extra_1.default.pathExistsSync(packageJSONPath)) {
|
|
const packageDevDeps = fs_extra_1.default.readJsonSync(packageJSONPath).devDependencies;
|
|
if (packageDevDeps) {
|
|
return Object.entries(packageDevDeps).map(([packageName, version]) => {
|
|
if (version === 'ELECTRON_FORGE/VERSION') {
|
|
version = `^${currentForgeVersion}`;
|
|
}
|
|
return `${packageName}@${version}`;
|
|
});
|
|
}
|
|
}
|
|
return [];
|
|
}
|
|
async initializeTemplate(directory, { copyCIFiles }) {
|
|
return [
|
|
{
|
|
title: 'Copying starter files',
|
|
task: async () => {
|
|
d('creating directory:', path_1.default.resolve(directory, 'src'));
|
|
await fs_extra_1.default.mkdirs(path_1.default.resolve(directory, 'src'));
|
|
const rootFiles = ['_gitignore', 'forge.config.js'];
|
|
if (copyCIFiles) {
|
|
d(`Copying CI files is currently not supported - this will be updated in a later version of Forge`);
|
|
}
|
|
const srcFiles = ['index.css', 'index.js', 'index.html', 'preload.js'];
|
|
for (const file of rootFiles) {
|
|
await this.copy(path_1.default.resolve(tmplDir, file), path_1.default.resolve(directory, file.replace(/^_/, '.')));
|
|
}
|
|
for (const file of srcFiles) {
|
|
await this.copy(path_1.default.resolve(tmplDir, file), path_1.default.resolve(directory, 'src', file));
|
|
}
|
|
},
|
|
},
|
|
{
|
|
title: 'Initializing package.json',
|
|
task: async () => {
|
|
await this.initializePackageJSON(directory);
|
|
},
|
|
},
|
|
];
|
|
}
|
|
async copy(source, target) {
|
|
d(`copying "${source}" --> "${target}"`);
|
|
await fs_extra_1.default.copy(source, target);
|
|
}
|
|
async copyTemplateFile(destDir, basename) {
|
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
await this.copy(path_1.default.join(this.templateDir, basename), path_1.default.resolve(destDir, basename));
|
|
}
|
|
async initializePackageJSON(directory) {
|
|
const packageJSON = await fs_extra_1.default.readJson(path_1.default.resolve(__dirname, '../tmpl/package.json'));
|
|
packageJSON.productName = packageJSON.name = path_1.default.basename(directory).toLowerCase();
|
|
packageJSON.author = await (0, determine_author_1.default)(directory);
|
|
packageJSON.scripts.lint = 'echo "No linting configured"';
|
|
d('writing package.json to:', directory);
|
|
await fs_extra_1.default.writeJson(path_1.default.resolve(directory, 'package.json'), packageJSON, { spaces: 2 });
|
|
}
|
|
async updateFileByLine(inputPath, lineHandler, outputPath) {
|
|
const fileContents = (await fs_extra_1.default.readFile(inputPath, 'utf8')).split('\n').map(lineHandler).join('\n');
|
|
await fs_extra_1.default.writeFile(outputPath || inputPath, fileContents);
|
|
if (outputPath !== undefined) {
|
|
await fs_extra_1.default.remove(inputPath);
|
|
}
|
|
}
|
|
}
|
|
exports.BaseTemplate = BaseTemplate;
|
|
exports.default = new BaseTemplate();
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VUZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBd0I7QUFHeEIsa0RBQTBCO0FBQzFCLHdEQUEwQjtBQUUxQiwwRUFBaUQ7QUFFakQsOERBQThEO0FBQzlELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLDhCQUE4QixDQUFDLENBQUM7QUFDaEQsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFbkQsTUFBYSxZQUFZO0lBQXpCO1FBQ1MsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFFdEIseUJBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUE2RXBELENBQUM7SUEzRUMsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sZUFBZSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNwRSxJQUFJLGtCQUFFLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sY0FBYyxHQUFHLGtCQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUN4RSxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7b0JBQ25FLElBQUksT0FBTyxLQUFLLHdCQUF3QixFQUFFO3dCQUN4QyxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO3FCQUNyQztvQkFDRCxPQUFPLEdBQUcsV0FBVyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dC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
|