3 Commits
0.1.4 ... 0.1.6

Author SHA1 Message Date
Morten Olsen
ef32edcb29 chore: bump AWS client version 2025-08-08 20:13:54 +02:00
Morten Olsen
e2dfb3491d feat: use bundled version 2025-08-08 20:11:04 +02:00
Morten Olsen
3ec6612167 docs: add compare section 2025-08-08 16:34:58 +02:00
7 changed files with 537 additions and 520 deletions

View File

@@ -1 +0,0 @@
PASSWORD=SSM:/test/hfd/rds/DB_USER

View File

@@ -25,7 +25,7 @@ that get resolved at runtime.
## Installation
```bash
npm install -g @0morten-olsen/with-ssm
npm install -g @morten-olsen/with-ssm
```
## Quick Start

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env node
import '../dist/start.js';
import '../dist/index.js';

View File

@@ -6,8 +6,8 @@
"license": "GPL-3.0",
"scripts": {
"test:lint": "eslint",
"build": "tsc --build",
"build:dev": "tsc --build --watch",
"build": "ncc build src/start.ts -o dist",
"build:dev": "ncc build src/start.ts -o dist --watch",
"test:unit": "vitest --run --passWithNoTests",
"test": "pnpm run \"/^test:/\""
},
@@ -16,27 +16,26 @@
"dist"
],
"devDependencies": {
"@aws-sdk/client-ssm": "^3.863.0",
"@eslint/eslintrc": "3.3.1",
"@eslint/js": "9.32.0",
"@pnpm/find-workspace-packages": "6.0.9",
"@types/node": "24.2.0",
"@types/yargs": "^17.0.33",
"@vercel/ncc": "^0.38.3",
"@vitest/coverage-v8": "3.2.4",
"dotenv": "^17.2.1",
"eslint": "9.32.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-prettier": "5.5.4",
"execa": "^9.6.0",
"prettier": "3.6.2",
"typescript": "5.9.2",
"typescript-eslint": "8.39.0",
"vitest": "3.2.4"
"vitest": "3.2.4",
"yargs": "^18.0.0"
},
"name": "@morten-olsen/with-ssm",
"version": "1.0.0",
"dependencies": {
"@aws-sdk/client-ssm": "^3.859.0",
"dotenv": "^17.2.1",
"execa": "^9.6.0",
"yargs": "^18.0.0"
}
"version": "1.0.0"
}

957
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -5,41 +5,48 @@ import { exec } from './utils/exec.js';
import { getEnv } from './utils/env.js';
import { replaceParams } from './utils/ssm.js';
const argv = await yargs(hideBin(process.argv))
.usage('Usage: $0 [options] -- <command>')
.option('region', {
type: 'string',
description: 'The AWS region to use for SSM.',
})
.option('profile', {
type: 'string',
description: 'The AWS profile to use from your credentials file.',
})
.option('file', {
alias: 'f',
type: 'string',
description: 'The file to use for environment variables. (multiple files can be specified)',
default: ['.env', '.env.with-ssm'],
})
.demandCommand(1, 'Error: You must provide a command to execute after --')
.alias('h', 'help')
.epilogue('For more information, check the documentation.')
.parse();
const main = async () => {
const argv = await yargs(hideBin(process.argv))
.usage('Usage: $0 [options] -- <command>')
.option('region', {
type: 'string',
description: 'The AWS region to use for SSM.',
})
.option('profile', {
type: 'string',
description: 'The AWS profile to use from your credentials file.',
})
.option('file', {
alias: 'f',
type: 'string',
description: 'The file to use for environment variables. (multiple files can be specified)',
default: ['.env', '.env.with-ssm'],
})
.demandCommand(1, 'Error: You must provide a command to execute after --')
.alias('h', 'help')
.epilogue('For more information, check the documentation.')
.parse();
const command = argv._[0] as string;
const commandArgs = argv._.slice(1).map(String);
const command = argv._[0] as string;
const commandArgs = argv._.slice(1).map(String);
if (!command) {
console.error('No command provided');
if (!command) {
console.error('No command provided');
process.exit(1);
}
const files = argv.file && Array.isArray(argv.file) ? argv.file : [argv.file];
const hostEnv = await getEnv(files);
const env = await replaceParams(hostEnv);
exec({
command,
env,
args: commandArgs,
});
};
main().catch((err) => {
console.error(err);
process.exit(1);
}
const files = argv.file && Array.isArray(argv.file) ? argv.file : [argv.file];
const hostEnv = await getEnv(files);
const env = await replaceParams(hostEnv);
exec({
command,
env,
args: commandArgs,
});

View File

@@ -10,6 +10,7 @@
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"noEmit": true,
"outDir": "dist",
"jsx": "react-jsx",
"isolatedModules": true,