This commit is contained in:
MICHAEL JACKSON
2017-11-25 13:25:01 -08:00
parent f3974b5e2d
commit 3a309241da
64 changed files with 635 additions and 801 deletions

View File

@ -1,2 +1,2 @@
exports.isBareModuleIdentifier = require('./utils/isBareModuleIdentifier')
exports.parseModuleIdentifier = require('./utils/parseModuleIdentifier')
exports.isBareModuleIdentifier = require("./utils/isBareModuleIdentifier")
exports.parseModuleIdentifier = require("./utils/parseModuleIdentifier")

View File

@ -1,18 +1,16 @@
const isBareModuleIdentifier = require('../isBareModuleIdentifier')
const isBareModuleIdentifier = require("../isBareModuleIdentifier")
describe('isBareModuleIdentifier', () => {
it('returns true for bare module identifiers', () => {
expect(isBareModuleIdentifier('react')).toBe(true)
expect(isBareModuleIdentifier('react-dom')).toBe(true)
expect(isBareModuleIdentifier('react-dom/server')).toBe(true)
describe("isBareModuleIdentifier", () => {
it("returns true for bare module identifiers", () => {
expect(isBareModuleIdentifier("react")).toBe(true)
expect(isBareModuleIdentifier("react-dom")).toBe(true)
expect(isBareModuleIdentifier("react-dom/server")).toBe(true)
})
it('returns false for non-bare module identifiers', () => {
expect(isBareModuleIdentifier('/absolute-path')).toBe(false)
expect(isBareModuleIdentifier('./relative-path')).toBe(false)
expect(isBareModuleIdentifier('//www.example.com/script.js')).toBe(false)
expect(isBareModuleIdentifier('https://www.example.com/script.js')).toBe(
false
)
it("returns false for non-bare module identifiers", () => {
expect(isBareModuleIdentifier("/absolute-path")).toBe(false)
expect(isBareModuleIdentifier("./relative-path")).toBe(false)
expect(isBareModuleIdentifier("//www.example.com/script.js")).toBe(false)
expect(isBareModuleIdentifier("https://www.example.com/script.js")).toBe(false)
})
})

View File

@ -1,38 +1,38 @@
const parseBareModuleIdentifier = require('../parseBareModuleIdentifier')
const parseBareModuleIdentifier = require("../parseBareModuleIdentifier")
describe('parseBareModuleIdentifier', () => {
it('parses simple identifiers', () => {
expect(parseBareModuleIdentifier('react')).toEqual({
packageName: 'react',
file: ''
describe("parseBareModuleIdentifier", () => {
it("parses simple identifiers", () => {
expect(parseBareModuleIdentifier("react")).toEqual({
packageName: "react",
file: ""
})
})
it('parses hyphenated identifiers', () => {
expect(parseBareModuleIdentifier('react-dom')).toEqual({
packageName: 'react-dom',
file: ''
it("parses hyphenated identifiers", () => {
expect(parseBareModuleIdentifier("react-dom")).toEqual({
packageName: "react-dom",
file: ""
})
})
it('parses hyphenated identifiers with a filename', () => {
expect(parseBareModuleIdentifier('react-dom/server')).toEqual({
packageName: 'react-dom',
file: '/server'
it("parses hyphenated identifiers with a filename", () => {
expect(parseBareModuleIdentifier("react-dom/server")).toEqual({
packageName: "react-dom",
file: "/server"
})
})
it('parses scoped identifiers', () => {
expect(parseBareModuleIdentifier('@babel/core')).toEqual({
packageName: '@babel/core',
file: ''
it("parses scoped identifiers", () => {
expect(parseBareModuleIdentifier("@babel/core")).toEqual({
packageName: "@babel/core",
file: ""
})
})
it('parses scoped identifiers with a filename', () => {
expect(parseBareModuleIdentifier('@babel/core/package.json')).toEqual({
packageName: '@babel/core',
file: '/package.json'
it("parses scoped identifiers with a filename", () => {
expect(parseBareModuleIdentifier("@babel/core/package.json")).toEqual({
packageName: "@babel/core",
file: "/package.json"
})
})
})

View File

@ -1,11 +1,11 @@
const URL = require('whatwg-url')
const URL = require("whatwg-url")
function isBareModuleIdentifier(id) {
return !(
URL.parseURL(id) !== null || // fully qualified URL
id.substr(0, 2) === '//' || // URL w/out protocol
['.', '/'].includes(id.charAt(0)) // local path
)
id.substr(0, 2) === "//" || // URL w/out protocol
[".", "/"].includes(id.charAt(0))
) // local path
}
module.exports = isBareModuleIdentifier

View File

@ -5,7 +5,7 @@ function parseBareModuleIdentifier(id) {
return {
packageName: match[1],
file: match[2] || ''
file: match[2] || ""
}
}

View File

@ -2,6 +2,7 @@
"name": "unpkg",
"version": "0.1.0",
"description": "The JavaScript API for unpkg",
"repository": "unpkg/unpkg",
"files": [
"modules/*.js",
"modules/utils/*.js"
@ -9,5 +10,8 @@
"main": "modules/index.js",
"dependencies": {
"whatwg-url": "^6.3.0"
}
},
"keywords": [
"unpkg"
]
}