mirror of
https://codeberg.org/keyoxide/doipjs.git
synced 2024-12-23 06:59:29 -07:00
Update code structure
This commit is contained in:
parent
1b1d11c802
commit
c262f96d4f
3 changed files with 26 additions and 27 deletions
18
src/index.js
18
src/index.js
|
@ -16,20 +16,7 @@ limitations under the License.
|
||||||
const validUrl = require('valid-url')
|
const validUrl = require('valid-url')
|
||||||
const bent = require('bent')
|
const bent = require('bent')
|
||||||
const req = bent('GET')
|
const req = bent('GET')
|
||||||
const { serviceprovidersList, serviceproviders } = require('./serviceproviders')
|
const serviceproviders = require('./serviceproviders')
|
||||||
|
|
||||||
const matchServiceproviders = (uri) => {
|
|
||||||
let matches = [], sp
|
|
||||||
|
|
||||||
serviceprovidersList.forEach((spName, i) => {
|
|
||||||
sp = serviceproviders[spName]
|
|
||||||
if (sp.reURI.test(uri)) {
|
|
||||||
matches.push(sp.processURI(uri))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return matches
|
|
||||||
}
|
|
||||||
|
|
||||||
const verify = async (uri, fingerprint, opts) => {
|
const verify = async (uri, fingerprint, opts) => {
|
||||||
if (!opts) { opts = {} }
|
if (!opts) { opts = {} }
|
||||||
|
@ -38,7 +25,7 @@ const verify = async (uri, fingerprint, opts) => {
|
||||||
throw new Error('Not a valid URI')
|
throw new Error('Not a valid URI')
|
||||||
}
|
}
|
||||||
|
|
||||||
const spMatches = matchServiceproviders(uri)
|
const spMatches = serviceproviders.match(uri)
|
||||||
|
|
||||||
if ('returnMatchesOnly' in opts && opts.returnMatchesOnly) {
|
if ('returnMatchesOnly' in opts && opts.returnMatchesOnly) {
|
||||||
return spMatches
|
return spMatches
|
||||||
|
@ -72,4 +59,3 @@ const verify = async (uri, fingerprint, opts) => {
|
||||||
|
|
||||||
exports.verify = verify
|
exports.verify = verify
|
||||||
exports.serviceproviders = serviceproviders
|
exports.serviceproviders = serviceproviders
|
||||||
exports.serviceprovidersList = serviceprovidersList
|
|
||||||
|
|
|
@ -13,16 +13,29 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
exports.serviceprovidersList = [
|
exports.list = [
|
||||||
'dns',
|
'dns',
|
||||||
'xmpp',
|
'xmpp',
|
||||||
'twitter',
|
'twitter',
|
||||||
'hackernews',
|
'hackernews',
|
||||||
]
|
]
|
||||||
|
|
||||||
exports.serviceproviders = {
|
exports.data = {
|
||||||
dns: require('./serviceproviders/dns'),
|
dns: require('./serviceproviders/dns'),
|
||||||
xmpp: require('./serviceproviders/xmpp'),
|
xmpp: require('./serviceproviders/xmpp'),
|
||||||
twitter: require('./serviceproviders/twitter'),
|
twitter: require('./serviceproviders/twitter'),
|
||||||
hackernews: require('./serviceproviders/hackernews'),
|
hackernews: require('./serviceproviders/hackernews'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.match = (uri) => {
|
||||||
|
let matches = [], sp
|
||||||
|
|
||||||
|
serviceprovidersList.forEach((spName, i) => {
|
||||||
|
sp = serviceproviders[spName]
|
||||||
|
if (sp.reURI.test(uri)) {
|
||||||
|
matches.push(sp.processURI(uri))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return matches
|
||||||
|
}
|
||||||
|
|
|
@ -18,30 +18,30 @@ const assert = require('chai').assert
|
||||||
const request = require('supertest')
|
const request = require('supertest')
|
||||||
const doipjs = require('../src')
|
const doipjs = require('../src')
|
||||||
|
|
||||||
doipjs.serviceprovidersList.forEach((sp, i) => {
|
doipjs.serviceproviders.list.forEach((sp, i) => {
|
||||||
describe(`serviceproviders.${sp}`, () => {
|
describe(`serviceproviders.${sp}`, () => {
|
||||||
it('should be an object', () => {
|
it('should be an object', () => {
|
||||||
expect(doipjs.serviceproviders[sp]).to.be.a('object')
|
expect(doipjs.serviceproviders.data[sp]).to.be.a('object')
|
||||||
})
|
})
|
||||||
it('should have a RegExp instance named "reURI"', () => {
|
it('should have a RegExp instance named "reURI"', () => {
|
||||||
expect(doipjs.serviceproviders[sp].reURI).to.be.instanceof(RegExp)
|
expect(doipjs.serviceproviders.data[sp].reURI).to.be.instanceof(RegExp)
|
||||||
})
|
})
|
||||||
it('should have a function named "processURI" (2 arguments)', () => {
|
it('should have a function named "processURI" (2 arguments)', () => {
|
||||||
expect(doipjs.serviceproviders[sp].processURI).to.be.a('function')
|
expect(doipjs.serviceproviders.data[sp].processURI).to.be.a('function')
|
||||||
expect(doipjs.serviceproviders[sp].processURI).to.have.length(2)
|
expect(doipjs.serviceproviders.data[sp].processURI).to.have.length(2)
|
||||||
})
|
})
|
||||||
it('should have an array named "tests"', () => {
|
it('should have an array named "tests"', () => {
|
||||||
expect(doipjs.serviceproviders[sp].tests).to.be.instanceof(Array)
|
expect(doipjs.serviceproviders.data[sp].tests).to.be.instanceof(Array)
|
||||||
})
|
})
|
||||||
|
|
||||||
doipjs.serviceproviders[sp].tests.forEach((test, j) => {
|
doipjs.serviceproviders.data[sp].tests.forEach((test, j) => {
|
||||||
if (test.shouldMatch) {
|
if (test.shouldMatch) {
|
||||||
it(`should match "${test.uri}"`, () => {
|
it(`should match "${test.uri}"`, () => {
|
||||||
expect(doipjs.serviceproviders[sp].reURI.test(test.uri)).to.be.true
|
expect(doipjs.serviceproviders.data[sp].reURI.test(test.uri)).to.be.true
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
it(`should not match "${test.uri}"`, () => {
|
it(`should not match "${test.uri}"`, () => {
|
||||||
expect(doipjs.serviceproviders[sp].reURI.test(test.uri)).to.be.false
|
expect(doipjs.serviceproviders.data[sp].reURI.test(test.uri)).to.be.false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue