Skip to content

Commit

Permalink
feat: use ES modules (#1007)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: code is in in ES Modules now and earliest node support is 18
  • Loading branch information
JasonBerry authored Dec 10, 2024
1 parent fdc6335 commit f33b9bc
Show file tree
Hide file tree
Showing 143 changed files with 2,324 additions and 2,357 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ aliases:
- &install_yarn_version
name: Install specific Yarn version
command: |
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.16.0
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.22.19
echo 'export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"' >> $BASH_ENV
- &restore_yarn_cache
Expand All @@ -28,7 +28,7 @@ aliases:
defaults: &defaults
working_directory: ~/repo
docker:
- image: cimg/node:12.18.0
- image: cimg/node:18.20

version: 2
jobs:
Expand Down
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12.18.0
18.20.5
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12.18.0
18.20.5
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"contributors:add": "all-contributors add"
},
"engines": {
"node": ">=8.16.0"
"node": ">=18"
},
"author": {
"name": "Algolia",
Expand All @@ -37,5 +37,6 @@
"dependencies": {
"patch-package": "^6.2.2",
"postinstall-postinstall": "^2.1.0"
}
},
"packageManager": "yarn@1.22.19+sha512.ff4579ab459bb25aa7c0ff75b62acebe576f6084b36aa842971cf250a5d8c6cd3bc9420b22ce63c7f93a0857bc6ef29291db39c3e7a23aab5adfd5a4dd6c5d71"
}
2 changes: 1 addition & 1 deletion packages/shipjs-lib/.eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ node_modules
dist
sandbox

