npm.io
1.1.0 • Published 2d ago

@theerapat-s28/ts-structural-eng-tools

Licence
ISC
Version
1.1.0
Deps
0
Size
76 kB
Vulns
0
Weekly
0

ts-structural-eng

A TypeScript library of structural-engineering helper functions and beam design utilities. Designed to be copied and reused across TypeScript frameworks.

Quick summary

  • Package: ts-structural-eng-tools
  • Entry: src/index.ts
  • Build output: dist/ (JS + .d.ts files)

Prerequisites

  • Node.js (v18+ recommended)
  • pnpm

Install

pnpm install

Scripts

Command Description
pnpm run dev Run the example file with ts-node
pnpm run build Compile TypeScript into dist/
pnpm run lint Lint source files with ESLint
pnpm run lint:fix Auto-fix lint issues
pnpm run format Format code with Prettier
pnpm run format:check Check formatting without writing
pnpm run test Run unit tests with Vitest
pnpm run test:watch Run tests in watch mode

Project layout

src/
├── index.ts              # Main barrel export
├── rc/                   # Reinforced concrete design
│   ├── index.ts          # Module exports
│   ├── general.ts        # Concrete properties (beta1, Ec, unit conversion)
│   └── rc-beam-design.ts # Beam moment capacity (singly/doubly reinforced) and shear capacity (Vc, Vs, stirrup requirement)
├── strengthening/        # Strengthening methods
│   ├── index.ts
│   └── rc-beam-steel-plate-jacketing.ts
├── core/                 # Shared infrastructure
│   ├── index.ts
│   ├── constants/        # RC design constants (ACI 318)
│   ├── errors/           # Custom error classes
│   └── types/            # Shared type definitions
└── utils/                # Helper utilities
    ├── index.ts
    ├── math.ts           # Quadratic solver, rounding
    └── merge-warning.ts  # Warning array merging
examples/
└── basic-usage.ts        # Example usage of the library
tests/
├── rc/                   # Tests for RC module
└── utils/                # Tests for utilities

TypeScript path aliases

This project uses baseUrl + paths for clean imports:

"paths": {
  "@app-core/*": ["src/core/*"],
  "@app-types/*": ["src/core/types/*"],
  "@app-utils/*": ["src/utils/*"],
  "@app-rc/*": ["src/rc/*"],
  "@app-strg/*": ["src/strengthening/*"]
}

For runtime resolution, tsconfig-paths is registered in the dev script.

API

RC Beam Design
  • rectBeamMomentCapacity(section) — Computes φMn for a rectangular RC beam (singly or doubly reinforced). Returns phiMn in kN·m with calculation details and ACI 318-19 warnings.
  • concreteShearCapacity(section) — Computes φVc, the concrete contribution to shear capacity (ACI 318-19, 22.5.5.1).
  • stirrupShearCapacity(section) — Computes φVs, the stirrup contribution to shear capacity (ACI 318-19, 22.5.10.5.3).
  • checkStirrupRequirement(input) — Determines whether stirrups are required, and the required Av/s ratio and max spacing (ACI 318-19, 9.6.3.1, 9.6.3.3, 9.7.6.2.2).
Strengthening
  • calculateSteelJacketedBeamMomentCapacity(section, jacketedProperties) — Computes φMn for a beam strengthened with steel plate jacketing.
General Utilities
  • concreteBeta(fc_) — ACI 318 β₁ factor
  • concreteElasticModulus(fc_) — Ec = 4700√f'c (MPa)
  • psiToMpa(psi) — Unit conversion

Build

pnpm run build
node dist/index.js

Tests

pnpm run test

Keywords