diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 45fb468..53a51a9 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -898,9 +898,6 @@ const getSearchQueryString = (query, options = {}, includeUserOptions = false) = var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -// -const isProduction = process.env.NODE_ENV === 'production'; const channelNameMinLength = 1; const claimIdMaxLength = 40; @@ -1036,26 +1033,14 @@ function buildURI(UrlObj, includeProto = true, protoDefault = 'lbry://') { deprecatedParts = _objectWithoutProperties(UrlObj, ['streamName', 'streamClaimId', 'channelName', 'channelClaimId', 'primaryClaimSequence', 'primaryBidPosition', 'secondaryClaimSequence', 'secondaryBidPosition']); const { claimId, claimName, contentName } = deprecatedParts; - if (!isProduction) { - if (claimId) { - console.error(__("'claimId' should no longer be used. Use 'streamClaimId' or 'channelClaimId' instead")); - } - if (claimName) { - console.error(__("'claimName' should no longer be used. Use 'streamClaimName' or 'channelClaimName' instead")); - } - if (contentName) { - console.error(__("'contentName' should no longer be used. Use 'streamName' instead")); - } - } - if (!claimName && !channelName && !streamName) { throw new Error(__("'claimName', 'channelName', and 'streamName' are all empty. One must be present to build a url.")); } const formattedChannelName = channelName && (channelName.startsWith('@') ? channelName : `@${channelName}`); - const primaryClaimName = claimName || formattedChannelName || streamName; + const primaryClaimName = claimName || contentName || formattedChannelName || streamName; const primaryClaimId = claimId || (formattedChannelName ? channelClaimId : streamClaimId); - const secondaryClaimName = !claimName && (formattedChannelName ? streamName : null); + const secondaryClaimName = !claimName && contentName || (formattedChannelName ? streamName : null); const secondaryClaimId = secondaryClaimName && streamClaimId; return (includeProto ? protoDefault : '') + diff --git a/flow-typed/lbryURI.js b/flow-typed/lbryURI.js new file mode 100644 index 0000000..4365da3 --- /dev/null +++ b/flow-typed/lbryURI.js @@ -0,0 +1,20 @@ +// @flow +declare type LbryUrlObj = { + // Path and channel will always exist when calling parseURI + // But they may not exist when code calls buildURI + isChannel?: boolean, + path?: string, + streamName?: string, + streamClaimId?: string, + channelName?: string, + channelClaimId?: string, + primaryClaimSequence?: number, + secondaryClaimSequence?: number, + primaryBidPosition?: number, + secondaryBidPosition?: number, + + // Below are considered deprecated and should not be used due to unreliableness with claim.canonical_url + claimName?: string, + claimId?: string, + contentName?: string, +}; diff --git a/package.json b/package.json index 21b595f..ca6b815 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "main": "dist/bundle.es.js", "module": "dist/bundle.es.js", "scripts": { - "build": "rollup --config", + "build": "NODE_ENV=production rollup --config", "dev": "rollup --config --watch", "precommit": "flow check && lint-staged", "lint": "eslint 'src/**/*.js' --fix", @@ -59,7 +59,8 @@ "rollup-plugin-copy": "^1.1.0", "rollup-plugin-eslint": "^5.1.0", "rollup-plugin-flow": "^1.1.1", - "rollup-plugin-includepaths": "^0.2.3" + "rollup-plugin-includepaths": "^0.2.3", + "rollup-plugin-replace": "^2.2.0" }, "engines": { "yarn": "^1.3" diff --git a/rollup.config.js b/rollup.config.js index 30de832..2b898d6 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,6 +2,7 @@ import babel from 'rollup-plugin-babel'; import flow from 'rollup-plugin-flow'; import includePaths from 'rollup-plugin-includepaths'; import copy from 'rollup-plugin-copy'; +import replace from 'rollup-plugin-replace'; let includePathOptions = { include: {}, @@ -10,6 +11,8 @@ let includePathOptions = { extensions: ['.js'], }; +const production = process.env.NODE_ENV === 'production'; + export default { input: 'src/index.js', output: { @@ -24,5 +27,10 @@ export default { presets: ['stage-2'], }), copy({ targets: ['flow-typed'] }), + replace({ + 'process.env.NODE_ENV': production + ? JSON.stringify('production') + : JSON.stringify('development'), + }), ], }; diff --git a/src/lbryURI.js b/src/lbryURI.js index 323d509..3a67e6e 100644 --- a/src/lbryURI.js +++ b/src/lbryURI.js @@ -27,28 +27,6 @@ const regexPartModifierSeparator = '([:$#]?)([^/]*)'; * - secondaryBidPosition (int, if present) */ -type ChannelUrlObj = {}; - -type LbryUrlObj = { - // Path and channel will always exist when calling parseURI - // But they may not exist when code calls buildURI - isChannel?: boolean, - path?: string, - streamName?: string, - streamClaimId?: string, - channelName?: string, - channelClaimId?: string, - primaryClaimSequence?: number, - secondaryClaimSequence?: number, - primaryBidPosition?: number, - secondaryBidPosition?: number, - - // Below are considered deprecated and should not be used due to unreliableness with claim.canonical_url - claimName?: string, - claimId?: string, - contentName?: string, -}; - export function parseURI(URL: string, requireProto: boolean = false): LbryUrlObj { // Break into components. Empty sub-matches are converted to null const componentsRegex = new RegExp( @@ -216,9 +194,10 @@ export function buildURI( const formattedChannelName = channelName && (channelName.startsWith('@') ? channelName : `@${channelName}`); - const primaryClaimName = claimName || formattedChannelName || streamName; + const primaryClaimName = claimName || contentName || formattedChannelName || streamName; const primaryClaimId = claimId || (formattedChannelName ? channelClaimId : streamClaimId); - const secondaryClaimName = !claimName && (formattedChannelName ? streamName : null); + const secondaryClaimName = + (!claimName && contentName) || (formattedChannelName ? streamName : null); const secondaryClaimId = secondaryClaimName && streamClaimId; return ( diff --git a/src/redux/actions/search.js b/src/redux/actions/search.js index 2e134bc..d5c6ce3 100644 --- a/src/redux/actions/search.js +++ b/src/redux/actions/search.js @@ -119,7 +119,7 @@ export const doSearch = ( data.forEach(result => { if (result) { const { name, claimId } = result; - const urlObj = {}; + const urlObj: LbryUrlObj = {}; if (name.startsWith('@')) { urlObj.channelName = name; diff --git a/yarn.lock b/yarn.lock index 49dc513..156e422 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1911,6 +1911,11 @@ estree-walker@^0.6.0: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.0.tgz#5d865327c44a618dde5699f763891ae31f257dae" integrity sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw== +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -3440,6 +3445,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +magic-string@^0.25.2: + version "0.25.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.3.tgz#34b8d2a2c7fec9d9bdf9929a3fd81d271ef35be9" + integrity sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA== + dependencies: + sourcemap-codec "^1.4.4" + make-dir@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" @@ -4379,6 +4391,14 @@ rollup-plugin-includepaths@^0.2.3: resolved "https://registry.yarnpkg.com/rollup-plugin-includepaths/-/rollup-plugin-includepaths-0.2.3.tgz#244d21b9669a0debe476d825e4a02ed08c06b258" integrity sha512-4QbSIZPDT+FL4SViEVCRi4cGCA64zQJu7u5qmCkO3ecHy+l9EQBsue15KfCpddfb6Br0q47V/v2+E2YUiqts9g== +rollup-plugin-replace@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3" + integrity sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA== + dependencies: + magic-string "^0.25.2" + rollup-pluginutils "^2.6.0" + rollup-pluginutils@^1.5.0, rollup-pluginutils@^1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" @@ -4395,6 +4415,13 @@ rollup-pluginutils@^2.3.0: estree-walker "^0.6.0" micromatch "^3.1.10" +rollup-pluginutils@^2.6.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" + integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== + dependencies: + estree-walker "^0.6.1" + rollup@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.8.0.tgz#e3ce8b708ad4325166717f74f244f691595d35e2" @@ -4613,6 +4640,11 @@ source-map@^0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sourcemap-codec@^1.4.4: + version "1.4.6" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" + integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== + spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"