#!/usr/bin/env node const { copyFileAsync, mkdirpAsync, readFileAsync, toolsPath, writeFileAsync, writeScript, runCommand } = require('./lib'); // Copy ts lint config (async function init() { try { // Copy stub config files from the tools path in node_modules to local await copyFileAsync(toolsPath('template/tsmill.json'), 'tsmill.json'); await copyFileAsync(toolsPath('template/tslint.json.template'), 'tslint.json'); await copyFileAsync(toolsPath('template/tsconfig.json.template'), 'tsconfig.json'); await copyFileAsync(toolsPath('template/prettier.config.js'), 'prettier.config.js'); await copyFileAsync(toolsPath('template/jest.config.js'), 'jest.config.js'); await copyFileAsync(toolsPath('template/.gitignore.template'), '.gitignore'); await copyFileAsync(toolsPath('template/webpack.config.js'), 'webpack.config.js'); // Copy starter files await mkdirpAsync('src'); await mkdirpAsync('static'); await copyFileAsync(toolsPath('template/src/index.ts'), 'src/index.ts'); await copyFileAsync(toolsPath('template/src/index.test.ts'), 'src/index.test.ts'); await copyFileAsync(toolsPath('template/src/api.ts'), 'src/api.ts'); await copyFileAsync(toolsPath('template/src/server.ts'), 'src/server.ts'); await copyFileAsync(toolsPath('template/src/client.ts'), 'src/client.ts'); await copyFileAsync(toolsPath('template/static/index.html'), 'static/index.html'); await copyFileAsync(toolsPath('template/static/npmlogo.png'), 'static/npmlogo.png'); await copyFileAsync(toolsPath('template/static/styles.css'), 'static/styles.css'); // Alter package json const data = await readFileAsync('package.json'); const pkg = JSON.parse(data.toString('utf8')); writeScript(pkg, 'test', 'tsm test'); writeScript(pkg, 'build', 'tsm build'); writeScript(pkg, 'lint', 'tsm lint'); writeScript(pkg, 'format', 'tsm format'); writeScript(pkg, 'start', 'tsm start'); await writeFileAsync('package.json', JSON.stringify(pkg, null, 2)); } catch (e) { console.error(e); } })();