Skip to content

Commit

Permalink
feat(utils): LIB
Browse files Browse the repository at this point in the history
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
  • Loading branch information
unicornware committed Feb 6, 2023
1 parent def90ca commit ea9bb62
Show file tree
Hide file tree
Showing 7 changed files with 241 additions and 6 deletions.
90 changes: 90 additions & 0 deletions __tests__/baselines/lib.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/**
* @file Test Baselines - LIB
* @module tests/baselines/LIB
*/

export default [
'decorators.legacy',
'decorators',
'dom.iterable',
'dom',
'es5',
'es6',
'es7',
'es2015.collection',
'es2015.core',
'es2015.generator',
'es2015.iterable',
'es2015.promise',
'es2015.proxy',
'es2015.reflect',
'es2015.symbol.wellknown',
'es2015.symbol',
'es2015',
'es2016.array.include',
'es2016.full',
'es2016',
'es2017.full',
'es2017.intl',
'es2017.object',
'es2017.sharedmemory',
'es2017.string',
'es2017.typedarrays',
'es2017',
'es2018.asyncgenerator',
'es2018.asynciterable',
'es2018.full',
'es2018.intl',
'es2018.promise',
'es2018.regexp',
'es2018',
'es2019.array',
'es2019.full',
'es2019.intl',
'es2019.object',
'es2019.string',
'es2019.symbol',
'es2019',
'es2020.bigint',
'es2020.date',
'es2020.full',
'es2020.intl',
'es2020.number',
'es2020.promise',
'es2020.sharedmemory',
'es2020.string',
'es2020.symbol.wellknown',
'es2020',
'es2021.full',
'es2021.intl',
'es2021.promise',
'es2021.string',
'es2021.weakref',
'es2021',
'es2022.array',
'es2022.error',
'es2022.full',
'es2022.intl',
'es2022.object',
'es2022.regexp',
'es2022.sharedmemory',
'es2022.string',
'es2022',
'es2023.array',
'es2023.full',
'es2023',
'esnext.array',
'esnext.asynciterable',
'esnext.bigint',
'esnext.full',
'esnext.intl',
'esnext.promise',
'esnext.string',
'esnext.symbol',
'esnext.weakref',
'esnext',
'scripthost',
'webworker.importscripts',
'webworker.iterable',
'webworker'
] as const
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
"@flex-development/errnode": "1.5.0",
"@flex-development/mlly": "1.0.0-alpha.9",
"@flex-development/pathe": "1.0.3",
"@flex-development/tsconfig-types": "3.0.0",
"@flex-development/tsconfig-types": "3.2.0",
"@flex-development/tutils": "6.0.0-alpha.10",
"merge-anything": "5.1.4",
"sort-keys": "5.0.0",
Expand Down
17 changes: 17 additions & 0 deletions src/utils/__tests__/lib.spec-d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* @file Type Tests - LIB
* @module tsconfig-utils/utils/tests/unit-d/LIB
*/

import type { Lib, LibFile } from '@flex-development/tsconfig-types'
import type TEST_SUBJECT from '../lib'

describe('unit-d:utils/LIB', () => {
it('should equal type of Map<Lowercase<Lib>, LibFile>', () => {
// Arrange
type Expected = Map<Lowercase<Lib>, LibFile>

// Expect
expectTypeOf<typeof TEST_SUBJECT>().toEqualTypeOf<Expected>()
})
})
23 changes: 23 additions & 0 deletions src/utils/__tests__/lib.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* @file Unit Tests - LIB
* @module tsconfig-utils/utils/tests/unit/LIB
*/

import BASELINE from '#tests/baselines/lib'
import TEST_SUBJECT from '../lib'

describe('unit:utils/LIB', () => {
it('should be instance of Map', () => {
expect(TEST_SUBJECT).to.be.instanceof(Map)
})

it('should contain lib names', () => {
expect([...TEST_SUBJECT.keys()]).to.deep.equal(BASELINE)
})

it('should map lib names to lib filenames', () => {
for (const [name, filename] of TEST_SUBJECT.entries()) {
expect(filename).to.equal(`lib.${name}.d.ts`)
}
})
})
1 change: 1 addition & 0 deletions src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/

export { default as COMPILER_OPTIONS } from './compiler-options'
export { default as LIB } from './lib'
export { default as loadCompilerOptions } from './load-compiler-options'
export { default as loadLibConfig } from './load-lib-config'
export { default as loadPathAliases } from './load-path-aliases'
Expand Down
104 changes: 104 additions & 0 deletions src/utils/lib.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/**
* @file Utilities - LIB
* @module tsconfig-utils/utils/LIB
*/

