Browse Source

- Push repo to npm registry.

- Remove unnecessary log prints.
- Download and create all required files.
- Generate technical repo files.
#Create Block from registry.
test-gpt-generated
Roman Axelrod 3 years ago
parent
commit
2a5daa2445
  1. 23
      create-block.js
  2. 20
      generators/block/index.js
  3. 7
      generators/block/templates/gitignore
  4. 11
      package-lock.json
  5. 18
      package.json
  6. 2
      server.js

23
create-block.js

@ -1,3 +1,5 @@
#!/usr/bin/env node
import {Command} from 'commander';
import path from 'path';
import fetch from "node-fetch";
@ -13,11 +15,17 @@ const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const isDev = process.env.NODE_ENV === 'development' || (config.has('isDev') && config.get('isDev')); // Check README file in case you get "missing files" error.
const blocksRegistry = isDev ? 'http://localhost:3020' : 'https://';
const blocksRegistry = isDev ? 'http://localhost:3020' : 'http://localhost:3020';
const blocksDirectory = isDev ? 'blocks/' : '';
console.log(__dirname);
try {
const blockName = await init();
console.log(`🎉 Done! \n\nCheck the "${blocksDirectory}${blockName}" directory. \n`);
} catch (e) {
console.log('Fail.');
}
async function init() {
const program = new Command();
@ -26,14 +34,18 @@ async function init() {
.name('create-block')
.description('AXE-WEB Platform Blocks');
const promise = new Promise(resolve => {
const promise = new Promise((resolve, reject) => {
program.command('pull')
.argument('<string>', 'Provide a full name of required block, for example: @axe-web/hero-block')
.action(async (blockName, options) => {
console.log('📦 Block to download:', blockName)
await getBlockSourceFiles(blockName);
const status = await getBlockSourceFiles(blockName);
if (status) {
resolve(blockName);
} else {
reject();
}
});
});
@ -49,6 +61,7 @@ async function getBlockSourceFiles(blockName) {
const response = await fetch(`${blocksRegistry}?${queryString.toString()}`);
const responseData = await response.json();
if (!responseData || !responseData.name) {
console.log("⚠️ Block not found, please contact administrator.");
return;
}
@ -78,7 +91,7 @@ async function getBlockSourceFiles(blockName) {
blockGroupName: responseData.project,
version: responseData.version,
devToolSource: defaultGitRepo,
}, __dirname);
}, __dirname, `${blocksDirectory}${responseData.name}`);
if (responseData.config.design_files) {
await downloadDesignFiles(responseData.name, responseData.config.design_files);
@ -87,6 +100,8 @@ async function getBlockSourceFiles(blockName) {
await createDataFiles(responseData.name, responseData.config.data_sources);
await createConfigFile(responseData.name, responseData.config);
return true;
}
async function createConfigFile(blockName, config = {}) {

20
generators/block/index.js

@ -11,7 +11,8 @@ const __dirname = path.dirname(__filename);
const baseDir = path.join(__dirname, '../../');
export const defaultGitRepo = 'git+https://roman-axe-web@bitbucket.org/axeweb/create-block-dev-tool.git#master';
// export const defaultGitRepo = 'git+https://roman-axe-web@bitbucket.org/axeweb/create-block-dev-tool.git#master';
export const defaultGitRepo = '@axe-web/create-block@1.0.8';
export default class extends Generator {
async prompting() {
@ -128,25 +129,24 @@ export default class extends Generator {
);
// Technical Project files.
createTechnicalFiles(data, baseDir).then();
createTechnicalFiles(data, baseDir, `blocks/${data.name}`).then();
}
}
export async function createTechnicalFiles(data, baseDir) {
const pathDist = path.join(baseDir, `blocks/${data.name}`);
export async function createTechnicalFiles(data, baseDir, distPath) {
const pathDist = distPath; //path.join(baseDir, distPath);
const generatorsPath = path.join(baseDir, 'generators/block/templates');
const store = memFs.create();
const filesystem = editor.create(store);
const files = ['package.json', 'README.md', '.editorconfig', '.gitignore', 'block.json'];
const files = ['package.json', 'README.md', '.editorconfig', {from: 'gitignore', to: '.gitignore'}, 'block.json'];
for (let file of files) {
await filesystem.copyTplAsync(
`${generatorsPath}/${file}`,
`${pathDist}/${file}`,
data
);
const from = typeof file !== 'string' ? `${generatorsPath}/${file.from}` : `${generatorsPath}/${file}`;
const to = typeof file !== 'string' ? `${pathDist}/${file.to}` : `${pathDist}/${file}`;
await filesystem.copyTplAsync(from, to, data);
}
return filesystem.commit(); // Promise

7
generators/block/templates/gitignore

@ -0,0 +1,7 @@
# Basic
.idea
.DS_Store
node_modules
vendor
# Custom

11
package-lock.json

@ -1,12 +1,12 @@
{
"name": "create-block-dev-tool",
"version": "1.0.6",
"name": "@axe-web/create-block",
"version": "1.0.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "create-block-dev-tool",
"version": "1.0.6",
"name": "@axe-web/create-block",
"version": "1.0.7",
"license": "ISC",
"dependencies": {
"@braintree/sanitize-url": "^6.0.0",
@ -39,7 +39,8 @@
},
"bin": {
"component-build": "build.js",
"component-dev": "server.js"
"component-dev": "server.js",
"create-block": "create-block.js pull"
},
"devDependencies": {
"@babel/preset-react": "^7.18.6",

18
package.json

@ -1,6 +1,11 @@
{
"name": "create-block-dev-tool",
"version": "1.0.6",
"name": "@axe-web/create-block",
"version": "1.0.8",
"author": {
"name": "AXE-WEB",
"email": "office@axe-web.com",
"url": "https://axe-web.com/"
},
"scripts": {
"start": "component-dev",
"dev": "NODE_ENV=development node server.js",
@ -12,7 +17,6 @@
"dev-js": "rollup --config rollup.config.js --watch"
},
"license": "ISC",
"main": "server.js",
"type": "module",
"dependencies": {
"@braintree/sanitize-url": "^6.0.0",
@ -58,7 +62,13 @@
"styled-components": "^5.3.5"
},
"bin": {
"create-block": "./create-block.js",
"component-dev": "./server.js",
"component-build": "./build.js"
}
},
"files": [
"generators/block/templates/.gitignore",
"generators/block/**/*",
"helpers.js"
]
}

2
server.js

@ -25,7 +25,7 @@ import archiver from 'archiver';
*/
const isDev = process.env.NODE_ENV === 'development' || (config.has('isDev') && config.get('isDev')); // Check README file in case you get "missing files" error.
const blocksRegistry = isDev ? 'http://localhost:3020' : '';
const blocksRegistry = isDev ? 'http://localhost:3020' : 'http://localhost:3020';
const modulePath = isDev ? '' : 'node_modules/create-block-dev-tool/';
const projectDir = modulePath;

Loading…
Cancel
Save