diff --git a/package-lock.json b/package-lock.json index 583f272..5e3fcf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@logdna/browser", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -855,9 +855,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz", - "integrity": "sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz", + "integrity": "sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -1314,6 +1314,25 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "@types/fs-extra": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", + "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -3295,6 +3314,65 @@ "to-regex-range": "^5.0.1" } }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8471,6 +8549,63 @@ "fsevents": "~2.3.1" } }, + "rollup-plugin-copy": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.4.0.tgz", + "integrity": "sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ==", + "dev": true, + "requires": { + "@types/fs-extra": "^8.0.1", + "colorette": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "10.0.1", + "is-plain-object": "^3.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", @@ -8483,6 +8618,57 @@ "terser": "^5.0.0" } }, + "rollup-plugin-typescript2": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", + "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.1.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "8.1.0", + "resolve": "1.20.0", + "tslib": "2.1.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + } + } + }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", diff --git a/package.json b/package.json index e101826..43b0334 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { "name": "@logdna/browser", "version": "1.1.0", - "main": "dist/index.js", + "module": "dist/index.esm.js", "license": "MIT", "types": "./dist/types/index.d.ts", "scripts": { - "build": "rollup -c rollup.config.ts", + "clean": "rm -rf dist", + "build": "npm run clean && rollup -c rollup.config.ts", "start": "rollup -c rollup.config.ts -w", "test": "jest", "test:watch": "jest --watch", @@ -41,7 +42,7 @@ }, "homepage": "https://github.com/logdna/logdna-browser#readme", "devDependencies": { - "@rollup/plugin-commonjs": "^16.0.0", + "@rollup/plugin-commonjs": "^19.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^10.0.0", "@rollup/plugin-replace": "^2.3.4", @@ -56,7 +57,9 @@ "prettier": "^1.14.3", "pretty-quick": "^3.1.0", "rollup": "^2.33.1", + "rollup-plugin-copy": "^3.4.0", "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.30.0", "semantic-release": "^17.4.2", "semantic-release-config-logdna": "^1.1.1", "serve": "^11.3.2", @@ -84,4 +87,4 @@ ], "extends": "semantic-release-config-logdna" } -} +} \ No newline at end of file diff --git a/rollup.config.ts b/rollup.config.ts index 0169805..84ef15d 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -1,15 +1,29 @@ import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from '@rollup/plugin-typescript'; +import typescript from 'rollup-plugin-typescript2'; import json from '@rollup/plugin-json'; import { terser } from 'rollup-plugin-terser'; import replace from '@rollup/plugin-replace'; +import copy from 'rollup-plugin-copy'; -export default { - input: `src/index.ts`, - output: { - dir: 'dist', +const OUTPUT_DATA = [ + { + input: 'src/index.ts', + file: 'dist/index.esm.js', + format: 'es', + }, + { + input: 'src/index-umd.ts', + file: 'dist/index.js', format: 'umd', + }, +]; + +const config = OUTPUT_DATA.map(({ file, format, input }) => ({ + input, + output: { + file, + format, sourcemap: true, name: 'logdna', }, @@ -19,7 +33,9 @@ export default { }, plugins: [ json(), - typescript(), + typescript({ + useTsconfigDeclarationDir: true, + }), commonjs(), resolve(), replace({ @@ -32,5 +48,10 @@ export default { comments: false, }, }), + copy({ + targets: [{ src: 'src/logdna.d.ts', dest: 'dist/types' }], + }), ], -}; +})); + +export default config; diff --git a/src/index-umd.ts b/src/index-umd.ts new file mode 100644 index 0000000..766ced7 --- /dev/null +++ b/src/index-umd.ts @@ -0,0 +1,4 @@ +//For umd build only +import LogDNABrowserLogger from './index'; + +export default LogDNABrowserLogger; diff --git a/src/index.ts b/src/index.ts index 1c21868..4249a77 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,7 +5,7 @@ import { StaticContext, ILogDNABrowserLogger, Plugin, -} from './index.d'; +} from './logdna.d'; import utils from './utils'; import { DEFAULT_INGESTION_URL, diff --git a/src/index.d.ts b/src/logdna.d.ts similarity index 100% rename from src/index.d.ts rename to src/logdna.d.ts diff --git a/src/logger.ts b/src/logger.ts index 1b5e629..5a990d5 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,4 +1,4 @@ -import { LoggerOptionsT, LogDNALogLine } from './index.d'; +import { LoggerOptionsT, LogDNALogLine } from './logdna.d'; import { LOG_LINE_FLUSH_TIMEOUT, FLUSH_BYTE_LIMIT, diff --git a/src/plugins/console.ts b/src/plugins/console.ts index d31320b..c9db57e 100644 --- a/src/plugins/console.ts +++ b/src/plugins/console.ts @@ -1,4 +1,4 @@ -import { Plugin, ILogDNABrowserLogger } from '../index.d'; +import { Plugin, ILogDNABrowserLogger } from '../logdna.d'; type LogType = 'log' | 'debug' | 'error' | 'warn' | 'info' | 'assert'; diff --git a/src/plugins/global-handlers.ts b/src/plugins/global-handlers.ts index 7edd713..9f3f964 100644 --- a/src/plugins/global-handlers.ts +++ b/src/plugins/global-handlers.ts @@ -1,4 +1,4 @@ -import { Plugin, ILogDNABrowserLogger } from '../index.d'; +import { Plugin, ILogDNABrowserLogger } from '../logdna.d'; export type Options = { enableErrorHandler?: boolean; diff --git a/src/plugins/performance-measure.ts b/src/plugins/performance-measure.ts index 5da5031..7f8b065 100644 --- a/src/plugins/performance-measure.ts +++ b/src/plugins/performance-measure.ts @@ -1,4 +1,4 @@ -import { Plugin, ILogDNABrowserLogger, LogType } from '../index.d'; +import { Plugin, ILogDNABrowserLogger, LogType } from '../logdna.d'; export type Options = { prefix?: String; logLevel?: LogType; diff --git a/src/utils.ts b/src/utils.ts index 412d174..dbab5ab 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,5 @@ import safeStringify from 'fast-safe-stringify'; -import { ContextT, LogDNABrowserOptionsT } from './index.d'; +import { ContextT, LogDNABrowserOptionsT } from './logdna.d'; import { HOSTNAME_CHECK } from './constants'; import { version } from '../package.json';