diff --git a/package-lock.json b/package-lock.json index 3ceb3df..b5183fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "smodg", - "version": "1.1.2", + "version": "1.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "smodg", - "version": "1.1.2", + "version": "1.2.0", "license": "ISC", "dependencies": { "minimist": "^1.2.8", diff --git a/package.json b/package.json index 02f2111..a46c928 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,17 @@ { "name": "smodg", - "version": "1.2.0", + "version": "1.3.0", "description": "Generate basic Sequelize models from TypeScript declaration files", "main": "index.js", "bin": { "smodg": "./index.js" }, + "exports": { + "./package.json": "./package.json" + }, "scripts": { "test": "jest", + "test:watch": "jest --watch", "dev": "node ./dist/index.js", "build": "rimraf ./dist && npx tsc && copyfiles package.json README.md LICENSE dist/" }, diff --git a/src/index.ts b/src/index.ts index 35a3381..00c30cb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,11 +2,20 @@ import fs from 'node:fs' import minimist from 'minimist'; +import path from 'path'; import { generateModelInputs } from './parser'; import { modelTemplate, migrationTemplate } from './templates'; import { kebabCase } from './formatters'; -const version = "1.1.2" +let packageJsonPath: string; + +if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') { + packageJsonPath = path.resolve(__dirname, '..', 'package.json'); +} else { + packageJsonPath = path.resolve(__dirname, 'package.json'); +} + +const version = require(packageJsonPath).version export const main = (args: minimist.ParsedArgs) => { diff --git a/tests/index.spec.ts b/tests/index.spec.ts index 7333e3c..9a75a69 100644 --- a/tests/index.spec.ts +++ b/tests/index.spec.ts @@ -3,24 +3,16 @@ const fs = require('node:fs') jest.mock('node:fs') jest.mock('../package.json', () => ({ - version: '1.2.3' + version: '99.99.99' }), {virtual: true}) import { - printVersion, printHelp, writeModelToFile, main } from '../src/index' describe('cli', () => { - describe('printVersion', () => { - test('should print the current app version', () => { - console.log = jest.fn() - printVersion() - expect(console.log).toHaveBeenCalledWith('smodg v1.1.2') - }) - }) describe('printHelp', () => { test('should print help text', () => { console.log = jest.fn() @@ -109,14 +101,14 @@ describe('cli', () => { // smodg -v args = {_: [], v: true} main(args) - expect(console.log).toHaveBeenCalledWith('smodg v1.1.2') + expect(console.log).toHaveBeenCalledWith('smodg v99.99.99') jest.resetAllMocks() // smodg --version args = {_: [], version: true} main(args) - expect(console.log).toHaveBeenCalledWith('smodg v1.1.2') + expect(console.log).toHaveBeenCalledWith('smodg v99.99.99') })