@sequencemedia/minimserver 1.1.27 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+
4
+ npm run post-commit
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+
4
+ npm run pre-commit
package/app.mjs CHANGED
@@ -12,7 +12,7 @@ import psList from 'ps-list'
12
12
 
13
13
  import commander from 'commander'
14
14
 
15
- import execute from '#minimserver'
15
+ import minimServer from '#minimserver'
16
16
 
17
17
  const log = debug('@sequencemedia/minimserver')
18
18
 
@@ -44,7 +44,7 @@ async function app () {
44
44
  pid
45
45
  } = a.find(({ pid }) => pid !== PID)
46
46
 
47
- const log = debug('@sequencemedia/minimserver:process:log')
47
+ const log = debug('@sequencemedia/minimserver:process')
48
48
 
49
49
  log(`Killing application "${name}" in process ${pid}.`)
50
50
 
@@ -61,9 +61,6 @@ async function app () {
61
61
  pid,
62
62
  argv,
63
63
  env: {
64
- ORIGIN,
65
- DESTINATION,
66
- SERVER,
67
64
  IGNORE,
68
65
  BOUNCE
69
66
  }
@@ -99,9 +96,9 @@ async function app () {
99
96
  }
100
97
 
101
98
  const {
102
- origin = ORIGIN,
103
- destination = DESTINATION,
104
- server = SERVER,
99
+ origin,
100
+ destination,
101
+ server,
105
102
  ignore = IGNORE,
106
103
  bounce = BOUNCE
107
104
  } = commander.opts()
@@ -115,9 +112,9 @@ async function app () {
115
112
  })
116
113
 
117
114
  try {
118
- await execute(origin, destination, server, ignore, bounce)
115
+ await minimServer(origin, destination, server, ignore, bounce)
119
116
  } catch ({ message }) {
120
- const error = debug('@sequencemedia/minimserver:execute:error')
117
+ const error = debug('@sequencemedia/minimserver:error')
121
118
 
122
119
  error(message)
123
120
  }
