{"id":16329039,"url":"https://github.com/alexjdean/type-scriptor","last_synced_at":"2025-10-25T21:30:53.907Z","repository":{"id":149995024,"uuid":"621478093","full_name":"alexjdean/type-scriptor","owner":"alexjdean","description":"Write better JavaScript and TypeScript code, using ChatGPT.","archived":false,"fork":false,"pushed_at":"2023-04-13T13:36:06.000Z","size":133,"stargazers_count":18,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-26T00:29:28.395Z","etag":null,"topics":["chatgpt","chatgpt-api","javascript","jest-tests","tests","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/type-scriptor","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexjdean.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-30T18:40:03.000Z","updated_at":"2023-11-07T13:03:54.000Z","dependencies_parsed_at":"2023-05-05T17:15:26.588Z","dependency_job_id":null,"html_url":"https://github.com/alexjdean/type-scriptor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjdean%2Ftype-scriptor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjdean%2Ftype-scriptor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjdean%2Ftype-scriptor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjdean%2Ftype-scriptor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexjdean","download_url":"https://codeload.github.com/alexjdean/type-scriptor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238212359,"owners_count":19434949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","chatgpt-api","javascript","jest-tests","tests","typescript"],"created_at":"2024-10-10T23:14:39.599Z","updated_at":"2025-10-25T21:30:53.563Z","avatar_url":"https://github.com/alexjdean.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# type-scriptor\n\n![Tests](https://img.shields.io/badge/tests-100%25-brightgreen)\n\n`type-scriptor` is an NPM package CLI tool that uses ChatGPT to improve your JavaScript and TypeScript code. It helps you write better code by automatically generating documentation, refactoring code to improve performance and maintainability, adding unit tests using Jest, and converting JavaScript code to TypeScript.\n\nAll the unit tests for this project were generated using this very tool!\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Setting Up Your API Key](#setting-up-your-api-key)\n- [Usage](#usage)\n  - [Generate Documentation](#generate-documentation)\n  - [Convert to TypeScript](#convert-to-typescript)\n  - [Refactor Code](#refactor-code)\n  - [Generate Unit Tests](#generate-unit-tests)\n  - [Display Help](#display-help)\n  - [Display Version](#display-version)\n- [Examples](#examples)\n  - [Documentation](#documentation)\n  - [JavaScript to TypeScript](#javascript-to-typescript)\n  - [Refactoring](#refactoring)\n  - [Unit Tests](#unit-tests)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n`type-scriptor` provides the following features:\n\n- Automatically generate documentation for your JavaScript or TypeScript code using ChatGPT.\n- Refactor your code to improve performance, code quality, modularity, and maintainability.\n- Convert JavaScript code to TypeScript.\n- Generate unit tests using Jest.\n\n## Installation\n\n`type-scriptor` only supports Node versions 16 and 18. If you're using version 16, run the following command:\n\n```bash\nnpm install -g type-scriptor\n```\n\nIf you're using Node version 18, run the following command:\n\n```bash\nnpm install -g type-scriptor@1.1.0\n```\n\nThis will install `type-scriptor` globally on your system, making it available as a command-line tool.\n\n## Setting Up Your API Key\n\nBefore using type-scriptor, you need to save your OpenAI API key. If you don't have an API key, get one from [OpenAI's API key page](https://platform.openai.com/account/api-keys).\n\nTo save your API key, run:\n\n```bash\ntype-scriptor -k API_KEY\n```\n\nReplace `API_KEY` with your actual OpenAI API key.\n\n## Usage\n\nIn all examples below, replace `FILE_PATH` with the relative path to the file you want to use.\n\n### Generate Documentation\n\nTo generate documentation and type annotations for a given file, run:\n\n```bash\ntype-scriptor -f FILE_PATH -d\n```\n\n### Convert to TypeScript\n\nTo convert a file to TypeScript and generate documentation, run:\n\n```bash\ntype-scriptor -f FILE_PATH --to-ts\n```\n\n### Refactor Code\n\nTo refactor a file, add documentation, and improve code performance, run:\n\n```bash\ntype-scriptor -f FILE_PATH -r\n```\n\n### Generate Unit Tests\n\nTo generate unit tests for a given file using Jest, run:\n\n```bash\ntype-scriptor -f FILE_PATH -t\n```\n\n### Display Help\n\nTo display help instructions, run:\n\n```bash\ntype-scriptor -h\n```\n\n### Display Version\n\nTo display the current version of `type-scriptor`, run:\n\n```bash\ntype-scriptor -v\n```\n\n## Examples\n\n### Documentation\n\nSuppose you have the following spaceship-themed codebase:\n\n```javascript\n// spaceship.js\nclass Spaceship {\n  constructor(name, crewSize) {\n    this.name = name;\n    this.crewSize = crewSize;\n    this.speed = 0;\n    this.fuel = 100;\n  }\n\n  accelerate(amount) {\n    this.speed += amount;\n    this.consumeFuel(amount);\n  }\n\n  decelerate(amount) {\n    this.speed = Math.max(this.speed - amount, 0);\n    this.consumeFuel(amount);\n  }\n\n  consumeFuel(amount) {\n    this.fuel = Math.max(this.fuel - (amount / 10), 0);\n  }\n\n  refuel(amount) {\n    this.fuel = Math.min(this.fuel + amount, 100);\n  }\n\n  boardCrew(crewMembers) {\n    this.crewSize += crewMembers;\n  }\n\n  disembarkCrew(crewMembers) {\n    this.crewSize = Math.max(this.crewSize - crewMembers, 0);\n  }\n}\n\nfunction createSpaceship(name, crewSize) {\n  return new Spaceship(name, crewSize);\n}\n\nfunction distanceBetweenPlanets(planetA, planetB) {\n  const distance = Math.sqrt(Math.pow((planetB.x - planetA.x), 2) + Math.pow((planetB.y - planetA.y), 2));\n  return distance;\n}\n\nfunction calculateTravelTime(distance, speed) {\n  return distance / speed;\n}\n\nmodule.exports = {\n  Spaceship,\n  createSpaceship,\n  distanceBetweenPlanets,\n  calculateTravelTime\n};\n```\n\nUsing the `type-scriptor -f spaceship.js -d` command, our code becomes well-documented and clear to understand. We make it easier for new engineers to get up to speed on the functionality of a given codebase.\n\n```javascript\n/**\n * Spaceship class representing a spaceship object.\n * @class\n */\nclass Spaceship {\n  /**\n   * Creates a Spaceship object.\n   * @constructor\n   * @param {string} name - The name of the spaceship.\n   * @param {number} crewSize - The number of crew members in the spaceship.\n   */\n  constructor(name, crewSize) {\n    this.name = name;\n    this.crewSize = crewSize;\n    this.speed = 0;\n    this.fuel = 100;\n  }\n\n  /**\n   * Increases the speed of the spaceship and consumes fuel.\n   * @param {number} amount - The amount by which to increase the speed.\n   * @returns {void}\n   */\n  accelerate(amount) {\n    this.speed += amount;\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Decreases the speed of the spaceship and consumes fuel.\n   * The spaceship speed can't go below 0.\n   * @param {number} amount - The amount by which to decrease the speed.\n   * @returns {void}\n   */\n  decelerate(amount) {\n    this.speed = Math.max(this.speed - amount, 0);\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Reduces the fuel of the spaceship by a calculated amount.\n   * @param {number} amount - The amount of speed by which to reduce the fuel.\n   * @returns {void}\n   */\n  consumeFuel(amount) {\n    this.fuel = Math.max(this.fuel - (amount / 10), 0);\n  }\n\n  /**\n   * Refuels the spaceship with the given amount of fuel.\n   * The maximum fuel allowed is 100.\n   * @param {number} amount - The amount of fuel to refuel.\n   * @returns {void}\n   */\n  refuel(amount) {\n    this.fuel = Math.min(this.fuel + amount, 100);\n  }\n\n  /**\n   * Increases the crew size of the spaceship.\n   * @param {number} crewMembers - The number of crew members to add.\n   * @returns {void}\n   */\n  boardCrew(crewMembers) {\n    this.crewSize += crewMembers;\n  }\n\n  /**\n   * Decreases the crew size of the spaceship.\n   * Cannot go below 0 crew members.\n   * @param {number} crewMembers - The number of crew members to remove.\n   * @returns {void}\n   */\n  disembarkCrew(crewMembers) {\n    this.crewSize = Math.max(this.crewSize - crewMembers, 0);\n  }\n}\n\n/**\n * Creates a new instance of Spaceship.\n * @param {string} name - The name of the spaceship.\n * @param {number} crewSize - The number of crew members in the spaceship.\n * @returns {Spaceship} A new instance of Spaceship.\n */\nfunction createSpaceship(name, crewSize) {\n  return new Spaceship(name, crewSize);\n}\n\n/**\n * Calculates the distance between two planets.\n * @param {Object} planetA - Object representing the coordinates of planetA.\n * @param {number} planetA.x - The x-coordinate of planetA.\n * @param {number} planetA.y - The y-coordinate of planetA.\n * @param {Object} planetB - Object representing the coordinates of planetB.\n * @param {number} planetB.x - The x-coordinate of planetB.\n * @param {number} planetB.y - The y-coordinate of planetB.\n * @returns {number} The distance between the two planets.\n */\nfunction distanceBetweenPlanets(planetA, planetB) {\n  const distance = Math.sqrt(Math.pow((planetB.x - planetA.x), 2) + Math.pow((planetB.y - planetA.y), 2));\n  return distance;\n}\n\n/**\n * Calculates the travel time between two planets.\n * @param {number} distance - The distance between the two planets.\n * @param {number} speed - The speed of the spaceship.\n * @returns {number} The travel time in seconds.\n */\nfunction calculateTravelTime(distance, speed) {\n  return distance / speed;\n}\n\nmodule.exports = {\n  Spaceship,\n  createSpaceship,\n  distanceBetweenPlanets,\n  calculateTravelTime\n};\n```\n\n### JavaScript to TypeScript\n\nContinuing with our spaceship-themed codebase, suppose we decided to migrate to TypeScript. Using the `type-scriptor -f spaceship.js --to-ts` command, our codebase can now use type annotations to prevent potential errors and be even clearer to understand.\n\n```typescript\n/**\n * Represents a spaceship object.\n */\nclass Spaceship {\n  /**\n   * Creates an instance of Spaceship.\n   * @param name - The name of the spaceship.\n   * @param crewSize - The number of crew members in the spaceship.\n   * @param speed - The current speed of the spaceship.\n   * @param fuel - The current fuel level of the spaceship.\n   */\n  constructor(public name: string, public crewSize: number, public speed: number = 0, public fuel: number = 100) {}\n\n  /**\n   * Increases the speed of the spaceship and consumes fuel.\n   * @param amount - The amount by which to increase the speed.\n   */\n  accelerate(amount: number): void {\n    this.speed += amount;\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Decreases the speed of the spaceship and consumes fuel.\n   * The spaceship speed can't go below 0.\n   * @param amount - The amount by which to decrease the speed.\n   */\n  decelerate(amount: number): void {\n    this.speed = Math.max(this.speed - amount, 0);\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Reduces the fuel of the spaceship by a calculated amount.\n   * @param amount - The amount of speed by which to reduce the fuel.\n   */\n  consumeFuel(amount: number): void {\n    this.fuel = Math.max(this.fuel - amount / 10, 0);\n  }\n\n  /**\n   * Refuels the spaceship with the given amount of fuel.\n   * The maximum fuel allowed is 100.\n   * @param amount - The amount of fuel to refuel.\n   */\n  refuel(amount: number): void {\n    this.fuel = Math.min(this.fuel + amount, 100);\n  }\n\n  /**\n   * Increases the crew size of the spaceship.\n   * @param crewMembers - The number of crew members to add.\n   */\n  boardCrew(crewMembers: number): void {\n    this.crewSize += crewMembers;\n  }\n\n  /**\n   * Decreases the crew size of the spaceship.\n   * Cannot go below 0 crew members.\n   * @param crewMembers - The number of crew members to remove.\n   */\n  disembarkCrew(crewMembers: number): void {\n    this.crewSize = Math.max(this.crewSize - crewMembers, 0);\n  }\n}\n\n/**\n * Creates a new instance of Spaceship.\n * @param name - The name of the spaceship.\n * @param crewSize - The number of crew members in the spaceship.\n * @returns A new instance of Spaceship.\n */\nfunction createSpaceship(name: string, crewSize: number): Spaceship {\n  return new Spaceship(name, crewSize);\n}\n\ninterface Planet {\n  x: number;\n  y: number;\n}\n\n/**\n * Calculates the distance between two planets.\n * @param planetA - Object representing the coordinates of planetA.\n * @param planetA.x - The x-coordinate of planetA.\n * @param planetA.y - The y-coordinate of planetA.\n * @param planetB - Object representing the coordinates of planetB.\n * @param planetB.x - The x-coordinate of planetB.\n * @param planetB.y - The y-coordinate of planetB.\n * @returns The distance between the two planets.\n */\nfunction distanceBetweenPlanets(planetA: Planet, planetB: Planet): number {\n  const distance = Math.sqrt(Math.pow(planetB.x - planetA.x, 2) + Math.pow(planetB.y - planetA.y, 2));\n  return distance;\n}\n\n/**\n * Calculates the travel time between two planets.\n * @param distance - The distance between the two planets.\n * @param speed - The speed of the spaceship.\n * @returns The travel time in seconds.\n */\nfunction calculateTravelTime(distance: number, speed: number): number {\n  return distance / speed;\n}\n\nexport { Spaceship, createSpaceship, distanceBetweenPlanets, calculateTravelTime };\n```\n\n### Refactoring\n\nWe can go further. Suppose we wanted to improve the performance of our codebase. Using the `type-scriptor -f spaceship.ts -r` command, we can improve the performance and organization of our code, making it faster to run and easier to debug.\n\n```typescript\n/**\n * Represents a spaceship object.\n */\nclass Spaceship {\n  /**\n   * Creates an instance of Spaceship.\n   * @param name - The name of the spaceship.\n   * @param crewSize - The number of crew members in the spaceship.\n   * @param speed - The current speed of the spaceship.\n   * @param fuel - The current fuel level of the spaceship.\n   */\n  constructor(public name: string, public crewSize: number, public speed = 0, public fuel = 100) {}\n\n  /**\n   * Increases the speed of the spaceship and consumes fuel.\n   * @param amount - The amount by which to increase the speed.\n   */\n  accelerate(amount: number) {\n    this.speed += amount;\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Decreases the speed of the spaceship and consumes fuel.\n   * The spaceship speed can't go below 0.\n   * @param amount - The amount by which to decrease the speed.\n   */\n  decelerate(amount: number) {\n    this.speed = Math.max(this.speed - amount, 0);\n    this.consumeFuel(amount);\n  }\n\n  /**\n   * Reduces the fuel of the spaceship by a calculated amount.\n   * @param amount - The amount of speed by which to reduce the fuel.\n   */\n  consumeFuel(amount: number) {\n    this.fuel = Math.max(this.fuel - amount / 10, 0);\n  }\n\n  /**\n   * Refuels the spaceship with the given amount of fuel.\n   * The maximum fuel allowed is 100.\n   * @param amount - The amount of fuel to refuel.\n   */\n  refuel(amount: number) {\n    this.fuel = Math.min(this.fuel + amount, 100);\n  }\n\n  /**\n   * Increases the crew size of the spaceship.\n   * @param crewMembers - The number of crew members to add.\n   */\n  boardCrew(crewMembers: number) {\n    this.crewSize += crewMembers;\n  }\n\n  /**\n   * Decreases the crew size of the spaceship.\n   * Cannot go below 0 crew members.\n   * @param crewMembers - The number of crew members to remove.\n   */\n  disembarkCrew(crewMembers: number) {\n    this.crewSize = Math.max(this.crewSize - crewMembers, 0);\n  }\n}\n\n/**\n * Creates a new instance of Spaceship.\n * @param {string} name - The name of the spaceship.\n * @param {number} crewSize - The number of crew members in the spaceship.\n * @returns {Spaceship} - A new instance of Spaceship.\n */\nfunction createSpaceship(name: string, crewSize: number): Spaceship {\n  return new Spaceship(name, crewSize);\n}\n\ninterface Planet {\n  x: number;\n  y: number;\n}\n\n/**\n * Calculates the distance between two planets.\n * @param {Planet} planetA - Object representing the coordinates of planetA.\n * @param {number} planetA.x - The x-coordinate of planetA.\n * @param {number} planetA.y - The y-coordinate of planetA.\n * @param {Planet} planetB - Object representing the coordinates of planetB.\n * @param {number} planetB.x - The x-coordinate of planetB.\n * @param {number} planetB.y - The y-coordinate of planetB.\n * @returns {number} - The distance between the two planets.\n */\nfunction distanceBetweenPlanets(planetA: Planet, planetB: Planet): number {\n  const dx = planetB.x - planetA.x;\n  const dy = planetB.y - planetA.y;\n  return Math.sqrt(dx ** 2 + dy ** 2);\n}\n\n/**\n * Calculates the travel time between two planets.\n * @param {number} distance - The distance between the two planets.\n * @param {number} speed - The speed of the spaceship.\n * @returns {number} - The travel time in seconds.\n */\nfunction calculateTravelTime(distance: number, speed: number): number {\n  if (speed === 0) {\n    return Infinity;\n  }\n  return distance / speed;\n}\n\nexport { Spaceship, createSpaceship, distanceBetweenPlanets, calculateTravelTime };\n```\n\n### Unit Tests\n\nTo top it off, we need solid unit tests to check the funtionality of our spaceship codebase. Using the `type-scriptor -f spaceship.ts -t`, we generate unit tests in about 10 seconds to ensure the exepected behavior of our code.\n\n```typescript\nconst { Spaceship, createSpaceship, distanceBetweenPlanets, calculateTravelTime } = require('./spaceship.ts');\n\ndescribe('Spaceship', () =\u003e {\n  let spaceship;\n\n  beforeEach(() =\u003e {\n    spaceship = createSpaceship('Test', 1);\n  });\n\n  it('should create a new Spaceship instance', () =\u003e {\n    expect(spaceship instanceof Spaceship).toBe(true);\n  });\n\n  it('should set the name, crewSize, speed and fuel properties', () =\u003e {\n    expect(spaceship.name).toEqual('Test');\n    expect(spaceship.crewSize).toEqual(1);\n    expect(spaceship.speed).toEqual(0);\n    expect(spaceship.fuel).toEqual(100);\n  });\n\n  it('should increase the speed of the spaceship and reduce the fuel when accelerating', () =\u003e {\n    const initialSpeed = spaceship.speed;\n    const initialFuel = spaceship.fuel;\n    spaceship.accelerate(10);\n    expect(spaceship.speed).toEqual(initialSpeed + 10);\n    expect(spaceship.fuel).toEqual(initialFuel - 1);\n  });\n\n  it('should decrease the speed of the spaceship and reduce the fuel when decelerating', () =\u003e {\n    spaceship.accelerate(10);\n    const initialSpeed = spaceship.speed;\n    const initialFuel = spaceship.fuel;\n    spaceship.decelerate(5);\n    expect(spaceship.speed).toEqual(initialSpeed - 5);\n    expect(spaceship.fuel).toEqual(initialFuel - 0.5);\n  });\n\n  it('should not decrease the speed below 0 when decelerating', () =\u003e {\n    spaceship.accelerate(5);\n    spaceship.decelerate(10);\n    expect(spaceship.speed).toEqual(0);\n  });\n\n  it('should reduce the fuel when consuming fuel', () =\u003e {\n    const initialFuel = spaceship.fuel;\n    spaceship.consumeFuel(10);\n    expect(spaceship.fuel).toEqual(initialFuel - 1);\n  });\n\n  it('should not reduce the fuel below 0 when consuming fuel', () =\u003e {\n    const initialFuel = spaceship.fuel;\n    spaceship.consumeFuel(110);\n    expect(spaceship.fuel).toEqual(0);\n  });\n\n  it('should increase the fuel level when refueling', () =\u003e {\n    const initialFuel = spaceship.fuel;\n    spaceship.refuel(25);\n    expect(spaceship.fuel).toEqual(initialFuel + 25);\n  });\n\n  it('should not increase the fuel level above 100 when refueling', () =\u003e {\n    const initialFuel = spaceship.fuel;\n    spaceship.refuel(150);\n    expect(spaceship.fuel).toEqual(100);\n  });\n\n  it('should increase the crew size when boarding crew members', () =\u003e {\n    const initialCrewSize = spaceship.crewSize;\n    spaceship.boardCrew(2);\n    expect(spaceship.crewSize).toEqual(initialCrewSize + 2);\n  });\n\n  it('should decrease the crew size when disembarking crew members', () =\u003e {\n    const initialCrewSize = spaceship.crewSize;\n    spaceship.disembarkCrew(1);\n    expect(spaceship.crewSize).toEqual(initialCrewSize - 1);\n  });\n\n  it('should not decrease the crew size below 0 when disembarking crew members', () =\u003e {\n    spaceship.disembarkCrew(2);\n    expect(spaceship.crewSize).toEqual(0);\n  });\n});\n\ndescribe('distanceBetweenPlanets', () =\u003e {\n  it('should calculate the distance between two planets', () =\u003e {\n    const planetA = { x: 10, y: 20 };\n    const planetB = { x: 30, y: 40 };\n    const expectedDistance = 28.284271247461902;\n    expect(distanceBetweenPlanets(planetA, planetB)).toEqual(expectedDistance);\n  });\n});\n\ndescribe('calculateTravelTime', () =\u003e {\n  it('should calculate the travel time when speed is greater than 0', () =\u003e {\n    const distance = 100;\n    const speed = 50;\n    const expectedTime = 2;\n    expect(calculateTravelTime(distance, speed)).toEqual(expectedTime);\n  });\n\n  it('should return infinity when speed is 0', () =\u003e {\n    const distance = 100;\n    const speed = 0;\n    expect(calculateTravelTime(distance, speed)).toEqual(Infinity);\n  });\n});\n```\n\n## Contributing\n\nWe welcome contributions to improve `type-scriptor`! To contribute, please follow these steps:\n\n1. Fork the repository on GitHub.\n2. Clone your forked repository and make your changes.\n3. Commit your changes, and push them to your forked repository on GitHub.\n4. Create a pull request against the original repository, describing your changes and the reasoning behind them.\n\nPlease ensure that your code is properly formatted, and all tests pass before submitting a pull request.\n\n## License\n\n`type-scriptor` is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjdean%2Ftype-scriptor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexjdean%2Ftype-scriptor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjdean%2Ftype-scriptor/lists"}