diff --git a/.npmignore b/.npmignore index bc8ec0d..e03b4b5 100644 --- a/.npmignore +++ b/.npmignore @@ -6,3 +6,4 @@ node_modules !/**/*.d.ts e2e/reports !e2e/*.ts +publish-next.js diff --git a/publish-next.js b/publish-next.js new file mode 100644 index 0000000..3ac9a7e --- /dev/null +++ b/publish-next.js @@ -0,0 +1,30 @@ +#!/usr/bin/env node + +const { readFileSync, writeFileSync } = require("fs"); +const { resolve } = require("path"); + +const getPackageJsonPath = projectDir => resolve(projectDir, "package.json"); +const getPackageJson = projectDir => { + const packageJsonPath = getPackageJsonPath(projectDir); + return JSON.parse(readFileSync(packageJsonPath, "utf8")); +} +const writePackageJson = (content, projectDir) => { + const packageJsonPath = getPackageJsonPath(projectDir); + writeFileSync(packageJsonPath, JSON.stringify(content, null, 2)); +} + +const tag = "next"; +const projectDir = __dirname; +const packageJson = getPackageJson(projectDir); +const [, , packageVersion = new Date().toISOString().split("T")[0] ] = process.argv; + +packageJson.publishConfig = Object.assign( + packageJson.publishConfig || {}, + { tag } +); + +const currentVersion = packageJson.version; +const nextVersion = `${currentVersion}-${packageVersion}`; +const newPackageJson = Object.assign(packageJson, { version: nextVersion }); + +writePackageJson(newPackageJson, projectDir);