@@ -0,0 +1,48 @@
1
+ import debug from 'debug'
2
+
3
+ import {
4
+ readFile
5
+ } from 'fs/promises'
6
+
7
+ import {
8
+ exec
9
+ } from 'child_process'
10
+
11
+ const OPTIONS = {
12
+ maxBuffer: 1024 * 500
13
+ }
14
+
15
+ const log = debug('@sequencemedia/minimserver:build:gulp:post-commit')
16
+ const error = debug('@sequencemedia/minimserver:build:gulp:post-commit:error')
17
+
18
+ log('`@sequencemedia/minimserver` is awake')
19
+
20
+ export async function getPackageVersion () {
21
+ log('getPackageVersion')
22
+
23
+ const {
24
+ version = '0.0.0'
25
+ } = JSON.parse(await readFile('./package.json', 'utf8'))
26
+
27
+ return version
28
+ }
29
+
30
+ export function gitTag (a = '0.0.0', m = `v${a}`) {
31
+ log('gitTag')
32
+
33
+ return (
34
+ new Promise((resolve, reject) => {
35
+ exec(`git tag -a v${a} -m "${m}"`, OPTIONS, (e, v) => (!e) ? resolve(v) : reject(e))
36
+ })
37
+ )
38
+ }
39
+
40
+ export default async function postCommit () {
41
+ log('post-commit')
42
+
43
+ try {
44
+ await gitTag(await getPackageVersion())
45
+ } catch ({ code = 'NONE', message = 'No error message defined' }) {
46
+ error({ code, message })
47
+ }
48
+ }
@@ -0,0 +1,145 @@
1
+ import debug from 'debug'
2
+
3
+ import {
4
+ exec
5
+ } from 'child_process'
6
+
7
+ const log = debug('@sequencemedia/minimserver:build:gulp:pre-commit')
8
+ const error = debug('@sequencemedia/minimserver:build:gulp:pre-commit:error')
9
+
10
+ log('`@sequencemedia/minimserver` is awake')
11
+
12
+ const PACKAGE_VERSION_CHANGES = /\-+\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+\++\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+/ /* eslint-disable-line no-useless-escape */
13
+
14
+ const HAS_STAGED_CHANGES = /Changes to be committed/s
15
+
16
+ const NOT_STAGED_CHANGES = /Changes not staged for commit/s
17
+
18
+ const OPTIONS = {
19
+ maxBuffer: 1024 * 500
20
+ }
21
+
22
+ const BRANCH = 'master'
23
+
24
+ const trim = (v) => v.split('\n').map((v) => v.trimEnd()).join('\n').trim()
25
+
26
+ function use (key) {
27
+ const log = debug(`@sequencemedia/minimserver:${key}`)
28
+
29
+ return function use (v) {
30
+ log(trim(v))
31
+ }
32
+ }
33
+
34
+ export function getGitRemoteShowOriginHeadBranch () {
35
+ log('getGitRemoteShowOriginHeadBranch')
36
+
37
+ return (
38
+ new Promise((resolve, reject) => {
39
+ const command = 'git remote show origin | awk \'/HEAD branch/ {print $NF}\''
40
+
41
+ const {
42
+ stdout,
43
+ stderr
44
+ } = exec(command, OPTIONS, (e, v = '') => (!e) ? resolve(trim(v)) : reject(e))
45
+
46
+ stdout.on('data', use('git-remote-show-origin-head-branch'))
47
+ stderr.on('data', use('git-remote-show-origin-head-branch'))
48
+ })
49
+ )
50
+ }
51
+
52
+ export function hasPackageVersionChanges (branch = BRANCH) {
53
+ log('hasPackageVersionChanges')
54
+
55
+ return (
56
+ new Promise((resolve, reject) => {
57
+ exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v)) : reject(e))
58
+ })
59
+ )
60
+ }
61
+
62
+ export function notPackageVersionChanges (branch = BRANCH) {
63
+ log('notPackageVersionChanges')
64
+
65
+ return (
66
+ new Promise((resolve, reject) => {
67
+ exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v) !== true) : reject(e))
68
+ })
69
+ )
70
+ }
71
+
72
+ export function hasStagedChanges () {
73
+ log('hasStagedChanges')
74
+
75
+ return (
76
+ new Promise((resolve, reject) => {
77
+ exec('git status', OPTIONS, (e, v) => (!e) ? resolve(HAS_STAGED_CHANGES.test(v)) : reject(e))
78
+ })
79
+ )
80
+ }
81
+
82
+ export function notStagedChanges () {
83
+ log('notStagedChanges')
84
+
85
+ return (
86
+ new Promise((resolve, reject) => {
87
+ exec('git status', OPTIONS, (e, v) => (!e) ? resolve(NOT_STAGED_CHANGES.test(v)) : reject(e))
88
+ })
89
+ )
90
+ }
91
+
92
+ export function notPushedChanges (branch = BRANCH) {
93
+ log('notPushedChanges')
94
+
95
+ return (
96
+ new Promise((resolve, reject) => {
97
+ exec(`git log origin/${branch}..HEAD`, OPTIONS, (e, v) => (!e) ? resolve(!!v) : reject(e))
98
+ })
99
+ )
100
+ }
101
+
102
+ export function patchPackageVersion () {
103
+ log('patchPackageVersion')
104
+
105
+ return (
106
+ new Promise((resolve, reject) => {
107
+ exec('npm version patch -m %s -n --no-git-tag-version --no-verify', OPTIONS, (e) => (!e) ? resolve() : reject(e))
108
+ })
109
+ )
110
+ }
111
+
112
+ export function addPackageVersionChanges () {
113
+ log('addPackageVersionChanges')
114
+
115
+ return (
116
+ new Promise((resolve, reject) => {
117
+ exec('git add package.json package-lock.json', OPTIONS, (e) => (!e) ? resolve() : reject(e))
118
+ })
119
+ )
120
+ }
121
+
122
+ export default async function preCommit () {
123
+ log('pre-commit')
124
+
125
+ try {
126
+ /**
127
+ * Not changes added, exit
128
+ */
129
+ if (await notStagedChanges()) return
130
+ /**
131
+ * Has changes added, continue
132
+ */
133
+ if (await hasStagedChanges()) {
134
+ /**
135
+ * Not package version changes, continue
136
+ */
137
+ if (await notPackageVersionChanges(await getGitRemoteShowOriginHeadBranch())) {
138
+ await patchPackageVersion()
139
+ await addPackageVersionChanges()
140
+ }
141
+ }
142
+ } catch ({ code = 'NONE', message = 'No error message defined' }) {
143
+ error({ code, message })
144
+ }
145
+ }
package/gulpfile.mjs ADDED
@@ -0,0 +1,13 @@
1
+ import gulp from 'gulp'
2
+
3
+ import preCommit from '#build/gulp/pre-commit'
4
+ import postCommit from '#build/gulp/post-commit'
5
+
6
+ gulp
7
+ .task('pre-commit', preCommit)
8
+
9
+ gulp
10
+ .task('post-commit', postCommit)
11
+
12
+ gulp
13
+ .task('default', gulp.series('pre-commit'))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sequencemedia/minimserver",
3
- "version": "1.1.27",
3
+ "version": "1.2.3",
4
4
  "description": "Watch for changes to M3Us and rescan MinimServer",
