diff --git a/circle.yml b/circle.yml index 5c99c0e..8fa6bdd 100644 --- a/circle.yml +++ b/circle.yml @@ -41,6 +41,9 @@ jobs: - run: name: Install npm command: npm install + - run: + name: Prep Dist Folder + command: npm run dist - run: name: Build command: npm run build diff --git a/package-lock.json b/package-lock.json index a13ef2c..e649226 100644 --- a/package-lock.json +++ b/package-lock.json @@ -285,6 +285,12 @@ "integrity": "sha512-/UMY+2GkOZ27Vrc51pqC5J8SPd39FKt7kkoGAtWJ8s4msj0b15KehDWIiJpWY3/7tLxBQLLzJhIBhnEsXdzpgw==", "dev": true }, + "@types/node": { + "version": "10.5.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.8.tgz", + "integrity": "sha512-sWSjw+bYW/2W+1V3m8tVsm9PKJcxk3NHN7oRqNUfEdofKg0Imbdu1dQbFvLKjZQXEDXRN6IfSMACjJ7Wv4NGCQ==", + "dev": true + }, "JSONStream": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", @@ -4321,6 +4327,12 @@ "yallist": "^2.1.2" } }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -9751,6 +9763,46 @@ "lodash": "^4.17.10" } }, + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.8.tgz", + "integrity": "sha512-WqAEWPdb78u25RfKzOF0swBpY0dKrNdjc4GvLwm7ScX/o9bj8Eh/YL8mcMhBHYDGl87UkkSXDOFnW4G7GhWhGg==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -10270,6 +10322,12 @@ "dev": true } } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true } } } diff --git a/package.json b/package.json index 1bba1e0..5bf5ccf 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "typescript-monads", "version": "0.0.0-development", "description": "Write better TypeScript code", - "main": "dist/index.js", + "main": "index.js", "author": "Patrick Michalina (https://patrickmichalina.com)", "license": "MIT", "repository": { @@ -18,12 +18,10 @@ "either", "functional" ], - "files": [ - "dist/" - ], "scripts": { "test": "jest", "build": "tsc", + "dist": "node_modules/.bin/ts-node ./scripts/publish-prep.ts", "lint": "tslint --project tsconfig.json --config tslint.json" }, "release": { @@ -36,11 +34,13 @@ }, "devDependencies": { "@types/jest": "^23.3.1", + "@types/node": "^10.5.8", "codecov": "^3.0.4", "jest": "23.4.2", "jest-junit": "^5.1.0", "semantic-release": "^15.9.8", "ts-jest": "23.1.3", + "ts-node": "^7.0.1", "tslint": "^5.11.0", "tslint-immutable": "^4.6.0", "typescript": "^3.0.1" diff --git a/scripts/publish-prep.ts b/scripts/publish-prep.ts new file mode 100644 index 0000000..74e3ad6 --- /dev/null +++ b/scripts/publish-prep.ts @@ -0,0 +1,34 @@ +import { mkdir, copyFileSync } from 'fs' +import { resolve } from 'path' + +const targetDir = 'dist' +const filesToCopy: ReadonlyArray = [ + 'package.json', + 'README.md', + 'LICENSE' +] + +function run(dir: string) { + return function(files: ReadonlyArray) { + mkdir(resolve(dir), dirResolved(files)(dir)) + } +} + +function mapper(dir: string) { + return function (file: string) { + return { + from: resolve(file), + to: resolve(dir, file) + } + } +} + +function dirResolved(files: ReadonlyArray) { + return function(dir: string) { + return function (_err?: any) { + files.map(mapper(dir)).forEach(paths => copyFileSync(paths.from, paths.to)) + } + } +} + +run(targetDir)(filesToCopy) \ No newline at end of file