28 Commits

Author SHA1 Message Date
Jacob Nguyen
b369fdc196 Merge branch 'main' into experimental-serverless-build 2024-07-27 00:23:04 -05:00
Jacob Nguyen
6db6cf52a7 ea 2024-07-27 00:20:42 -05:00
Jacob Nguyen
7b99f02307 fix regression and clean up publish script 2024-06-13 00:01:12 -05:00
Jacob Nguyen
1990b3e158 add nonpromptable plugins install 2024-05-20 17:08:47 -05:00
Jacob Nguyen
08bb490d26 watch 2024-05-10 17:59:19 -05:00
Jacob Nguyen
4fb85d5f70 fix up typing gen for process env and watch mode 2024-05-10 17:57:03 -05:00
jacob
c69cc52b6f pluginify and simplify 2024-05-09 20:42:42 -05:00
jacob
fa3eb82aea extrapolate into plugin 2024-05-09 20:09:44 -05:00
jacob
21f483fc0f bundle presence and event modules 2024-05-03 16:14:42 -05:00
jacob
dc01c0cf79 fix merge 2024-05-03 15:56:11 -05:00
jacob
186b2fa2e5 b 2024-05-02 17:30:31 -05:00
jacob
8176da7801 out 2024-05-02 17:28:26 -05:00
Jacob Nguyen
4014fea984 prototype 2024-05-02 01:23:09 -05:00
jacob
cc6affb0a1 fix version gen 2024-05-01 17:40:16 -05:00
jacob
3ec56f951c consolidate 2024-05-01 17:25:16 -05:00
jacob
ec44400462 write handler 2024-05-01 17:11:44 -05:00
jacob
26de568c35 prg 2024-04-30 15:04:13 -05:00
Jacob Nguyen
925ff60134 /internal route 2024-04-29 00:08:26 -05:00
Jacob Nguyen
924810e1ac refactor out 2024-04-28 18:45:26 -05:00
jacob
f0fb5ff1b1 step 1 2024-04-28 13:50:56 -05:00
jacob
ca1c6e2869 fmt 2024-04-18 10:22:57 -05:00
Jacob Nguyen
524cf3770a more progress 2024-04-11 22:17:07 -05:00
Jacob Nguyen
e975d85d9b merge n progress 2024-04-11 18:59:05 -05:00
Jacob Nguyen
32628fa64b eol 2024-04-01 10:18:09 -05:00
Jacob Nguyen
1dadf54ad6 add 2024-03-29 00:11:40 -05:00
Jacob Nguyen
2465e8da1d plugin calling 2024-03-28 23:46:37 -05:00
Jacob Nguyen
fcca124c20 s 2024-03-22 02:32:11 -05:00
Jacob Nguyen
c9b2de0621 high hopes 2024-03-22 02:15:27 -05:00
7 changed files with 15 additions and 86 deletions

View File

