Skip to content

Commit

Permalink
feat(js): support path mapping
Browse files Browse the repository at this point in the history
Through @jjangga0214/dependency-tree.
Refet to dependents/node-dependency-tree#138
  • Loading branch information
jjangga0214 committed Nov 2, 2023
1 parent 8cbb9f9 commit 6face81
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 111 deletions.
2 changes: 1 addition & 1 deletion packages/js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
},
"dependencies": {
"@haetae/common": "workspace:*",
"dependency-tree": "^8.1.1",
"@jjangga0214/dependency-tree": "8.1.1-pull-135-c9759f9",
"dirname-filename-esm": "^1.1.1",
"find-up": "^6.3.0",
"memoizee": "^0.4.15",
Expand Down
2 changes: 1 addition & 1 deletion packages/js/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import fs from 'node:fs/promises'
import upath from 'upath'
import dependencyTree from 'dependency-tree'
import dependencyTree from '@jjangga0214/dependency-tree'
import { dirname } from 'dirname-filename-esm'
import filterAsync from 'node-filter-async'
import { findUp } from 'find-up'
Expand Down
86 changes: 43 additions & 43 deletions packages/js/test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { dependsOn, graph } from '../src/index.js'
const rootDir = upath.join(dirname(import.meta), '../../../test-project')

/*
Actually, test for `graph()` is not so much necessary because the function `dependsOn()` rely on `graph()`,
and test of `dependsOn()` does through test.
Actually, test for `graph()` is not so much necessary because the function `dependsOn()` relies on `graph()`.
Test of `dependsOn()` also does transitive test of `graph()`.
*/
describe('graph', () => {
test('basic usage', async () => {
Expand Down Expand Up @@ -42,24 +42,24 @@ describe('graph', () => {
})
// TODO: uncomment this test once `path mapping` is resolved by PR: https://github.com/dependents/node-dependency-tree/pull/138
// eslint-disable-next-line jest/no-commented-out-tests
// test('against test file', async () => {
// const result = await graph({
// entrypoint: 'packages/bar/test/unit/index.test.ts',
// rootDir,
// })
// expect(result).toStrictEqual({
// [`${rootDir}/packages/bar/test/unit/index.test.ts`]: new Set([
// `${rootDir}/packages/bar/src/index.ts`,
// ]),
// [`${rootDir}/packages/bar/src/index.ts`]: new Set([
// `${rootDir}/packages/foo/src/index.ts`,
// ]),
// [`${rootDir}/packages/foo/src/index.ts`]: new Set([
// `${rootDir}/packages/foo/src/hello.ts`,
// ]),
// [`${rootDir}/packages/foo/src/hello.ts`]: new Set([]),
// })
// })
test('against test file', async () => {
const result = await graph({
entrypoint: 'packages/bar/test/unit/index.test.ts',
rootDir,
})
expect(result).toStrictEqual({
[`${rootDir}/packages/bar/test/unit/index.test.ts`]: new Set([
`${rootDir}/packages/bar/src/index.ts`,
]),
[`${rootDir}/packages/bar/src/index.ts`]: new Set([
`${rootDir}/packages/foo/src/index.ts`,
]),
[`${rootDir}/packages/foo/src/index.ts`]: new Set([
`${rootDir}/packages/foo/src/hello.ts`,
]),
[`${rootDir}/packages/foo/src/hello.ts`]: new Set([]),
})
})
test('non-existent file', async () => {
const result = await graph({
entrypoint: 'packages/bar/src/non-existent.ts',
Expand All @@ -72,15 +72,15 @@ describe('graph', () => {
describe('dependsOn', () => {
// TODO: uncomment this test once `path mapping` is resolved by PR: https://github.com/dependents/node-dependency-tree/pull/138
// eslint-disable-next-line jest/no-commented-out-tests
// test('through typescript path mapping', async () => {
// await expect(
// dependsOn({
// rootDir,
// dependent: 'packages/bar/test/index.test.ts',
// dependencies: ['packages/bar/src/index.ts'],
// }),
// ).resolves.toBe(true)
// })
test('through typescript path mapping', async () => {
await expect(
dependsOn({
rootDir,
dependent: 'packages/bar/test/unit/index.test.ts',
dependencies: ['packages/bar/src/index.ts'],
}),
).resolves.toBe(true)
})

test('from a same package', async () => {
await expect(
Expand Down Expand Up @@ -114,20 +114,20 @@ describe('dependsOn', () => {
).resolves.toBe(false)

// TODO: uncomment these expectation once `path mapping` is resolved by PR: https://github.com/dependents/node-dependency-tree/pull/138
// await expect(
// dependsOn({
// rootDir,
// dependent: 'packages/bar/src/index.ts',
// dependencies: ['packages/foo/src/hello.ts'],
// }),
// ).resolves.toBe(true)
// await expect(
// dependsOn({
// rootDir,
// dependent: 'packages/bar/test/unit/index.test.ts',
// dependencies: ['packages/foo/src/hello.ts'],
// }),
// ).resolves.toBe(true)
await expect(
dependsOn({
rootDir,
dependent: 'packages/bar/src/index.ts',
dependencies: ['packages/foo/src/hello.ts'],
}),
).resolves.toBe(true)
await expect(
dependsOn({
rootDir,
dependent: 'packages/bar/test/unit/index.test.ts',
dependencies: ['packages/foo/src/hello.ts'],
}),
).resolves.toBe(true)
})

test('itself', async () => {
Expand Down
93 changes: 27 additions & 66 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 comment on commit 6face81

@vercel
Copy link

@vercel vercel bot commented on 6face81 Nov 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

haetae – ./

haetae-git-main-jjangga0214.vercel.app
haetae-jjangga0214.vercel.app
haetae-mu.vercel.app

Please sign in to comment.