Browse Source

Exclude YeoMan from the project.

Make the npm-install process faster.
test-gpt-generated
Roman Axelrod 3 years ago
parent
commit
05660eb4e4
  1. 113
      build.js
  2. 3
      helpers.js
  3. 6170
      package-lock.json
  4. 5
      package.json

113
build.js

@ -1,39 +1,71 @@
#!/usr/bin/env node #!/usr/bin/env node
// For development purposes - run `npm run build-platform`.
import {exec} from 'child_process';
import config from 'config'; import config from 'config';
import Generator from "yeoman-generator"; import path from "path";
import yeoman from 'yeoman-environment'; import prompts from "prompts";
import {exec} from 'child_process';
import {buildHubspot} from "./platforms/hubspot/hubspot-adapter.js"; import {buildHubspot} from "./platforms/hubspot/hubspot-adapter.js";
import {getConfigs} from "./helpers.js"; import {getConfigs} from "./helpers.js";
import {buildWordPress} from "./platforms/wordpress/wordpress-adapter.js"; import {buildWordPress} from "./platforms/wordpress/wordpress-adapter.js";
import path from "path";
const {modulesPath, projectPath} = getConfigs(); const {isDev, modulesPath, projectPath, developmentBlockName} = getConfigs();
const blockName = isDev ? developmentBlockName : config.has('blockName') ? config.get('blockName') : developmentBlockName;
const blockName = config.has('blockName') ? config.get('blockName') : 'development'; export const PLATFORM_OPTIONS = [{
name: 'wordpress',
title: 'WordPress'
}, {
name: 'wordpress-blocks',
title: 'WordPress Block'
}, {
name: 'hubspot',
title: 'Hubspot'
}, {
name: 'hubspot-email',
title: 'Hubspot Email'
}, {
name: 'javascript',
title: 'JavaScript'
}, {
name: 'php',
title: 'PHP'
}];
class buildGenerator extends Generator { const data = await getExportData();
async prompting() { const selectedPlatform = PLATFORM_OPTIONS[data['platform']];
this.data = await this.prompt([ await buildExportFiles(selectedPlatform);
{
type: "list",
name: "platform",
message: "Choose Platform",
choices: ['WordPress', 'WordPress Block', 'Hubspot', 'Hubspot Email', 'JavaScript', 'PHP'],
default: 'WordPress'
}
])
}
writing() { console.log('--------------------\nDone!');
new Promise((resolve => {
if (['WordPress', 'PHP'].includes(this.data.platform)) { //
// Functions
//
export async function buildExportFiles(platform) {
if (['wordpress', 'php'].includes(platform.name)) {
const backPath = modulesPath ? modulesPath.split('/').map(() => '..').join('/') : ''; const backPath = modulesPath ? modulesPath.split('/').map(() => '..').join('/') : '';
return new Promise((resolve, reject) => {
const phpGeneratorPath = path.join(modulesPath, 'platforms', 'php'); const phpGeneratorPath = path.join(modulesPath, 'platforms', 'php');
exec(`cd ${phpGeneratorPath} && composer install && php build.php '${blockName}' '${backPath}' '${projectPath}'`, function (error, stdout) { await execCommand(`cd ${phpGeneratorPath} && composer install && php build.php '${blockName}' '${backPath}' '${projectPath}'`);
if (platform.name === 'wordpress') {
await buildWordPress();
} else {
if (platform.name === 'wordpress-blocks') {
await buildWordPress(true);
}
}
} else if (platform.name === 'hubspot-email') {
await buildHubspot(blockName)
} else if (platform.name === 'hubspot') {
console.log('"Hubspot" Coming soon...');
}
}
export function execCommand(cmd = '') {
return new Promise((resolve, reject) => {
exec(cmd, function (error, stdout) {
if (error) { if (error) {
console.log('Error:', error) console.log('Error:', error)
reject(error); reject(error);
@ -42,33 +74,18 @@ class buildGenerator extends Generator {
console.log(stdout); console.log(stdout);
resolve(); resolve();
}); });
}).then(() => {
if (this.data.platform === 'WordPress') {
return buildWordPress();
}
if (this.data.platform === 'WordPress Block') {
return buildWordPress(true);
}
});
} else if (this.data.platform === 'Hubspot Email') {
buildHubspot(blockName)
.then(() => {
resolve();
}); });
} else if (this.data.platform === 'Hubspot') {
console.log('"Hubspot" Coming soon...');
resolve();
} else {
resolve();
} }
}))
.then(() => { function getExportData() {
console.log('--------------------\nDone!'); return prompts([
}); {
type: "select",
name: "platform",
message: "Choose Platform",
choices: PLATFORM_OPTIONS.map(item => item.title),
default: 'WordPress'
} }
]);
} }
const build = new buildGenerator([], {env: yeoman.createEnv()}, {});
build.run().then(() => null);

3
helpers.js

@ -3,6 +3,7 @@ import config from 'config';
import {fileURLToPath} from 'url'; import {fileURLToPath} from 'url';
import memFs from 'mem-fs'; import memFs from 'mem-fs';
import editor from 'mem-fs-editor'; import editor from 'mem-fs-editor';
import fsExtra from "fs-extra";
const __filename = fileURLToPath(import.meta.url); const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename); const __dirname = path.dirname(__filename);
@ -19,8 +20,6 @@ export function getConfigs() {
}; };
} }
import fsExtra from "fs-extra";
export async function readJSONFile(jsonFile) { export async function readJSONFile(jsonFile) {
let data = {}; let data = {};

6170
package-lock.json

File diff suppressed because it is too large

5
package.json

@ -37,10 +37,9 @@
"node-fetch": "^3.2.10", "node-fetch": "^3.2.10",
"open": "^8.4.0", "open": "^8.4.0",
"plugin-error": "^2.0.0", "plugin-error": "^2.0.0",
"prompts": "^2.4.2",
"sanitize-html": "^2.7.1", "sanitize-html": "^2.7.1",
"sass": "^1.50.1", "sass": "^1.50.1"
"yeoman-environment": "^3.10.0",
"yeoman-generator": "^5.6.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-react": "^7.18.6", "@babel/preset-react": "^7.18.6",

Loading…
Cancel
Save