@linkbycar/lbc-api-sdk
v1.1.0
Published
This repository contains the build tooling and configuration for generating the TypeScript SDK for the LinkByCar API from OpenAPI specifications.
Readme
LBC API SDK Generator
This repository contains the build tooling and configuration for generating the TypeScript SDK for the LinkByCar API from OpenAPI specifications.
Overview
The SDK is auto-generated from OpenAPI specs using openapi-generator-cli. The build process:
- Fetches the OpenAPI specification from the API server
- Generates TypeScript code using
openapi-generator-cli(via Docker) - Builds the SDK with TypeScript
- Copies the output to the
dist/directory for publishing
Prerequisites
- Docker
- Node.js
curlandjq(for fetching OpenAPI specs)
Building the SDK
Fetch OpenAPI Specifications
# For development environment
make fetch-openapi-dev
# For production environment
make fetch-openapi-prodThis fetches the OpenAPI spec from:
- Dev:
https://api2.linkbycar.dev/v1/openapi.json - Prod:
https://api.linkbycar.com/v1/openapi.json
Generate the SDK
# For development environment
make sdk-dev
# For production environment
make sdk-prodThe make_sdk.sh script:
- Runs
openapi-generator-cliin Docker to generate TypeScript code - Installs dependencies in the generated SDK
- Builds the TypeScript code
- Copies the built output to
dist/
Publishing
The publish commands publish the contents of the root dist/ directory to npm. The dist/ directory is populated by copying the built output from src-dev/dist or src-prod/dist after running the build commands.
# Publish development version (with --tag dev)
make publish-dev
# Publish production version
make publish-prodNote: These commands run npm publish from the root directory, which publishes the dist/ folder as specified in the root package.json.
Project Structure
lbc-api-sdk/
├── dist/ # Built SDK output (published to npm)
├── src-dev/ # Development environment SDK source
│ ├── openapi.json # Dev OpenAPI spec
│ ├── src/ # Generated TypeScript source
│ └── dist/ # Built output (copied to root dist/)
├── src-prod/ # Production environment SDK source
│ ├── openapi.json # Prod OpenAPI spec
│ ├── src/ # Generated TypeScript source
│ └── dist/ # Built output (copied to root dist/)
├── makefile # Build commands
├── make_sdk.sh # SDK generation script
└── fetch_openapi.sh # OpenAPI spec fetcherBuild Process Details
The make_sdk.sh script uses:
- Generator:
typescript-fetch - Docker image:
openapitools/openapi-generator-cli:v7.10.0 - Options:
prependFormOrBodyParameters=true,enumPropertyNaming=camelCase,supportsES6=true,withInterfaces=true,withoutRuntimeChecks=true
The generated SDK is configured in src-dev/package.json and src-prod/package.json with build scripts that compile both CommonJS and ESM outputs.
API Environments
- Development:
https://api2.linkbycar.dev/v1 - Production:
https://api.linkbycar.com/v1