src/lib/config/defaultConfig.js
src/lib/config/defaultConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ module.exports = {
extends: ['algolia', 'algolia/jest'],
rules: {
'import/no-commonjs': 'off',
'import/extensions': ['error', 'ignorePackages'],
},
};
File renamed without changes.
4 changes: 2 additions & 2 deletions packages/shipjs-lib/jest.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
export default {
transform: {
'^.+\\.[t|j]sx?$': 'babel-jest',
'^.+.js$': 'babel-jest',
},
testEnvironment: 'node',
testPathIgnorePatterns: ['<rootDir>/src/lib/config/__tests__/example'],
Expand Down
4 changes: 2 additions & 2 deletions packages/shipjs-lib/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
"version": "0.26.4",
"description": "Take control of what is going to be your next release.",
"main": "dist/index.esm.js",
"type": "module",
"scripts": {
"prepare": "rollup -c",
"test": "jest",
"test:watch": "yarn test --watch",
"lint": "eslint .",
"lint:fix": "npm run lint -- --fix",
"lint:fix": "yarn run lint --fix",
"build": "rollup -c"
},
"files": [
Expand Down Expand Up @@ -46,7 +47,6 @@
},
"dependencies": {
"deepmerge": "^4.2.2",
"dotenv": "^8.1.0",
"parse-github-url": "1.0.2",
"semver": "6.3.0",
"shelljs": "0.8.5"
Expand Down
56 changes: 28 additions & 28 deletions packages/shipjs-lib/src/index.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
/* version */
export { default as getCurrentVersion } from './lib/util/getCurrentVersion';
export { default as getNextVersion } from './lib/util/getNextVersion';
export { default as updateVersion } from './lib/util/updateVersion';
export { default as isValidVersion } from './lib/util/isValidVersion';
export { default as getReleaseTag } from './lib/util/getReleaseTag';
export { default as getReleaseType } from './lib/util/getReleaseType';
export { default as getCurrentVersion } from './lib/util/getCurrentVersion.js';
export { default as getNextVersion } from './lib/util/getNextVersion.js';
export { default as updateVersion } from './lib/util/updateVersion.js';
export { default as isValidVersion } from './lib/util/isValidVersion.js';
export { default as getReleaseTag } from './lib/util/getReleaseTag.js';
export { default as getReleaseType } from './lib/util/getReleaseType.js';

/* git */
export { default as getCommitTitles } from './lib/git/getCommitTitles';
export { default as getCommitBodies } from './lib/git/getCommitBodies';
export { default as hasLocalBranch } from './lib/git/hasLocalBranch';
export { default as hasRemoteBranch } from './lib/git/hasRemoteBranch';
export { default as getCurrentBranch } from './lib/git/getCurrentBranch';
export { default as getLatestCommitMessage } from './lib/git/getLatestCommitMessage';
export { default as getRepoInfo } from './lib/git/getRepoInfo';
export { default as hasRemote } from './lib/git/hasRemote';
export { default as getRepoURLWithToken } from './lib/git/getRepoURLWithToken';
export { default as getRepoURLWithTokenMasked } from './lib/git/getRepoURLWithTokenMasked';
export { default as getLatestCommitHash } from './lib/git/getLatestCommitHash';
export { default as getCommitUrl } from './lib/git/getCommitUrl';
export { default as isWorkingTreeClean } from './lib/git/isWorkingTreeClean';
export { default as hasTag } from './lib/git/hasTag';
export { default as getRemoteBranches } from './lib/git/getRemoteBranches';
export { default as getGitConfig } from './lib/git/getGitConfig';
export { default as getCommitTitles } from './lib/git/getCommitTitles.js';
export { default as getCommitBodies } from './lib/git/getCommitBodies.js';
export { default as hasLocalBranch } from './lib/git/hasLocalBranch.js';
export { default as hasRemoteBranch } from './lib/git/hasRemoteBranch.js';
export { default as getCurrentBranch } from './lib/git/getCurrentBranch.js';
export { default as getLatestCommitMessage } from './lib/git/getLatestCommitMessage.js';
export { default as getRepoInfo } from './lib/git/getRepoInfo.js';
export { default as hasRemote } from './lib/git/hasRemote.js';
export { default as getRepoURLWithToken } from './lib/git/getRepoURLWithToken.js';
export { default as getRepoURLWithTokenMasked } from './lib/git/getRepoURLWithTokenMasked.js';
export { default as getLatestCommitHash } from './lib/git/getLatestCommitHash.js';
export { default as getCommitUrl } from './lib/git/getCommitUrl.js';
export { default as isWorkingTreeClean } from './lib/git/isWorkingTreeClean.js';
export { default as hasTag } from './lib/git/hasTag.js';
export { default as getRemoteBranches } from './lib/git/getRemoteBranches.js';
export { default as getGitConfig } from './lib/git/getGitConfig.js';

/* shell */
export { default as exec } from './lib/shell/exec';
export { default as silentExec } from './lib/shell/silentExec';
export { default as exec } from './lib/shell/exec.js';
export { default as silentExec } from './lib/shell/silentExec.js';

/* config */
export { default as loadConfig } from './lib/config/loadConfig';
export { default as loadConfig } from './lib/config/loadConfig.js';

/* etc */
export { default as getAppName } from './lib/util/getAppName';
export { default as expandPackageList } from './lib/util/expandPackageList';
export { default as getCommitNumbersPerType } from './lib/util/getCommitNumbersPerType';
export { default as getAppName } from './lib/util/getAppName.js';
export { default as expandPackageList } from './lib/util/expandPackageList.js';
export { default as getCommitNumbersPerType } from './lib/util/getCommitNumbersPerType.js';
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import defaultConfig from '../defaultConfig';
import defaultConfig from '../defaultConfig.js';
jest.mock('../../../version', () => '0.5.2');
const {
formatCommitMessage,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import loadConfig from '../loadConfig';
import defaultConfig from '../defaultConfig';
import loadConfig from '../loadConfig.js';
import defaultConfig from '../defaultConfig.js';
import path from 'path';

const baseConfig = expect.objectContaining({});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import mergeConfig from '../mergeConfig';
import mergeConfig from '../mergeConfig.js';

describe('mergeConfig', () => {
it('deepmerge', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/config/defaultConfig.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import shipJsVersion from '../../version';
import shipJsVersion from '../../version.js';

export default {
remote: 'origin',
Expand Down
4 changes: 2 additions & 2 deletions packages/shipjs-lib/src/lib/config/loadConfig.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { resolve } from 'path';
import { promises as fs, constants } from 'fs';

import defaultConfig from './defaultConfig';
import mergeConfig from './mergeConfig';
import defaultConfig from './defaultConfig.js';
import mergeConfig from './mergeConfig.js';

const exist = (path) =>
fs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import silentExec from '../../shell/silentExec';
import getCurrentBranch from '../getCurrentBranch';
import silentExec from '../../shell/silentExec.js';
import getCurrentBranch from '../getCurrentBranch.js';

describe('getCurrentBranch', () => {
it('gets current branch', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import getLatestCommitMessage from '../getLatestCommitMessage';
import silentExec from '../../shell/silentExec';
import getLatestCommitMessage from '../getLatestCommitMessage.js';
import silentExec from '../../shell/silentExec.js';

describe('getLatestCommitMessage', () => {
it('gets latest commit message', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import silentExec from '../../shell/silentExec';
import getRemoteBranches from '../getRemoteBranches';
jest.mock('../../shell/silentExec');
import silentExec from '../../shell/silentExec.js';
import getRemoteBranches from '../getRemoteBranches.js';
jest.mock('../../shell/silentExec.js');

describe('getRemoteBranches', () => {
it('works', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import hasLocalBranch from '../hasLocalBranch';
import silentExec from '../../shell/silentExec';
import hasLocalBranch from '../hasLocalBranch.js';
import silentExec from '../../shell/silentExec.js';

describe('hasLocalBranch', () => {
beforeAll(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import hasRemoteBranch from '../hasRemoteBranch';
import hasRemoteBranch from '../hasRemoteBranch.js';

describe('hasRemoteBranch', () => {
it('checks when it exists', () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/shipjs-lib/src/lib/git/__tests__/hasTag.spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import hasTag from '../hasTag';
import silentExec from '../../shell/silentExec';
import hasTag from '../hasTag.js';
import silentExec from '../../shell/silentExec.js';

describe('hasTag', () => {
it('checks if it does not have tag', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import isWorkingTreeClean from '../isWorkingTreeClean';
import silentExec from '../../shell/silentExec';
import isWorkingTreeClean from '../isWorkingTreeClean.js';
import silentExec from '../../shell/silentExec.js';

describe('isWorkingTreeClean', () => {
it('checks if it is clean', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getCommitBodies.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getBodies(revisionRange, dir) {
const cmd = `git log ${revisionRange} --pretty=format:%b`;
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getCommitTitles.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getCommitTitles(revisionRange, dir) {
const cmd = `git log ${revisionRange} --pretty=format:%s`;
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getCommitUrl.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getRepoInfo from './getRepoInfo';
import getRepoInfo from './getRepoInfo.js';

export default function getCommitUrl(remote, hash, dir = '.') {
const { url: repoURL } = getRepoInfo(remote, dir);
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getCurrentBranch.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getCurrentBranch(dir = '.') {
return silentExec('git rev-parse --abbrev-ref HEAD', { dir })
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getGitConfig.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getGitConfig(key, dir = '.') {
return silentExec(`git config ${key}`, { dir, ignoreError: true })
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getLatestCommitHash.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getLatestCommitHash(dir = '.') {
return silentExec('git log -1 --pretty=format:%h', { dir }).toString().trim();
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getLatestCommitMessage.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getLatestCommitMessage(dir = '.') {
return silentExec('git log -1 --pretty=format:%B', { dir }).toString().trim();
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getRemoteBranches.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

/*
$ git branch -r
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getRemoteOriginUrl.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function getRemoteOriginUrl(remote, dir) {
const url = silentExec(`git remote get-url ${remote}`, { dir })
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getRepoInfo.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getRemoteOriginUrl from './getRemoteOriginUrl';
import getRemoteOriginUrl from './getRemoteOriginUrl.js';
import gh from 'parse-github-url';

export default function getRepoInfo(remote, dir) {
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/getRepoURLWithToken.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getRemoteOriginUrl from './getRemoteOriginUrl';
import getRemoteOriginUrl from './getRemoteOriginUrl.js';
import gh from 'parse-github-url';

export default function getRepoURLWithToken(token, remote, dir) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getRemoteOriginUrl from './getRemoteOriginUrl';
import getRemoteOriginUrl from './getRemoteOriginUrl.js';
import gh from 'parse-github-url';

export default function getRepoURLWithTokenMasked(remote, dir) {
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/hasLocalBranch.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function hasLocalBranch(branchName, dir = '.') {
return (
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/hasRemote.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function hasRemote(remote, dir = '.') {
return (
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/hasRemoteBranch.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function hasRemoteBranch(remote, branchName, dir = '.') {
return (
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/hasTag.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function hasTag(tag, dir = '.') {
return silentExec(`git tag -l ${tag}`, { dir }).toString().trim() === tag;
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/git/isWorkingTreeClean.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import silentExec from '../shell/silentExec';
import silentExec from '../shell/silentExec.js';

export default function isWorkingTreeClean(dir = '.') {
return silentExec('git status --porcelain', { dir }).toString().trim() === '';
Expand Down
2 changes: 1 addition & 1 deletion packages/shipjs-lib/src/lib/shell/silentExec.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import exec from './exec';
import exec from './exec.js';

export default function silentExec(command, opts = {}) {
return exec(command, {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import silentExec from '../../shell/silentExec';
import expandPackageList from '../expandPackageList';
import silentExec from '../../shell/silentExec.js';
import expandPackageList from '../expandPackageList.js';

describe('expandPackageList', () => {
it('expands package list', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import silentExec from '../../shell/silentExec';
import silentExec from '../../shell/silentExec.js';
import getNextVersion, {
getNextVersionFromCommitMessages,
} from '../getNextVersion';
} from '../getNextVersion.js';

describe('getNextVersionFromCommitMessages', () => {
it('getNextVersionFromCommitMessages with patch updated', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getReleaseTag from '../getReleaseTag';
import getReleaseTag from '../getReleaseTag.js';

describe('getReleaseTag', () => {
it('gets latest from a normal version', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import getReleaseType from '../getReleaseType';
import getReleaseType from '../getReleaseType.js';

describe('getReleaseType', () => {
it('works', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import silentExec from '../../shell/silentExec';
import getCurrentVersion from '../getCurrentVersion';
import updateVersion from '../updateVersion';
import silentExec from '../../shell/silentExec.js';
import getCurrentVersion from '../getCurrentVersion.js';
import updateVersion from '../updateVersion.js';
import { resolve } from 'path';

describe('updateVersion', () => {
Expand Down
Loading

0 comments on commit f33b9bc

Please sign in to comment.