5
5
  "keywords": [
6
6
  "minimserver",
@@ -32,7 +32,11 @@
32
32
  "lint": "eslint . --ext .mjs --ext .cjs",
33
33
  "lint:fix": "npm run lint -- --fix",
34
34
  "start": "cross-env DEBUG=@sequencemedia/minimserver* NODE_ENV=production node .",
35
- "dev": "cross-env DEBUG=@sequencemedia/minimserver* NODE_ENV=development node ."
35
+ "dev": "cross-env DEBUG=@sequencemedia/minimserver* NODE_ENV=development node .",
36
+ "gulp": "gulp --color",
37
+ "pre-commit": "npm run lint && cross-env DEBUG=@sequencemedia/minimserver,@sequencemedia/minimserver:* npm run gulp -- pre-commit",
38
+ "post-commit": "cross-env DEBUG=@sequencemedia/minimserver,@sequencemedia/minimserver:* npm run gulp -- post-commit",
39
+ "prepare": "husky install"
36
40
  },
37
41
  "dependencies": {
38
42
  "anymatch": "^3.1.2",
@@ -56,9 +60,12 @@
56
60
  "eslint-config-standard": "^16.0.3",
57
61
  "eslint-plugin-import": "^2.25.3",
58
62
  "eslint-plugin-node": "^11.1.0",
59
- "eslint-plugin-promise": "5.2.0"
63
+ "eslint-plugin-promise": "5.2.0",
64
+ "gulp": "^4.0.2",
65
+ "husky": "^7.0.4"
60
66
  },
61
67
  "imports": {
62
- "#minimserver": "./src/index.mjs"
68
+ "#minimserver": "./src/index.mjs",
69
+ "#build/gulp/*": "./build/gulp/*.mjs"
63
70
  }
64
71
  }
package/src/index.mjs CHANGED
@@ -351,7 +351,7 @@ export function ignorePatternFactory (ignore) {
351
351
  }
352
352
  }
353
353
 
354
- export default async function execute (
354
+ export default async function minimServer (
355
355
  origin = '.',
356
356
  destination = '.',
357
357
  server = 'http://0.0.0.0:9790',
@@ -359,7 +359,7 @@ export default async function execute (
359
359
  bounce = 60000
360
360
  ) {
361
361
  /*
362
- * log('execute')
362
+ * log('minimServer')
363
363
  */
364
364
  let watcher
365
365