30 Commits

Author SHA1 Message Date
github-actions[bot]
ebc688022e chore(main): release 0.4.2 (#66)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-28 12:33:13 +05:30
renovate[bot]
810763837c chore(deps): lock file maintenance (#65)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-25 13:26:49 +05:30
renovate[bot]
fa331ae0c0 chore(deps): lock file maintenance (#64)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-25 08:37:41 +05:30
Evo
6c034a568f refactor(init): improve node version check (#63) 2022-07-22 19:22:54 +05:30
EvolutionX
9158e66bb4 chore(init): update naming of variable 2022-07-21 23:15:27 +05:30
renovate[bot]
af593bf84a chore(deps): update actions/setup-node digest to 2fddd88 (#60)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-18 09:39:56 +05:30
renovate[bot]
f84e7ac8f5 chore(deps): lock file maintenance (#61)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-18 09:24:27 +05:30
renovate[bot]
08b8a13d16 chore(deps): lock file maintenance (#59) 2022-07-11 15:28:32 +05:30
Evo
c4f8e45bdc feat: switch to undici (#58) 2022-07-10 11:09:22 +05:30
EvolutionX
83e841a341 chore: update scripts 2022-07-07 23:05:47 +05:30
EvolutionX
ab2f8016b6 chore: remove standard-version 2022-07-07 23:05:00 +05:30
github-actions[bot]
93ef62bc9d chore(main): release 0.4.1 (#57)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-07 22:49:09 +05:30
EvolutionX
e454ddaaab chore: stuff 2022-07-07 22:45:42 +05:30
EvolutionX
e3ee6d5428 chore: stuff 2022-07-07 22:43:39 +05:30
EvolutionX
02eec5f926 chore: stuff 2022-07-07 22:39:04 +05:30
EvolutionX
aa1e11b24a chore: stuff 2022-07-07 22:37:36 +05:30
EvolutionX
39817e6b4f chore: stuff 2022-07-07 22:36:06 +05:30
github-actions[bot]
a0d5890ea7 chore(main): release 0.4.0 (#56)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-07 22:34:55 +05:30
EvolutionX
2fa5a360ef chore: fix workflow 2022-07-07 22:33:24 +05:30
EvolutionX
1e07b5f1c8 chore: revert versions 2022-07-07 22:29:55 +05:30
EvolutionX
c312ca794c ci: update workflows 2022-07-07 22:24:45 +05:30
EvolutionX
eee3bb8db6 docs(changelog): update changelog 2022-07-07 22:04:43 +05:30
github-actions[bot]
d9ea304fa6 chore(main): release 0.3.0 (#55)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-07 21:53:27 +05:30
EvolutionX
52725ea7f6 ci: remove sign off 2022-07-07 21:50:26 +05:30
Evo
b24a053d1c feat(init): add --sync flag (#53) 2022-07-07 10:52:49 -05:00
EvolutionX
419b7bce22 chore: add .gitattributes to npmignore 2022-07-07 21:13:08 +05:30
EvolutionX
5a24ae4819 ci: new workflow release 2022-07-07 21:12:08 +05:30
EvolutionX
8f6b1c690f ci: rename release to publish 2022-07-07 21:03:26 +05:30
xxDeveloper
46ec745b88 docs(README): Remove stats (#52) 2022-07-07 20:26:46 +05:30
Evo
6472683c19 chore: add website as homepage 2022-07-06 09:14:15 +05:30
14 changed files with 289 additions and 7000 deletions

View File

@@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Use Node.js
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17
registry-url: 'https://registry.npmjs.org/'

View File

@@ -4,6 +4,9 @@ on:
push:
branches:
- main
paths:
- 'src/**'
- 'package.json'
jobs:
Publish:
@@ -15,7 +18,7 @@ jobs:
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Set up Node.js
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17
registry-url: 'https://registry.npmjs.org'

View File

@@ -20,7 +20,7 @@ jobs:
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Set up Node.js
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17
@@ -40,7 +40,7 @@ jobs:
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Set up Node.js
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17

View File

@@ -1,8 +1,6 @@
name: Release
name: Publish
on:
release:
types: [published]
workflow_dispatch:
jobs:
@@ -15,7 +13,7 @@ jobs:
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Set up Node.js
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17
registry-url: 'https://registry.npmjs.org'

32
.github/workflows/release-please.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Release
on:
workflow_dispatch:
jobs:
Release:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: node
bump-patch-for-minor-pre-major: true
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
if: ${{ steps.release.outputs.release_created }}
- uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3
with:
node-version: 17
registry-url: 'https://registry.npmjs.org'
if: ${{ steps.release.outputs.release_created }}
- run: npm i
if: ${{ steps.release.outputs.release_created }}
- run: npm link
if: ${{ steps.release.outputs.release_created }}
- run: sern
if: ${{ steps.release.outputs.release_created }}
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
if: ${{ steps.release.outputs.release_created }}

View File

@@ -2,4 +2,5 @@ renovate.json
tsconfig.json
.prettierignore
.prettierrc
.gitattributes
.github/

View File

@@ -1,6 +1,56 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
All notable changes to this project will be documented in this file.
## [0.4.2](https://github.com/sern-handler/cli/compare/v0.4.1...v0.4.2) (2022-07-28)
### Features
* switch to undici ([#58](https://github.com/sern-handler/cli/issues/58)) ([c4f8e45](https://github.com/sern-handler/cli/commit/c4f8e45bdc0af5a3bbd394d2b9f852f4a946114c))
## [0.4.1](https://github.com/sern-handler/cli/compare/v0.4.0...v0.4.1) (2022-07-07)
### Features
* add `sern.config.json` ([#38](https://github.com/sern-handler/cli/issues/38)) ([3eb6383](https://github.com/sern-handler/cli/commit/3eb63835d9f6ff3f3426e017ea87344c00bb13a4))
* add basic type checking ([eb85a7a](https://github.com/sern-handler/cli/commit/eb85a7a8f2f6252f719fd396d42cded2d9eb0918))
* add commander and start plugins installer ([#36](https://github.com/sern-handler/cli/issues/36)) ([b2e6236](https://github.com/sern-handler/cli/commit/b2e6236dde6f4848dde6fc23a6222415824bb294))
* add default settings for the -y flag ([#19](https://github.com/sern-handler/cli/issues/19)) ([e5f607e](https://github.com/sern-handler/cli/commit/e5f607e99875e105cbb148cab3ed1bbc3771ae35))
* added actions and formatting stuff ([b302a8b](https://github.com/sern-handler/cli/commit/b302a8b362257fb2cea72b7e1fc66bea351c511f))
* added help command ([ca23d17](https://github.com/sern-handler/cli/commit/ca23d17670663b62e23849e2350deef208bfc100))
* Added version command & created readme ([#25](https://github.com/sern-handler/cli/issues/25)) ([7535a5e](https://github.com/sern-handler/cli/commit/7535a5e0267c9e682b7bc8470206c0597f5ba9a1))
* bump all files to GitHub 🎉 ([01b39ad](https://github.com/sern-handler/cli/commit/01b39ad9b78f0a67e23ba66c10262082675eeed5))
* cli is now functional ([65f38f3](https://github.com/sern-handler/cli/commit/65f38f3eb2b4e8e2bd136b9bd8f37f1966be1661))
* cli is now functional ([5021d28](https://github.com/sern-handler/cli/commit/5021d28bca6ebe1cb4a548f5e595b1220f222c98))
* create typescript dockerfile and the extra command ([#28](https://github.com/sern-handler/cli/issues/28)) ([b1a8683](https://github.com/sern-handler/cli/commit/b1a86833734258e0a22da18c2c780133c199d5cd))
* enable extra command & jsdockerfile ([#43](https://github.com/sern-handler/cli/issues/43)) ([7cf62c0](https://github.com/sern-handler/cli/commit/7cf62c03083b8ebbb8a6a63fd8efe592344d5230))
* **init:** add --sync flag ([#53](https://github.com/sern-handler/cli/issues/53)) ([b24a053](https://github.com/sern-handler/cli/commit/b24a053d1cb8c00d49a96b6d536dd17205b9fa0e))
* making sern help message look better, adding ascii art ([#50](https://github.com/sern-handler/cli/issues/50)) ([9bd2b0f](https://github.com/sern-handler/cli/commit/9bd2b0f38be835a31fceeabdf60487a1424cdf7e))
* more questions, better handling, better ui ([f931802](https://github.com/sern-handler/cli/commit/f9318024bb4c62cee1a7ddfc6af4117c22ca6020))
* now edits the directories as per user's choice ([fec1c8e](https://github.com/sern-handler/cli/commit/fec1c8e24c5ca7752f9e74b0fc3a32716bb42299))
* plugin command!!! ([#45](https://github.com/sern-handler/cli/issues/45)) ([895a489](https://github.com/sern-handler/cli/commit/895a48910e32813f8aa25f57302a4123fc631c2c))
* rebase changes ([cae3c59](https://github.com/sern-handler/cli/commit/cae3c597c3da6aa836fb9c70b8555814e8fc5db0))
* refactored code and added custom handling of commands ([0e97b7d](https://github.com/sern-handler/cli/commit/0e97b7db8afed7f625eeb0a43aa992441ab49b39))
* **skip:** option to skip package manager selection ([#20](https://github.com/sern-handler/cli/issues/20)) ([7b1d535](https://github.com/sern-handler/cli/commit/7b1d53520f0aa35e48b72d61d2f1a85ffdfdfec8))
* using degit to clone the templates ([ddb0285](https://github.com/sern-handler/cli/commit/ddb02850f2096d8c9ec36e766ea74e10d2efce3f))
### Bug Fixes
* avoid crashing of cli when no plugin found ([#47](https://github.com/sern-handler/cli/issues/47)) ([8c45327](https://github.com/sern-handler/cli/commit/8c45327094b2560f7b5c813a1c1925920bd46038))
* fix degit erroring when there's no cache ([fc01554](https://github.com/sern-handler/cli/commit/fc01554fae2726f4ebd39a66ef1cb634a421dd9f))
* **install.js:** fix mistyped. cached -> cache ([fa68936](https://github.com/sern-handler/cli/commit/fa689360ce054c63dab77e8b8f0b794b3b8736e4))
* no more crashing cli if yarn isnt present ([#24](https://github.com/sern-handler/cli/issues/24)) ([88893a3](https://github.com/sern-handler/cli/commit/88893a35cd1144867713de32c5bf52c2dc702450))
* no more error when selecting js ([cc410bd](https://github.com/sern-handler/cli/commit/cc410bd370a751833dbc5fc04030bfa53a6c1fd2))
* prettier things ([1265224](https://github.com/sern-handler/cli/commit/1265224bb9f93cb104915be50c1c2ea1e3924955))
* removed useless line ([f268b1c](https://github.com/sern-handler/cli/commit/f268b1c62fd4d5823d483a33cfef2e2d7f7b127c))
### Performance Improvements
* **init.js:** string.match -> regex.test for node version ([f760dbc](https://github.com/sern-handler/cli/commit/f760dbc6e39e098496f25a5c4ee90855a2bb3bd5))
### [0.2.2](https://github.com/sern-handler/cli/compare/v0.2.1...v0.2.2) (2022-07-05)

View File

@@ -54,7 +54,3 @@ Adding the `-y` flag sets up project as default. ( **Note** : the default initia
sern runs on your plugins. Contribute to the [repository](https://github.com/sern-handler/awesome-plugins) and then install the plugins via our cli! <br>
Run `sern plugins` to see all installable options
## Stats
![Alt](https://repobeats.axiom.co/api/embed/5eb8cf0f79fecee29cc81cd2eca5f6321981304e.svg 'Feel free to contribute')

7106
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@sern/cli",
"version": "0.2.2",
"version": "0.4.2",
"description": "A CLI for @sern/handler",
"exports": "./src/index.js",
"bin": {
@@ -9,9 +9,6 @@
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"release": "standard-version",
"preview": "standard-version --dry-run",
"push": "git push --follow-tags",
"format": "prettier --check .",
"fix": "prettier --write ."
},
@@ -31,28 +28,20 @@
"bugs": {
"url": "https://github.com/sern-handler/cli/issues"
},
"homepage": "https://github.com/sern-handler/cli#readme",
"homepage": "https://sern-handler.js.org",
"dependencies": {
"axios": "^0.27.2",
"colorette": "^2.0.16",
"commander": "^9.3.0",
"execa": "^6.1.0",
"find-up": "6.3.0",
"ora": "^6.1.0",
"prompts": "2.4.2"
"prompts": "2.4.2",
"undici": "^5.6.1"
},
"devDependencies": {
"@favware/npm-deprecate": "1.0.4",
"@types/prompts": "2.0.14",
"cz-conventional-changelog": "3.3.0",
"eslint": "8.19.0",
"prettier": "2.7.1",
"standard-version": "9.5.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
"prettier": "2.7.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",

View File

@@ -19,13 +19,20 @@ import { editDirs, editMain } from '../utilities/edits.js';
import { writeFile } from 'fs/promises';
const { prompt } = prompts;
/**
* @param {{ y: string; sync: string; }} flags
*/
export async function init(flags) {
// * Check if node version is valid
const node = await execa('node', ['--version']);
if (/v1(([0-6]\.[2-9])|([0-5]\.[0-9]))/gm.test(node.stdout)) {
const { version } = process;
const [major, minor] = version.split('.');
const majorNum = parseInt(major.slice(1));
const minorNum = parseInt(minor);
if (majorNum < 16 || (majorNum === 16 && minorNum < 10)) {
console.log(
yellowBright(
`\nYou are using Node ${node.stdout}\nPlease upgrade to Node 16.10.x or higher!\n`
`\nYou are using Node ${version}\nPlease upgrade to Node 16.10.x or higher!\n`
)
);
@@ -46,6 +53,8 @@ export async function init(flags) {
main_dir: 'src',
cmds_dir: 'commands',
};
} else if (flags.sync) {
data = await prompt([lang, main_dir, cmds_dir]);
} else {
data = await prompt([name, lang, main_dir, cmds_dir]);
git_init = (await prompt([gitInit])).gitinit;
@@ -59,22 +68,32 @@ export async function init(flags) {
commands: data.cmds_dir,
},
};
const file = JSON.stringify(config, null, 2);
if (Object.keys(data).length < 4) process.exit(1);
const requiredData = flags.sync !== undefined ? 3 : 4;
const receivedData = Object.keys(data).length;
const incompleteDataCondition = receivedData < requiredData;
await cloneRepo(data.lang, data.name);
if (incompleteDataCondition) process.exit(1);
if (!flags.sync) await cloneRepo(data.lang, data.name);
const pkg = await findUp('package.json', {
cwd: process.cwd() + '/' + data.name,
});
if (!pkg) throw new Error('No package.json found! Clone Failed');
if (!pkg) throw new Error('No package.json found!');
if (pkg) {
await writeFile(pkg.replace('package.json', 'sern.config.json'), file);
}
if (flags.sync) {
console.log('Project was successfully synced!');
process.exit(0);
}
git_init ? await git(data) : console.log(`Skipping git init...\n`);
let choice;

View File

@@ -1,6 +1,6 @@
import { pluginsQ } from '../prompts/plugin.js';
import prompts from 'prompts';
import axios from 'axios';
import { fetch } from 'undici';
import fs from 'fs';
import { greenBright } from 'colorette';
const { prompt } = prompts;
@@ -31,14 +31,18 @@ export async function plugins() {
* @returns File
*/
async function download(url) {
const res = await axios.default.get(url);
const data = res.data;
const data = await fetch(url, { method: 'GET' })
.then((res) => res.text())
.catch(() => null);
if (!data) throw new Error('Download failed! Kindly contact developers');
const dir = `${process.cwd()}/src/plugins`;
const filedir = `${process.cwd()}/src/plugins/${url.split('/').pop()}`;
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
const file = fs.writeFileSync(filedir, data);
return file;
}

View File

@@ -19,6 +19,7 @@ program
.command(init.name)
.description('Quickest way to scaffold a new project')
.option('-y', 'Finishes setup as default')
.option('-s, --sync', 'Syncs the project and generates sern.config.json')
.action(init);
program

View File

@@ -1,13 +1,17 @@
import axios from 'axios';
import { fetch } from 'undici';
import { getLang } from '../utilities/getLang.js';
async function gimmechoices() {
const lang =
(await getLang()) === 'typescript' ? 'TypeScript' : 'JavaScript';
(await getLang().catch(() => null)) === 'typescript'
? 'TypeScript'
: 'JavaScript';
const link = `https://api.github.com/repos/sern-handler/awesome-plugins/contents/${lang}`;
const resp = await axios.default.get(link).catch(() => null);
const resp = await fetch(link).catch(() => null);
if (!resp) return { title: 'No plugins found!', value: '', disabled: true };
const { data } = resp;
const data = await resp.json();
const choices = data.map(
(/** @type {{ name: string; download_url: string; }} */ e) => ({
title: e.name,