Skip to content

Commit be5b3d7

Browse files
authored
Fix load-order issue that could cause overrides to error (#384)
1 parent e4da759 commit be5b3d7

File tree

7 files changed

+25
-24
lines changed

7 files changed

+25
-24
lines changed

server/docs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const cache = require('./cache')
88
const formatter = require('./formatter')
99
const log = require('./logger')
1010
const {getAuth} = require('./auth')
11-
const {slugify} = require('./utils')
11+
const {slugify} = require('./text')
1212

1313
const supportedTypes = new Set(['document', 'spreadsheet', 'text/html'])
1414

server/list.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const cache = require('./cache')
88
const log = require('./logger')
99
const {getAuth} = require('./auth')
1010
const {isSupported} = require('./utils')
11-
const {slugify, cleanName} = require('./utils')
11+
const {cleanName, slugify} = require('./text')
1212

1313
const driveType = process.env.DRIVE_TYPE
1414
const driveId = process.env.DRIVE_ID

server/routes/categories.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ const router = require('express-promise-router')()
55
const log = require('../logger')
66
const {getMeta} = require('../list')
77
const {fetchDoc} = require('../docs')
8-
const {cleanName} = require('../utils')
98
const {getTemplates, sortDocs, stringTemplate, formatUrl, pathPrefix} = require('../utils')
9+
const {cleanName} = require('../text')
1010
const {parseUrl} = require('../urlParser')
1111

1212
router.get('*', handleCategory)

server/routes/playlists.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ const router = require('express-promise-router')()
55
const log = require('../logger')
66
const {getMeta, getPlaylist} = require('../list')
77
const {fetchDoc} = require('../docs')
8-
const {stringTemplate, formatUrl, pathPrefix, cleanName} = require('../utils')
8+
const {stringTemplate, formatUrl, pathPrefix} = require('../utils')
9+
const {cleanName} = require('../text')
910
const {parseUrl} = require('../urlParser')
1011

1112
router.get('*', handlePlaylist)

server/text.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const slugify = require('slugify')
2+
3+
exports.cleanName = (name = '') => {
4+
return name
5+
.trim()
6+
// eslint-disable-next-line no-useless-escape
7+
.replace(/^(\d+[-_\s]*)([^\d\/\-^\s]+)/, '$2') // remove leading numbers and delimiters
8+
.replace(/\s*\|\s*([^|]+)$/i, '') // remove trailing pipe and tags
9+
.replace(/\.[^.]+$/, '') // remove file extensions
10+
}
11+
12+
exports.slugify = (text = '') => {
13+
// convert non alpha numeric into whitespace, rather than removing
14+
const alphaNumeric = text.replace(/[^\p{L}\p{N}]+/ug, ' ')
15+
return slugify(alphaNumeric, {
16+
lower: true
17+
})
18+
}

server/utils.js

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
const fs = require('fs')
33
const path = require('path')
44
const {promisify} = require('util')
5-
const slugify = require('slugify')
65
const yaml = require('js-yaml')
76
const {get: deepProp} = require('lodash')
87
const merge = require('deepmerge')
@@ -46,23 +45,6 @@ exports.sortDocs = (a, b) => {
4645
return b.resourceType === 'folder' ? 1 : -1
4746
}
4847

49-
exports.cleanName = (name = '') => {
50-
return name
51-
.trim()
52-
// eslint-disable-next-line no-useless-escape
53-
.replace(/^(\d+[-_\s]*)([^\d\/\-^\s]+)/, '$2') // remove leading numbers and delimiters
54-
.replace(/\s*\|\s*([^|]+)$/i, '') // remove trailing pipe and tags
55-
.replace(/\.[^.]+$/, '') // remove file extensions
56-
}
57-
58-
exports.slugify = (text = '') => {
59-
// convert non alpha numeric into whitespace, rather than removing
60-
const alphaNumeric = text.replace(/[^\p{L}\p{N}]+/ug, ' ')
61-
return slugify(alphaNumeric, {
62-
lower: true
63-
})
64-
}
65-
6648
// attempts to require from attemptPath. If file isn't present, looks for a
6749
// file of the same name in the server dir
6850
exports.requireWithFallback = (attemptPath) => {

test/unit/utils.test.js renamed to test/unit/text.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
const {expect} = require('chai')
44

5-
const {cleanName, slugify} = require('../../server/utils')
5+
const {cleanName, slugify} = require('../../server/text')
66

7-
describe('Utils', () => {
7+
describe('Text Utils', () => {
88
describe('Name Cleaner', () => {
99
it('should remove leading numbers and delimeters', () => {
1010
expect(cleanName('0000123abc12345')).equals('abc12345')

0 commit comments

Comments
 (0)