Skip to content

Commit

Permalink
chore: types. (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
knightedcodemonkey authored Aug 6, 2023
1 parent 62cacc1 commit 17d256a
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 25 deletions.
41 changes: 21 additions & 20 deletions package-lock.json

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

18 changes: 13 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
{
"name": "@knighted/specifier",
"version": "1.0.0-rc.1",
"version": "1.0.0-rc.2",
"description": "Node.js tool for updating your ESM and CJS specifiers.",
"type": "module",
"main": "dist",
"exports": {
".": {
"import": "./dist/index.js",
"require": "./dist/cjs/index.cjs",
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
},
"default": "./dist/index.js"
},
"./package.json": "./package.json"
},
"types": "./dist/index.d.cts",
"engines": {
"node": ">=12.20.0"
},
"scripts": {
"prettier": "prettier -w src/*.js test/*.js",
"prettier": "prettier -w src/*.{js,ts} test/*.js",
"lint": "eslint src/*.js test/*.js",
"test": "c8 --reporter=text --reporter=text-summary --reporter=lcov node --test --test-reporter=spec test/*.js",
"build": "babel-dual-package src",
"build": "babel-dual-package src --copy-files --no-cjs-dir",
"prepack": "npm run build"
},
"keywords": [
Expand Down Expand Up @@ -56,6 +63,7 @@
"magic-string": "^0.30.1"
},
"devDependencies": {
"@babel/preset-env": "^7.22.9",
"@knighted/dump": "^1.0.2",
"babel-dual-package": "^1.0.0",
"c8": "^8.0.0",
Expand Down
60 changes: 60 additions & 0 deletions src/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import type { SourceMap } from 'magic-string'

interface Position {
line: number
column: number
}
interface SourceLocation {
start: Position
end: Position
}
interface UpdateError {
error: boolean
msg: string
filename?: string
syntaxError?: {
code: string
reasonCode: string
pos: number
loc: Position
}
}
interface Spec {
type: 'StringLiteral' | 'TemplateLiteral' | 'BinaryExpression' | 'NewExpression'
start: number
end: number
value: string
loc: SourceLocation
}
interface Opts {
dts?: boolean
sourceMap?: boolean
}
interface Update {
code?: string
map?: SourceMap | null
error?: UpdateError
}
interface RegexMap {
[regex: string]: string
}
type Callback = (spec: Spec) => string

interface Specifier {
mapper: (
filename: string,
map: { [regex: string]: string },
) => Promise<string | UpdateError>
update: (
filename: string,
callbackOrMap: Callback | RegexMap,
) => Promise<string | UpdateError>
updateSrc: (
code: string,
callbackOrMap: Callback | RegexMap,
opts?: Opts,
) => Promise<Update>
}

export const specifier: Specifier
export type { Specifier, Spec, Callback, RegexMap, Update, UpdateError, Opts }

0 comments on commit 17d256a

Please sign in to comment.