use canonical_url for everything #187
7 changed files with 69 additions and 44 deletions
19
dist/bundle.es.js
vendored
19
dist/bundle.es.js
vendored
|
@ -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 : '') +
|
||||
|
|
20
flow-typed/lbryURI.js
vendored
Normal file
20
flow-typed/lbryURI.js
vendored
Normal file
|
@ -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,
|
||||
};
|
|
@ -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"
|
||||
|
|
|
@ -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'),
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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;
|
||||
|
|
32
yarn.lock
32
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"
|
||||
|
|
Loading…
Reference in a new issue