import type { Lib, LibFile } from '@flex-development/tsconfig-types'

/**
* Maps lowercase [lib names][1] to files in the `node_modules/typescript/lib`
* directory.
*
* [1]: https://www.typescriptlang.org/tsconfig#lib
*
* @const {Map<Lowercase<Lib>, LibFile>} LIB
*/
const LIB: Map<Lowercase<Lib>, LibFile> = new Map<Lowercase<Lib>, LibFile>(
[
'decorators.legacy',
'decorators',
'dom.iterable',
'dom',
'es5',
'es6',
'es7',
'es2015.collection',
'es2015.core',
'es2015.generator',
'es2015.iterable',
'es2015.promise',
'es2015.proxy',
'es2015.reflect',
'es2015.symbol.wellknown',
'es2015.symbol',
'es2015',
'es2016.array.include',
'es2016.full',
'es2016',
'es2017.full',
'es2017.intl',
'es2017.object',
'es2017.sharedmemory',
'es2017.string',
'es2017.typedarrays',
'es2017',
'es2018.asyncgenerator',
'es2018.asynciterable',
'es2018.full',
'es2018.intl',
'es2018.promise',
'es2018.regexp',
'es2018',
'es2019.array',
'es2019.full',
'es2019.intl',
'es2019.object',
'es2019.string',
'es2019.symbol',
'es2019',
'es2020.bigint',
'es2020.date',
'es2020.full',
'es2020.intl',
'es2020.number',
'es2020.promise',
'es2020.sharedmemory',
'es2020.string',
'es2020.symbol.wellknown',
'es2020',
'es2021.full',
'es2021.intl',
'es2021.promise',
'es2021.string',
'es2021.weakref',
'es2021',
'es2022.array',
'es2022.error',
'es2022.full',
'es2022.intl',
'es2022.object',
'es2022.regexp',
'es2022.sharedmemory',
'es2022.string',
'es2022',
'es2023.array',
'es2023.full',
'es2023',
'esnext.array',
'esnext.asynciterable',
'esnext.bigint',
'esnext.full',
'esnext.intl',
'esnext.promise',
'esnext.string',
'esnext.symbol',
'esnext.weakref',
'esnext',
'scripthost',
'webworker.importscripts',
'webworker.iterable',
'webworker'
].map(name => [name, `lib.${name}.d.ts`] as [Lowercase<Lib>, LibFile])
)

export default LIB
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1299,13 +1299,13 @@ __metadata:
languageName: node
linkType: hard

"@flex-development/tsconfig-types@npm:3.0.0":
version: 3.0.0
resolution: "@flex-development/tsconfig-types@npm:3.0.0::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Ftsconfig-types%2F3.0.0%2Ffcd2cf1f02f3377a624b44c74aad985ee804121c"
"@flex-development/tsconfig-types@npm:3.2.0":
version: 3.2.0
resolution: "@flex-development/tsconfig-types@npm:3.2.0::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Ftsconfig-types%2F3.2.0%2Fe49eb5faa42583a340fdff7c9ec64ac5feaf4529"
dependencies:
"@flex-development/pkg-types": "npm:2.0.0"
"@flex-development/tutils": "npm:6.0.0-alpha.10"
checksum: ad6d09fd4ac41349d928f10a77bf83d23c02215c0036a4794b49d825a693b310c043204440e47ac2bb3aa10a64c26f729a97ef6d1240d50daaa1a8f25af51fae
checksum: 3955eb124d092798c32f3d72f8b9c79e97464ad3f20521b448f1432a64762f939f04fb983299d5d38c5e0963ab4efad71f9e262a27101cc4e571e1e50f5afdf8
languageName: node
linkType: hard

Expand All @@ -1320,7 +1320,7 @@ __metadata:
"@flex-development/mkbuild": "npm:1.0.0-alpha.9"
"@flex-development/mlly": "npm:1.0.0-alpha.9"
"@flex-development/pathe": "npm:1.0.3"
"@flex-development/tsconfig-types": "npm:3.0.0"
"@flex-development/tsconfig-types": "npm:3.2.0"
"@flex-development/tutils": "npm:6.0.0-alpha.10"
"@graphql-eslint/eslint-plugin": "npm:3.15.0"
"@types/chai": "npm:4.3.4"
Expand Down

0 comments on commit ea9bb62

Please sign in to comment.