mirror of
https://github.com/morten-olsen/mini-loader.git
synced 2026-02-08 01:36:26 +01:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5d8cf3a51 | ||
|
|
5154fbb4a5 |
60
.github/workflows/release.yml
vendored
60
.github/workflows/release.yml
vendored
@@ -91,33 +91,33 @@ jobs:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
# release-npm:
|
||||
# if: github.ref == 'refs/heads/main'
|
||||
# runs-on: ubuntu-latest
|
||||
# needs: [build, update-release-draft]
|
||||
# permissions:
|
||||
# contents: read
|
||||
# packages: write
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# with:
|
||||
# fetch-depth: 0
|
||||
# - run: corepack enable
|
||||
# - uses: actions/setup-node@v3
|
||||
# with:
|
||||
# cache: '${{ env.NODE_CACHE }}'
|
||||
# node-version: '${{ env.NODE_VERSION }}'
|
||||
# scope: '${{ env.NODE_SCOPE }}'
|
||||
# - uses: actions/download-artifact@v3
|
||||
# with:
|
||||
# name: lib
|
||||
# path: ./
|
||||
# - run: |
|
||||
# pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
|
||||
# pnpm install
|
||||
# git config user.name "Github Actions Bot"
|
||||
# git config user.email "<>"
|
||||
# node scripts/set-version.ts $(git describe --tag --abbrev=0)
|
||||
# pnpm publish -r --publish-branch main --access public --no-git-checks
|
||||
# env:
|
||||
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
release-npm:
|
||||
if: github.ref == 'refs/heads/main'
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, update-release-draft]
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- run: corepack enable
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
cache: '${{ env.NODE_CACHE }}'
|
||||
node-version: '${{ env.NODE_VERSION }}'
|
||||
scope: '${{ env.NODE_SCOPE }}'
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: lib
|
||||
path: ./
|
||||
- run: |
|
||||
pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
|
||||
pnpm install
|
||||
git config user.name "Github Actions Bot"
|
||||
git config user.email "<>"
|
||||
node scripts/set-version.mjs $(git describe --tag --abbrev=0)
|
||||
pnpm publish -r --publish-branch main --access public --no-git-checks
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader-repo",
|
||||
"private": "true",
|
||||
"license": "GPL-3.0",
|
||||
"packageManager": "pnpm@8.10.4",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
@@ -11,7 +12,6 @@
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@react-native-community/eslint-config": "^3.2.0",
|
||||
"eslint": "^8.53.0",
|
||||
@@ -23,5 +23,10 @@
|
||||
"@pnpm/find-workspace-packages": "^6.0.9",
|
||||
"@types/node": "^20.10.8",
|
||||
"ts-node": "^10.9.2"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
1
packages/cli/README.md
Normal file
1
packages/cli/README.md
Normal file
@@ -0,0 +1 @@
|
||||
[Go to documentation](https://github.com/morten-olsen/mini-loader)
|
||||
@@ -3,6 +3,7 @@
|
||||
"version": "1.0.0",
|
||||
"main": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"license": "GPL-3.0",
|
||||
"bin": {
|
||||
"mini-loader": "./bin/index.mjs"
|
||||
},
|
||||
@@ -41,5 +42,10 @@
|
||||
"@morten-olsen/mini-loader-server": "workspace:^",
|
||||
"@types/inquirer": "^9.0.7",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const list = new Command('list');
|
||||
|
||||
@@ -21,7 +22,8 @@ list
|
||||
.option('-a, --limit <limit>', 'Limit', '1000')
|
||||
.action(async () => {
|
||||
const { runId, loadId, offset, limit } = list.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -4,6 +4,7 @@ import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { dirname, resolve } from 'path';
|
||||
import { mkdir, writeFile } from 'fs/promises';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const pull = new Command('pull');
|
||||
|
||||
@@ -12,7 +13,8 @@ pull
|
||||
.argument('<artifact-id>', 'Artifact ID')
|
||||
.argument('<file>', 'File to save')
|
||||
.action(async (id, file) => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const target = resolve(file);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
|
||||
@@ -3,6 +3,7 @@ import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import inquirer from 'inquirer';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const remove = new Command('remove');
|
||||
|
||||
@@ -22,7 +23,8 @@ remove
|
||||
.option('-a, --limit <limit>', 'Limit', '1000')
|
||||
.action(async () => {
|
||||
const { runId, loadId, offset, limit } = remove.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,12 +2,14 @@ import { Command } from 'commander';
|
||||
import inquerer from 'inquirer';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const login = new Command('login');
|
||||
|
||||
login.description('Login to your account');
|
||||
login.action(async () => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const { host, token } = await inquerer.prompt([
|
||||
{
|
||||
type: 'input',
|
||||
|
||||
10
packages/cli/src/commands/contexts/contexts.current.ts
Normal file
10
packages/cli/src/commands/contexts/contexts.current.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Command } from 'commander';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const current = new Command('current');
|
||||
current.action(async () => {
|
||||
const config = new Config();
|
||||
console.log(config.context);
|
||||
});
|
||||
|
||||
export { current };
|
||||
11
packages/cli/src/commands/contexts/contexts.list.ts
Normal file
11
packages/cli/src/commands/contexts/contexts.list.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Command } from 'commander';
|
||||
import { Context } from '../../context/context.js';
|
||||
|
||||
const list = new Command('list');
|
||||
list.alias('ls').description('List contexts');
|
||||
list.action(async () => {
|
||||
const contexts = await Context.list();
|
||||
console.table(contexts);
|
||||
});
|
||||
|
||||
export { list };
|
||||
12
packages/cli/src/commands/contexts/contexts.ts
Normal file
12
packages/cli/src/commands/contexts/contexts.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Command } from 'commander';
|
||||
import { list } from './contexts.list.js';
|
||||
import { use } from './contexts.use.js';
|
||||
import { current } from './contexts.current.js';
|
||||
|
||||
const contexts = new Command('contexts');
|
||||
contexts.description('Manage contexts');
|
||||
contexts.addCommand(list);
|
||||
contexts.addCommand(use);
|
||||
contexts.addCommand(current);
|
||||
|
||||
export { contexts };
|
||||
11
packages/cli/src/commands/contexts/contexts.use.ts
Normal file
11
packages/cli/src/commands/contexts/contexts.use.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Command } from 'commander';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const use = new Command('use');
|
||||
|
||||
use.argument('<name>').action(async (name) => {
|
||||
const config = new Config();
|
||||
await config.setContext(name);
|
||||
});
|
||||
|
||||
export { use };
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const list = new Command('list');
|
||||
|
||||
@@ -9,7 +10,8 @@ list
|
||||
.alias('ls')
|
||||
.description('List loads')
|
||||
.action(async () => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -4,6 +4,7 @@ import { createClient } from '../../client/client.js';
|
||||
import { bundle } from '../../bundler/bundler.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const push = new Command('push');
|
||||
|
||||
@@ -15,7 +16,8 @@ push
|
||||
.option('-ai, --auto-install', 'Auto install dependencies', false)
|
||||
.action(async (script) => {
|
||||
const opts = push.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const location = resolve(script);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const list = new Command('list');
|
||||
|
||||
@@ -23,7 +24,8 @@ list
|
||||
.option('-s, --sort <order>', 'Sort', 'desc')
|
||||
.action(async () => {
|
||||
const { runId, loadId, severities, offset, limit, order } = list.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import inquirer from 'inquirer';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const remove = new Command('remove');
|
||||
|
||||
@@ -24,7 +25,8 @@ remove
|
||||
.option('-s, --sort <order>', 'Sort', 'desc')
|
||||
.action(async () => {
|
||||
const { runId, loadId, severities, offset, limit, order } = remove.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const create = new Command('create');
|
||||
|
||||
@@ -9,7 +10,8 @@ create
|
||||
.description('Create a new run')
|
||||
.argument('load-id', 'Load ID')
|
||||
.action(async (loadId) => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const list = new Command('list');
|
||||
|
||||
@@ -10,7 +11,8 @@ list
|
||||
.description('Find a run')
|
||||
.argument('[load-id]', 'Load ID')
|
||||
.action(async (loadId) => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const list = new Command('list');
|
||||
|
||||
@@ -19,7 +20,8 @@ list
|
||||
.option('-a, --limit <limit>', 'Limit', '1000')
|
||||
.action(async () => {
|
||||
const { offset, limit } = list.opts();
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const remove = new Command('remove');
|
||||
|
||||
@@ -9,7 +10,8 @@ remove
|
||||
.alias('rm')
|
||||
.argument('<id>')
|
||||
.action(async (id) => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
||||
import { createClient } from '../../client/client.js';
|
||||
import { step } from '../../utils/step.js';
|
||||
import { Context } from '../../context/context.js';
|
||||
import { Config } from '../../config/config.js';
|
||||
|
||||
const set = new Command('set');
|
||||
|
||||
@@ -9,7 +10,8 @@ set
|
||||
.argument('<id>')
|
||||
.argument('[value]')
|
||||
.action(async (id, value) => {
|
||||
const context = new Context();
|
||||
const config = new Config();
|
||||
const context = new Context(config.context);
|
||||
const client = await step('Connecting to server', async () => {
|
||||
return createClient(context);
|
||||
});
|
||||
|
||||
44
packages/cli/src/config/config.ts
Normal file
44
packages/cli/src/config/config.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import envPaths from 'env-paths';
|
||||
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
||||
import { mkdir } from 'fs/promises';
|
||||
import { join, dirname } from 'path';
|
||||
|
||||
type ConfigValues = {
|
||||
context?: string;
|
||||
};
|
||||
|
||||
class Config {
|
||||
#location: string;
|
||||
#config?: ConfigValues;
|
||||
|
||||
constructor() {
|
||||
const paths = envPaths('mini-loader');
|
||||
this.#location = join(paths.config, 'config.json');
|
||||
if (existsSync(this.#location)) {
|
||||
this.#config = JSON.parse(readFileSync(this.#location, 'utf-8'));
|
||||
}
|
||||
}
|
||||
|
||||
public get context() {
|
||||
return this.#config?.context || 'default';
|
||||
}
|
||||
|
||||
public setContext = (context: string) => {
|
||||
this.#config = {
|
||||
...(this.#config || {}),
|
||||
context,
|
||||
};
|
||||
this.save();
|
||||
};
|
||||
|
||||
public save = async () => {
|
||||
if (!this.#config) {
|
||||
return;
|
||||
}
|
||||
const json = JSON.stringify(this.#config);
|
||||
mkdir(dirname(this.#location), { recursive: true });
|
||||
writeFileSync(this.#location, json);
|
||||
};
|
||||
}
|
||||
|
||||
export { Config };
|
||||
@@ -1,7 +1,7 @@
|
||||
import envPaths from 'env-paths';
|
||||
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
||||
import { mkdir } from 'fs/promises';
|
||||
import { dirname } from 'path';
|
||||
import { mkdir, readdir } from 'fs/promises';
|
||||
import { dirname, join } from 'path';
|
||||
|
||||
type ContextValues = {
|
||||
host: string;
|
||||
@@ -12,9 +12,9 @@ class Context {
|
||||
#location: string;
|
||||
#config?: ContextValues;
|
||||
|
||||
constructor() {
|
||||
const paths = envPaths('dws');
|
||||
this.#location = paths.config;
|
||||
constructor(name: string) {
|
||||
const paths = envPaths('mini-loader');
|
||||
this.#location = join(paths.config, 'contexts', name);
|
||||
if (existsSync(this.#location)) {
|
||||
this.#config = JSON.parse(readFileSync(this.#location, 'utf-8'));
|
||||
}
|
||||
@@ -45,6 +45,15 @@ class Context {
|
||||
mkdir(dirname(this.#location), { recursive: true });
|
||||
writeFileSync(this.#location, json);
|
||||
};
|
||||
|
||||
public static list = async () => {
|
||||
const paths = envPaths('mini-loader');
|
||||
const location = join(paths.config, 'contexts');
|
||||
if (!existsSync(location)) {
|
||||
return [];
|
||||
}
|
||||
return await readdir(location);
|
||||
};
|
||||
}
|
||||
|
||||
export { Context };
|
||||
|
||||
@@ -6,6 +6,7 @@ import { artifacts } from './commands/artifacts/artifacts.js';
|
||||
import { secrets } from './commands/secrets/secrets.js';
|
||||
import { local } from './commands/local/local.js';
|
||||
import { auth } from './commands/auth/auth.js';
|
||||
import { contexts } from './commands/contexts/contexts.js';
|
||||
|
||||
program.addCommand(loads);
|
||||
program.addCommand(runs);
|
||||
@@ -14,5 +15,6 @@ program.addCommand(artifacts);
|
||||
program.addCommand(secrets);
|
||||
program.addCommand(local);
|
||||
program.addCommand(auth);
|
||||
program.addCommand(contexts);
|
||||
|
||||
await program.parseAsync();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader-configs",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@@ -8,5 +9,10 @@
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
"license": "GPL-3.0",
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader-examples",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0",
|
||||
"private": true,
|
||||
"main": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"scripts": {
|
||||
@@ -21,5 +23,10 @@
|
||||
"@morten-olsen/mini-loader": "workspace:^",
|
||||
"@types/node": "^20.10.8",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
1
packages/mini-loader/README.md
Normal file
1
packages/mini-loader/README.md
Normal file
@@ -0,0 +1 @@
|
||||
[Go to documentation](https://github.com/morten-olsen/mini-loader)
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0",
|
||||
"main": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"scripts": {
|
||||
@@ -19,5 +20,10 @@
|
||||
"@morten-olsen/mini-loader-configs": "workspace:^",
|
||||
"@types/node": "^20.10.8",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
1
packages/runner/README.md
Normal file
1
packages/runner/README.md
Normal file
@@ -0,0 +1 @@
|
||||
[Go to documentation](https://github.com/morten-olsen/mini-loader)
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader-runner",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0",
|
||||
"main": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"scripts": {
|
||||
@@ -24,5 +25,10 @@
|
||||
"dependencies": {
|
||||
"eventemitter3": "^5.0.1",
|
||||
"nanoid": "^5.0.4"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
1
packages/server/README.md
Normal file
1
packages/server/README.md
Normal file
@@ -0,0 +1 @@
|
||||
[Go to documentation](https://github.com/morten-olsen/mini-loader)
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "@morten-olsen/mini-loader-server",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0",
|
||||
"main": "./dist/esm/index.js",
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"bin": {
|
||||
@@ -38,5 +39,10 @@
|
||||
"sqlite3": "^5.1.7",
|
||||
"superjson": "^2.2.1",
|
||||
"zod": "^3.22.4"
|
||||
},
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
import { findWorkspacePackages } from '@pnpm/find-workspace-packages';
|
||||
import { writeFile } from 'fs/promises';
|
||||
import { readFile, writeFile } from 'fs/promises';
|
||||
import { join } from 'path';
|
||||
|
||||
const sharedData = JSON.parse(await readFile(join(process.cwd(), 'scripts/shared-data.json')));
|
||||
|
||||
const version = process.argv[2];
|
||||
if (!version) {
|
||||
throw new Error('Version is required');
|
||||
@@ -11,6 +13,9 @@ const packages = await findWorkspacePackages(process.cwd());
|
||||
|
||||
for (const { manifest, dir } of packages) {
|
||||
console.log(dir, version);
|
||||
for (let [key, value] of Object.entries(sharedData || {})) {
|
||||
manifest[key] = value;
|
||||
}
|
||||
manifest.version = version;
|
||||
await writeFile(join(dir, 'package.json'), JSON.stringify(manifest, null, 2));
|
||||
}
|
||||
|
||||
8
scripts/shared-data.json
Normal file
8
scripts/shared-data.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"license": "GPL-3.0",
|
||||
"homepage": "https://github.com/morten-olsen/mini-loader",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/morten-olsen/mini-loader"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user