@@ -2,32 +2,6 @@
All notable changes to this project will be documented in this file.
## [1.3.2](https://github.com/sern-handler/cli/compare/v1.3.1...v1.3.2) (2024-07-31)
### Bug Fixes
* make tsconfig work with comments/trailing commas ([#142](https://github.com/sern-handler/cli/issues/142)) ([53ca446](https://github.com/sern-handler/cli/commit/53ca446a38076ed7b165dbbb41f346f028b7e394))
## [1.3.1](https://github.com/sern-handler/cli/compare/v1.3.0...v1.3.1) (2024-07-27)
### Miscellaneous Chores
* release 1.3.1 ([2bb169f](https://github.com/sern-handler/cli/commit/2bb169f600172af8c8316b6c9420684a4de34e0d))
## [1.3.0](https://github.com/sern-handler/cli/compare/v1.2.1...v1.3.0) (2024-07-27)
### Features
* plugin, no prompt, bug fixes ([#139](https://github.com/sern-handler/cli/issues/139)) ([20364fa](https://github.com/sern-handler/cli/commit/20364fa20d1f3bf70a1c0cfefbc1d6c9365a4925))
### Bug Fixes
* fix publish command for bun & pnpm ([#137](https://github.com/sern-handler/cli/issues/137)) ([d581142](https://github.com/sern-handler/cli/commit/d581142f082ed888036e58aa33e9d88d84d34c2f))
## [1.2.1](https://github.com/sern-handler/cli/compare/v1.2.0...v1.2.1) (2024-02-08)

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@sern/cli",
"version": "1.3.2",
"version": "1.2.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@sern/cli",
"version": "1.3.2",
"version": "1.2.1",
"license": "MIT",
"dependencies": {
"@esbuild-kit/cjs-loader": "^2.4.2",

View File

@@ -1,6 +1,6 @@
{
"name": "@sern/cli",
"version": "1.3.2",
"version": "1.2.1",
"description": "Official CLI for @sern/handler",
"exports": "./dist/index.js",
"bin": {

View File

@@ -10,7 +10,6 @@ import { pathExists, pathExistsSync } from 'find-up';
import { mkdir, writeFile, readFile } from 'fs/promises';
import * as Preprocessor from '../utilities/preprocessor';
import { bold, magentaBright } from 'colorette';
import { parseTsConfig } from '../utilities/parseTsconfig';
const VALID_EXTENSIONS = ['.ts', '.js' ];
@@ -104,8 +103,8 @@ export async function build(options: Record<string, any>) {
}
assert(buildConfig.mode === 'development' || buildConfig.mode === 'production', 'Mode is not `production` or `development`');
try {
let config = await parseTsConfig(buildConfig.tsconfig!);
config?.extends && console.warn("Extend the generated tsconfig")
let config = JSON.parse(await readFile(buildConfig.tsconfig!, 'utf8'));
config.extends && console.warn("Extend the generated tsconfig")
} catch(e) {
console.error("no tsconfig / jsconfig found");
console.error(`Please create a ${sernConfig.language === 'javascript' ? 'jsconfig.json' : 'tsconfig.json' }`);

View File

@@ -52,6 +52,15 @@ program //
.option('-y, --yes', "Say yes to all prompts")
.option('-e, --env [path]', "Supply a path to a .env")
.action(async (...args) => importDynamic('command-clear.js').then((m) => m.commandClear(...args))));
program
.command('app')
.description('manage your discord application')
.addCommand(
new Command('update')
.description("Refresh your discord application.")
.option('-W --suppress-warnings', 'suppress experimental warning')
.action(async (...args) => importDynamic('app-update.js').then(m => m.appUpdate(...args))))
program
.command('build')
.description('Build your bot')

View File

@@ -1,7 +1,6 @@
import { findUp } from 'find-up';
import { readFile, rename, writeFile } from 'node:fs/promises';
import { fromCwd } from './fromCwd.js';
import { parseTsConfig } from './parseTsconfig.js';
/**
* It takes a string, finds the package.json file in the directory of the string, and changes the name
@@ -62,12 +61,10 @@ export async function editDirs(
});
if (tsconfig) {
const output = await parseTsConfig(tsconfig);
const output = JSON.parse(await readFile(tsconfig, 'utf8'));
if (!output) throw new Error("Can't read your tsconfig.json.");
if (!output.compilerOptions) throw new Error("Can't find compilerOptions in your tsconfig.json.");
output.compilerOptions.rootDir = srcName;
// This will strip comments/trailing commas from the tsconfig.json file
await writeFile(tsconfig, JSON.stringify(output, null, 2));
}

View File

@@ -1,50 +0,0 @@
import { resolve } from 'node:path';
import { readFile } from 'node:fs/promises';
interface CompilerOptions {
target: string;
module: string;
lib: string[];
allowJs: boolean;
checkJs: boolean;
jsx: string;
declaration: boolean;
sourceMap: boolean;
outDir: string;
rootDir: string;
strict: boolean;
esModuleInterop: boolean;
forceConsistentCasingInFileNames: boolean;
noEmit: boolean;
importHelpers: boolean;
isolatedModules: boolean;
moduleResolution: string;
resolveJsonModule: boolean;
noEmitHelpers: boolean;
}
interface TsConfig {
compilerOptions: CompilerOptions;
files: string[];
include: string[];
exclude: string[];
extends: string;
}
const cleanJson = (json: string) =>
json
.replace(/\/\/.*$/gm, '')
.replace(/\/\*[\s\S]*?\*\//gm, '')
.replace(/,\s*([}\]])/g, '$1');
export const parseTsConfig = async (path: string) => {
const absPath = resolve(path);
const fileContent = await readFile(absPath, 'utf-8');
const cleanContent = cleanJson(fileContent);
try {
return JSON.parse(cleanContent) as Partial<TsConfig>;
} catch (e) {
return null;
}
};