Skip to content

Commit

Permalink
Merge pull request #73 from Coder-Spirit/fix-nominal-inputs-version
Browse files Browse the repository at this point in the history
feat: port safe-env package
  • Loading branch information
castarco authored Apr 8, 2024
2 parents f0291b6 + 239859e commit b9736d8
Show file tree
Hide file tree
Showing 13 changed files with 698 additions and 114 deletions.
15 changes: 11 additions & 4 deletions @coderspirit/nominal-inputs/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"name": "@coderspirit/nominal-inputs",
"version": "1.0",
"version": "1.0.3",
"description": "Extension of @coderspirit/nominal with 'input' types",
"main": "./dist/main.cjs",
"module": "./dist/main.mjs",
"types": "./dist/main.d.cts",
"files": ["dist"],
"files": [
"dist"
],
"exports": {
"import": {
"types": "./dist/main.d.mts",
Expand All @@ -16,7 +18,12 @@
"default": "./dist/main.cjs"
}
},
"keywords": ["typescript", "types", "nominal", "taint"],
"keywords": [
"typescript",
"types",
"nominal",
"taint"
],
"author": "Andres Correa Casablanca <castarco@coderspirit.xyz>",
"private": false,
"license": "MIT",
Expand All @@ -30,7 +37,7 @@
"prepublishOnly": "pnpm run build"
},
"dependencies": {
"@coderspirit/nominal": "workspace:*"
"@coderspirit/nominal": "workspace:^"
},
"devDependencies": {
"@coderspirit/eslint-config": "^2.0.0",
Expand Down
4 changes: 2 additions & 2 deletions @coderspirit/nominal/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@coderspirit/nominal",
"version": "4.0.1",
"version": "4.0.3",
"description": "Powerful nominal types for your project",
"main": "./dist/nominal.cjs",
"module": "./dist/nominal.mjs",
Expand Down Expand Up @@ -30,7 +30,7 @@
"prepublishOnly": "pnpm run build"
},
"dependencies": {
"@coderspirit/nominal-symbols": "workspace:*"
"@coderspirit/nominal-symbols": "workspace:^"
},
"devDependencies": {
"@coderspirit/eslint-config": "^2.0.0",
Expand Down
87 changes: 0 additions & 87 deletions @coderspirit/nominal/src/Inputs.ts

This file was deleted.

16 changes: 0 additions & 16 deletions @coderspirit/nominal/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,3 @@ export type {
FlavorMarker as FastFlavor,
PropertiesMarker as FastProperty,
} from './internal/Markers'

export type {
IntegerInput,
NegativeInput,
NegativeIntegerInput,
PositiveInput,
PositiveIntegerInput,
TaggedFloat,
TaggedInteger,
TaggedNegative,
TaggedNegativeFloat,
TaggedNegativeInteger,
TaggedPositive,
TaggedPositiveFloat,
TaggedPositiveInteger,
} from './Inputs'
56 changes: 56 additions & 0 deletions @coderspirit/safe-env/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# @coderspirit/safe-env

[![NPM version](https://img.shields.io/npm/v/@coderspirit/safe-env.svg?style=flat)](https://www.npmjs.com/package/@coderspirit/safe-env)
[![TypeScript](https://badgen.net/npm/types/@coderspirit/safe-env)](http://www.typescriptlang.org/)
[![License](https://badgen.net/npm/license/@coderspirit/safe-env)](https://opensource.org/licenses/MIT)
[![npm downloads](https://img.shields.io/npm/dm/@coderspirit/safe-env.svg?style=flat)](https://www.npmjs.com/package/@coderspirit/safe-env)
[![Known Vulnerabilities](https://snyk.io//test/github/Coder-Spirit/safe-env/badge.svg?targetFile=package.json)](https://snyk.io//test/github/Coder-Spirit/safe-env?targetFile=package.json)
[![Security Score](https://snyk-widget.herokuapp.com/badge/npm/@coderspirit%2Fsafe-env/badge.svg)](https://snyk.io/advisor/npm-package/@coderspirit/safe-env)

> Small library to load strongly typed values from environment variables
## Install instructions

### Node

```
# With PNPM
pnpm add @coderspirit/safe-env
# With NPM
npm install @coderspirit/safe-env
# Or with Yarn:
yarn add @coderspirit/safe-env
```

## Example

```ts
import { getSafeEnv } from '@coderspirit/safe-env'

// It validates the specified constraints at construction time
const safeEnv = getSafeEnv(process.env, {
host: { type: 'string', default: 'localhost' },
port: { type: 'uint16', default: 4321 },

githubToken: { type: 'string', optional: true },
secretToken: { type: 'string' },
})

// It leverages the powerful TypeScript's type system to tell you at
// compile time if you made a mistake.
const host = safeEnv.get('hostt') // Type Error

const host = safeEnv.get('host') // All good

// The return type tells you not only that you have a number, but also
// that it is an integer and positive.
const port = safeEnv.get('port')

// It will return undefined if the variable does not exist
const githubToken = safeEnv.get('githubToken')

// It fill fail if the variable does not exist
const secretToken = safeEnv.get('secretToken')
```
55 changes: 55 additions & 0 deletions @coderspirit/safe-env/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"name": "@coderspirit/safe-env",
"version": "1.0.0",
"description": "Safe & strongly typed environment variables accessor",
"main": "./dist/main.cjs",
"module": "./dist/main.mjs",
"types": "./dist/main.d.cts",
"files": ["dist"],
"exports": {
"import": {
"types": "./dist/main.d.mts",
"default": "./dist/main.mjs"
},
"require": {
"types": "./dist/main.d.cts",
"default": "./dist/main.cjs"
}
},
"keywords": ["typescript", "nominal", "environment"],
"author": "Andres Correa Casablanca <castarco@coderspirit.xyz>",
"private": false,
"license": "MIT",
"scripts": {
"build": "rm -rf dist && rollup --config rollup.config.prod.mjs",
"lint:_all": "pnpm run lint:tsc && pnpm run lint:biome && pnpm run lint:publint",
"lint:biome": "biome lint .",
"lint:publint": "publint",
"lint:tsc": "tsc",
"test": "vitest run",
"prepublishOnly": "pnpm run build"
},
"dependencies": {
"@coderspirit/nominal": "workspace:^",
"@coderspirit/nominal-inputs": "workspace:^",
"ajv": "^8.12.0"
},
"devDependencies": {
"@coderspirit/eslint-config": "^2.0.0",
"@types/node": "^20.12.5",
"tslib": "^2.6.2",
"typescript": "^5.4.4",
"vitest": "^0.34.6"
},
"engines": {
"node": ">=18.0.0"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Coder-Spirit/nominal.git"
},
"bugs": {
"url": "https://github.com/Coder-Spirit/nominal/issues"
},
"homepage": "https://github.com/Coder-Spirit/nominal#readme"
}
24 changes: 24 additions & 0 deletions @coderspirit/safe-env/rollup.config.prod.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import pluginTs from '@rollup/plugin-typescript'
import { defineConfig } from 'rollup'
import dts from 'rollup-plugin-dts'

const input = 'src/main.ts'

export default defineConfig([
{
input,
output: [
{ format: 'cjs', file: 'dist/main.cjs' },
{ format: 'esm', file: 'dist/main.mjs' },
],
plugins: [pluginTs()],
},
{
input,
output: [
{ format: 'cjs', file: 'dist/main.d.cts' },
{ format: 'esm', file: 'dist/main.d.mts' },
],
plugins: [dts()],
},
])
Loading

0 comments on commit b9736d8

Please sign in to comment.