Skip to content

Commit

Permalink
feat: migrate to typescript
Browse files Browse the repository at this point in the history
BREAKING CHANGE: only dist and types getting published
  • Loading branch information
pooya parsa committed Apr 17, 2020
1 parent 1f296a4 commit d63ea3e
Show file tree
Hide file tree
Showing 10 changed files with 220 additions and 1,409 deletions.
13 changes: 0 additions & 13 deletions .babelrc

This file was deleted.

48 changes: 2 additions & 46 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,49 +1,5 @@
# Dependencies
node_modules
examples/**/*/yarn.lock
jspm_packages
package-lock.json

# Logs
*.log
npm-debug.log*

# Other
.cache

# Dist folder
*.lock
dist

# Dist example generation
examples/**/dist

# Coverage support
types
coverage
*.lcov
.nyc_output
.vscode

# Intellij idea
*.iml
.idea

# OSX
*.DS_Store
.AppleDouble
.LSOverride

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
17 changes: 0 additions & 17 deletions index.d.ts

This file was deleted.

18 changes: 12 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,21 @@
],
"main": "./dist/hookable.js",
"browser": "./dist/hookable.umd.js",
"types": "./index.d.ts",
"types": "./dist/hoookable.d.ts",
"files": [
"index.d.ts",
"src",
"dist"
],
"scripts": {
"build": "bili --module-name hookable --minify --format cjs,umd,es src/hookable.js",
"build": "rollup -c && tsc --emitDeclarationOnly",
"lint": "eslint src",
"prepublish": "yarn build",
"release": "yarn test && yarn build && standard-version && git push --follow-tags && npm publish",
"test": "yarn lint && yarn jest"
},
"devDependencies": {
"@babel/preset-env": "^7.9.5",
"@babel/preset-typescript": "^7.9.0",
"babel-jest": "latest",
"bili": "latest",
"codecov": "latest",
"eslint": "latest",
"eslint-config-standard": "latest",
Expand All @@ -42,6 +42,12 @@
"eslint-plugin-promise": "latest",
"eslint-plugin-standard": "latest",
"jest": "latest",
"standard-version": "latest"
"rollup": "^2.6.1",
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-terser": "^5.3.0",
"rollup-plugin-typescript2": "latest",
"standard-version": "latest",
"typescript": "latest"
}
}
36 changes: 36 additions & 0 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resolve'
import { terser } from 'rollup-plugin-terser'

const extensions = ['.js', '.ts', '.tsx']

export default [
{
input: './src/hookable.ts',
output: { file: './dist/hookable.js', format: 'cjs' },
plugins: [
resolve({ extensions }),
babel({
extensions,
presets: [
'@babel/preset-typescript'
]
})
]
},
{
input: './src/hookable.ts',
output: { name: 'hookable', file: './dist/hookable.min.js', format: 'umd' },
plugins: [
resolve({ extensions }),
babel({
extensions,
presets: [
'@babel/preset-env',
'@babel/preset-typescript'
]
}),
terser()
]
}
]
7 changes: 6 additions & 1 deletion src/hookable.js → src/hookable.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import { serial, flatHooks } from './utils'
import { Logger } from './types'

export default class Hookable {
constructor (logger = console) {
private _hooks: object
private _deprecatedHooks: object
private _logger: Logger

constructor (logger: Logger = console) {
this._logger = logger
this._hooks = {}
this._deprecatedHooks = {}
Expand Down
8 changes: 8 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export type unregHook = () => {}
export type hookFn = (...args: any) => Promise<void> | void

export interface Logger {
error(...args: any),
fatal?(...args: any),
warn?(...args: any)
}
2 changes: 1 addition & 1 deletion src/utils.js → src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export function flatHooks (configHooks, hooks = {}, parentName) {
export function flatHooks (configHooks, hooks = {}, parentName?) {
for (const key in configHooks) {
const subHook = configHooks[key]
const name = parentName ? `${parentName}:${key}` : key
Expand Down
19 changes: 19 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"importHelpers": false,
"noEmitHelpers": true,
"strict": false,
"esModuleInterop": true,
"outDir": "dist",
"declaration": true,
"declarationDir": "types",
"types": [
"node"
],
},
"include": [
"src"
]
}

0 comments on commit d63ea3e

Please sign in to comment.