URLPattern ওয়েব প্ল্যাটফর্মে রাউটিং নিয়ে আসে

সাধারণ প্যাটার্ন ম্যাচিং ব্যবহারের ক্ষেত্রে মানসম্মত করার একটি পদ্ধতি।

পটভূমি

রাউটিং প্রতিটি ওয়েব অ্যাপ্লিকেশনের একটি মূল অংশ। এর মূলে, রাউটিং একটি ইউআরএল নেওয়া, এতে কিছু প্যাটার্ন ম্যাচিং বা অন্যান্য অ্যাপ-নির্দিষ্ট যুক্তি প্রয়োগ করা এবং তারপরে, সাধারণত, ফলাফলের উপর ভিত্তি করে ওয়েব সামগ্রী প্রদর্শন করা জড়িত। রাউটিং বিভিন্ন উপায়ে প্রয়োগ করা যেতে পারে: এটি কখনও কখনও একটি সার্ভারে চলমান কোড যা ডিস্কে ফাইলগুলির একটি পথ ম্যাপ করে, বা একটি একক-পৃষ্ঠার অ্যাপে লজিক যা বর্তমান অবস্থানে পরিবর্তনের জন্য অপেক্ষা করে এবং এর সাথে সম্পর্কিত DOM-এর একটি অংশ তৈরি করে প্রদর্শন

যদিও কোনো নির্দিষ্ট মান নেই, ওয়েব ডেভেলপাররা ইউআরএল রাউটিং প্যাটার্ন প্রকাশ করার জন্য একটি সাধারণ সিনট্যাক্সের দিকে আকৃষ্ট হয়েছে যা regular expressions সাথে অনেক বেশি মিল, কিন্তু কিছু ডোমেন-নির্দিষ্ট সংযোজন যেমন টোকেনগুলির সাথে মিলিত পথের অংশগুলির জন্য। এক্সপ্রেস এবং রুবি অন রেলের মতো জনপ্রিয় সার্ভার-সাইড ফ্রেমওয়ার্কগুলি এই সিনট্যাক্স ব্যবহার করে (বা এটির খুব কাছাকাছি কিছু), এবং জাভাস্ক্রিপ্ট বিকাশকারীরা তাদের নিজস্ব কোডে সেই যুক্তি যোগ করতে path-to-regexp বা regexpparam মতো মডিউল ব্যবহার করতে পারে।

URLPattern হল ওয়েব প্ল্যাটফর্মের একটি সংযোজন যা এই ফ্রেমওয়ার্কগুলির দ্বারা তৈরি ভিত্তির উপর তৈরি করে৷ এর লক্ষ্য হল একটি রাউটিং প্যাটার্ন সিনট্যাক্সকে মানক করা, যার মধ্যে ওয়াইল্ডকার্ডের সমর্থন, নামযুক্ত টোকেন গ্রুপ, রেগুলার এক্সপ্রেশন গ্রুপ এবং গ্রুপ মডিফায়ার। এই সিনট্যাক্সের সাথে তৈরি করা URLPattern দৃষ্টান্তগুলি সাধারণ রাউটিং কাজগুলি সম্পাদন করতে পারে, যেমন পূর্ণ URL বা একটি URL pathname সাথে মিল করা এবং টোকেন এবং গোষ্ঠীর মিল সম্পর্কে তথ্য ফেরত দেওয়া৷

ওয়েব প্ল্যাটফর্মে সরাসরি ইউআরএল ম্যাচিং প্রদান করার আরেকটি সুবিধা হল যে একটি সাধারণ সিনট্যাক্স তারপরে অন্যান্য API-এর সাথে শেয়ার করা যেতে পারে যেগুলি ইউআরএলগুলির সাথে মেলে।

ব্রাউজার সমর্থন এবং পলিফিলস

URLPattern ডিফল্টরূপে Chrome এবং Edge সংস্করণ 95 এবং তার উপরে সক্রিয় করা আছে।

urlpattern-polyfill লাইব্রেরি ব্রাউজারে বা নোডের মতো পরিবেশে URLPattern ইন্টারফেস ব্যবহার করার একটি উপায় প্রদান করে যেখানে অন্তর্নির্মিত সমর্থন নেই। আপনি যদি পলিফিল ব্যবহার করেন তবে নিশ্চিত করুন যে আপনি বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করছেন তা নিশ্চিত করুন যে আপনি কেবলমাত্র বর্তমান পরিবেশে সমর্থনের অভাব থাকলে এটি লোড করছেন। অন্যথায়, আপনি URLPattern এর একটি মূল সুবিধা হারাবেন: সত্য যে সমর্থন পরিবেশগুলিকে এটি ব্যবহার করার জন্য অতিরিক্ত কোড ডাউনলোড এবং পার্স করতে হবে না।

if (!(globalThis && 'URLPattern' in globalThis)) {
  // URLPattern is not available, so the polyfill is needed.
}

সিনট্যাক্স সামঞ্জস্য

URLPattern জন্য একটি পথনির্দেশক দর্শন হল পুনঃউদ্ভাবন এড়ানো। আপনি যদি ইতিমধ্যেই এক্সপ্রেস বা রুবি অন রেলে ব্যবহৃত রাউটিং সিনট্যাক্সের সাথে পরিচিত হন তবে আপনাকে নতুন কিছু শিখতে হবে না। কিন্তু জনপ্রিয় রাউটিং লাইব্রেরিতে সিনট্যাক্সের মধ্যে সামান্য ভিন্নতার কারণে, বেস সিনট্যাক্স হিসাবে কিছু বেছে নিতে হয়েছিল, এবং URLPattern এর ডিজাইনাররা প্যাটার্ন সিনট্যাক্স থেকে path-to-regexp (যদিও এর API সারফেস নয়) প্রারম্ভিক বিন্দু হিসাবে ব্যবহার করার সিদ্ধান্ত নিয়েছে। .

path-to-regexp বর্তমান রক্ষণাবেক্ষণকারীর সাথে ঘনিষ্ঠ পরামর্শের পর এই সিদ্ধান্ত নেওয়া হয়েছে।

সমর্থিত সিনট্যাক্সের মূলের সাথে নিজেকে পরিচিত করার সর্বোত্তম উপায় হল path-to-regexp জন্য ডকুমেন্টেশন উল্লেখ করা। আপনি GitHub-এ তার বর্তমান বাড়িতে MDN- এ প্রকাশের উদ্দেশ্যে ডকুমেন্টেশন পড়তে পারেন।

অতিরিক্ত বৈশিষ্ট্য

URLPattern এর সিনট্যাক্স হল একটি সুপারসেট যা path-to-regexp সমর্থন করে, কারণ URLPattern রাউটিং লাইব্রেরিগুলির মধ্যে একটি অস্বাভাবিক বৈশিষ্ট্যকে সমর্থন করে: হোস্টনামে ওয়াইল্ডকার্ড সহ মিলিত উত্স । বেশিরভাগ অন্যান্য রাউটিং লাইব্রেরিগুলি কেবল পাথনাম , এবং মাঝে মাঝে একটি URL এর অনুসন্ধান বা হ্যাশ অংশ নিয়ে কাজ করে। তাদের কখনই একটি URL এর মূল অংশ পরীক্ষা করতে হবে না, কারণ সেগুলি শুধুমাত্র একটি স্বয়ংসম্পূর্ণ ওয়েব অ্যাপের মধ্যে একই-অরিজিন রাউটিং এর জন্য ব্যবহার করা হয়।

অরিজিনগুলিকে অ্যাকাউন্টে নিলে অতিরিক্ত ব্যবহারের ক্ষেত্রে দরজা খুলে যায়, যেমন কোনও পরিষেবা কর্মীর fetch ইভেন্ট হ্যান্ডলারের ভিতরে ক্রস-অরিজিন অনুরোধগুলি রাউটিং করা। আপনি যদি শুধুমাত্র একই-অরিজিন ইউআরএল রাউটিং করেন, আপনি কার্যকরভাবে এই অতিরিক্ত বৈশিষ্ট্যটিকে উপেক্ষা করতে পারেন এবং অন্যান্য লাইব্রেরির মতো URLPattern ব্যবহার করতে পারেন।

উদাহরণ

প্যাটার্ন নির্মাণ

একটি URLPattern তৈরি করতে, এর কনস্ট্রাক্টরকে হয় স্ট্রিং বা একটি বস্তু পাস করুন যার বৈশিষ্ট্যগুলির সাথে মেলে প্যাটার্ন সম্পর্কে তথ্য রয়েছে।

একটি অবজেক্ট পাস করা প্রতিটি URL কম্পোনেন্টের সাথে মেলানোর জন্য কোন প্যাটার্ন ব্যবহার করতে হবে তার উপর সবচেয়ে সুস্পষ্ট নিয়ন্ত্রণ প্রদান করে। এটির সবচেয়ে ভার্বস এ, এই মত দেখতে পারেন

const p = new URLPattern({
  protocol: 'https',
  username: '',
  password: '',
  hostname: 'example.com',
  port: '',
  pathname: '/foo/:image.jpg',
  search: '*',
  hash: '*',
});

একটি প্রপার্টির জন্য একটি খালি স্ট্রিং প্রদান করা শুধুমাত্র তখনই মিলবে যদি URL-এর সংশ্লিষ্ট অংশ সেট করা না থাকে। ওয়াইল্ডকার্ড * ইউআরএলের একটি প্রদত্ত অংশের জন্য যেকোনো মানের সাথে মিলবে।

কনস্ট্রাক্টর সহজ ব্যবহারের জন্য বিভিন্ন শর্টকাট অফার করে। সম্পূর্ণরূপে search এবং hash বাদ দেওয়া, বা অন্য কোনো বৈশিষ্ট্য, তাদের '*' ওয়াইল্ডকার্ডে সেট করার সমতুল্য। উপরের উদাহরণটি সরলীকরণ করা যেতে পারে

const p = new URLPattern({
  protocol: 'https',
  username: '',
  password: '',
  hostname: 'example.com',
  port: '',
  pathname: '/foo/:image.jpg',
});

একটি অতিরিক্ত শর্টকাট হিসাবে, উৎপত্তি সম্পর্কে সমস্ত তথ্য একটি একক সম্পত্তি, baseURL এ প্রদান করা যেতে পারে, যার ফলে

const p = new URLPattern({
  pathname: '/foo/:image.jpg',
  baseURL: 'https://example.com',
});

এই সমস্ত উদাহরণ অনুমান করে যে আপনার ব্যবহারের ক্ষেত্রে মিলিত উত্স জড়িত। আপনি যদি শুধুমাত্র ইউআরএলের অন্যান্য অংশের সাথে মিল করতে আগ্রহী হন, মূলটি বাদ দিয়ে (যেমনটি অনেক "প্রথাগত" একক-অরিজিন রাউটিং পরিস্থিতির ক্ষেত্রে হয়), তাহলে আপনি মূল তথ্য সম্পূর্ণরূপে বাদ দিতে পারেন, এবং কিছু সংমিশ্রণ প্রদান করতে পারেন pathname , search এবং hash বৈশিষ্ট্যের। আগের মতো, বাদ দেওয়া বৈশিষ্ট্যগুলিকে এমনভাবে বিবেচনা করা হবে যেন সেগুলি * ওয়াইল্ডকার্ড প্যাটার্নে সেট করা হয়েছে৷

const p = new URLPattern({pathname: '/foo/:image.jpg'});

কনস্ট্রাক্টরের কাছে একটি বস্তু পাস করার বিকল্প হিসাবে, আপনি একটি বা দুটি স্ট্রিং প্রদান করতে পারেন। যদি একটি স্ট্রিং প্রদান করা হয়, তাহলে এটি একটি সম্পূর্ণ URL প্যাটার্নের প্রতিনিধিত্ব করবে, যার মধ্যে প্যাটার্নের তথ্য রয়েছে যা মূলের সাথে মেলে। আপনি যদি দুটি স্ট্রিং প্রদান করেন, দ্বিতীয় স্ট্রিংটি একটি baseURL হিসাবে ব্যবহৃত হয় এবং প্রথম স্ট্রিংটিকে সেই বেসের সাথে আপেক্ষিক হিসাবে বিবেচনা করা হয়।

একটি স্ট্রিং বা দুটি প্রদান করা হোক না কেন, URLPattern কনস্ট্রাক্টর সম্পূর্ণ URL প্যাটার্ন পার্স করবে, এটিকে URL উপাদানে বিভক্ত করবে এবং বৃহত্তর প্যাটার্নের প্রতিটি অংশকে সংশ্লিষ্ট উপাদানে ম্যাপ করবে। এর মানে হল যে হুডের নিচে, স্ট্রিং দিয়ে তৈরি প্রতিটি URLPattern একটি অবজেক্টের সাথে তৈরি করা সমতুল্য URLPattern মতোই উপস্থাপন করা হয়। যারা কম ভার্বোস ইন্টারফেস পছন্দ করেন তাদের জন্য স্ট্রিং কনস্ট্রাক্টর হল একটি শর্টকাট।

const p = new URLPattern('https://example.com/foo/:image.jpg?*#*');

একটি URLPattern তৈরি করতে স্ট্রিং ব্যবহার করার সময়, মনে রাখতে কয়েকটি সতর্কতা রয়েছে।

URLPattern নির্মাণের জন্য একটি বস্তু ব্যবহার করার সময় একটি সম্পত্তি ছেড়ে দেওয়া সেই সম্পত্তির জন্য * ওয়াইল্ডকার্ড প্রদানের সমতুল্য। যখন সম্পূর্ণ URL স্ট্রিং প্যাটার্ন পার্স করা হয়, যদি URL উপাদানগুলির একটিতে একটি মান অনুপস্থিত থাকে, তাহলে এটিকে এমনভাবে বিবেচনা করা হয় যেন কম্পোনেন্টের বৈশিষ্ট্য '' তে সেট করা হয়েছে, যা শুধুমাত্র সেই উপাদানটি খালি থাকলেই মিলবে৷

স্ট্রিং ব্যবহার করার সময়, আপনি যদি চান যে তৈরি করা URLPattern এ ব্যবহার করা হোক তাহলে আপনাকে স্পষ্টভাবে ওয়াইল্ডকার্ডগুলি অন্তর্ভুক্ত করতে হবে।

// p1 and p2 are equivalent.
const p1 = new URLPattern('/foo', location.origin);
const p2 = new URLPattern({
  protocol: location.protocol,
  hostname: location.hostname,
  pathname: '/foo',
  search: '',
  hash: '',
});

// p3 and p4 are equivalent.
const p3 = new URLPattern('/foo?*#*', location.origin);
const p4 = new URLPattern({
  protocol: location.protocol,
  hostname: location.hostname,
  pathname: '/foo',
});

আপনার এটিও সচেতন হওয়া উচিত যে একটি স্ট্রিং প্যাটার্নকে এর উপাদানগুলিতে পার্স করা সম্ভাব্য অস্পষ্ট। এমন অক্ষর আছে, যেমন : , যেগুলো URL-এ পাওয়া যায় কিন্তু প্যাটার্ন ম্যাচিং সিনট্যাক্সে বিশেষ অর্থও রয়েছে। এই অস্পষ্টতা এড়াতে, URLPattern কনস্ট্রাক্টর অনুমান করে যে এই বিশেষ অক্ষরগুলির মধ্যে যেকোনো একটি প্যাটার্নের অংশ, URL এর অংশ নয়। আপনি যদি URL-এর অংশ হিসাবে একটি অস্পষ্ট অক্ষরকে ব্যাখ্যা করতে চান, তাহলে এটিকে একটি \` character. For example, the literal URL about:blank একটি স্ট্রিং হিসাবে প্রদান করা হলে 'about\:blank'` should be escaped as

প্যাটার্ন ব্যবহার করে

একটি URLPattern তৈরি করার পরে, এটি ব্যবহার করার জন্য আপনার কাছে দুটি বিকল্প রয়েছে। test() এবং exec() পদ্ধতি উভয়ই একই ইনপুট নেয় এবং একই অ্যালগরিদম ব্যবহার করে একটি ম্যাচ পরীক্ষা করে এবং শুধুমাত্র তাদের রিটার্ন মানের মধ্যে পার্থক্য থাকে। test() প্রদত্ত ইনপুটের সাথে মিল থাকলে true ফেরত দেয় এবং অন্যথায় falseexec() ক্যাপচার গ্রুপ সহ ম্যাচ সম্পর্কে বিস্তারিত তথ্য প্রদান করে, অথবা যদি কোনো মিল না থাকে তাহলে null । নিম্নলিখিত উদাহরণগুলি exec() ব্যবহার করে প্রদর্শন করে, কিন্তু আপনি যদি শুধুমাত্র একটি সাধারণ বুলিয়ান রিটার্ন মান চান তবে আপনি তাদের যেকোনোটির জন্য test() এ অদলবদল করতে পারেন।

test() এবং exec() পদ্ধতি ব্যবহার করার একটি উপায় হল স্ট্রিং-এ পাস করা। কনস্ট্রাক্টর যেটি সমর্থন করে তার অনুরূপ, যদি একটি একক স্ট্রিং প্রদান করা হয়, তবে এটি মূল সহ একটি সম্পূর্ণ URL হওয়া উচিত। যদি দুটি স্ট্রিং প্রদান করা হয়, দ্বিতীয় স্ট্রিংটিকে একটি baseURL মান হিসাবে বিবেচনা করা হয় এবং প্রথম স্ট্রিংটিকে সেই বেসের সাথে সম্পর্কিত হিসাবে মূল্যায়ন করা হয়।

const p = new URLPattern({
  pathname: '/foo/:image.jpg',
  baseURL: 'https://example.com',
});

const result = p.exec('https://example.com/foo/cat.jpg');
// result will contain info about the successful match.
// const result = p.exec('/foo/cat.jpg', 'https://example.com')
// is equivalent, using the baseURL syntax.

const noMatchResult = p.exec('https://example.com/bar');
// noMatchResult will be null.

বিকল্পভাবে, আপনি একই ধরণের অবজেক্ট পাস করতে পারেন যা কনস্ট্রাক্টর সমর্থন করে, এমন বৈশিষ্ট্যগুলির সাথে যেগুলি ইউআরএলের শুধুমাত্র অংশগুলিতে সেট করা আছে যা আপনি মেলার বিষয়ে যত্নশীল।

const p = new URLPattern({pathname: '/foo/:image.jpg'});

const result = p.exec({pathname: '/foo/:image.jpg'});
// result will contain info about the successful match.

ওয়াইল্ডকার্ড বা টোকেন ধারণকারী URLPattern exec() ব্যবহার করার সময়, রিটার্ন মান আপনাকে ইনপুট URL-এ সংশ্লিষ্ট মানগুলি সম্পর্কে তথ্য দেবে। এটি আপনাকে সেই মানগুলিকে পার্স করার ঝামেলা থেকে বাঁচাতে পারে।

const p = new URLPattern({
  hostname: ':subdomain.example.com',
  pathname: '/*/:image.jpg'
});

const result = p.exec('https://imagecdn1.example.com/foo/cat.jpg');
// result.hostname.groups.subdomain will be 'imagecdn1'
// result.pathname.groups[0] will be 'foo', corresponding to *
// result.pathname.groups.image will be 'cat'

বেনামী এবং নামধারী গ্রুপ

আপনি যখন exec() এ একটি URL স্ট্রিং পাস করেন, তখন আপনি প্যাটার্নের সমস্ত গোষ্ঠীর সাথে কোন অংশ মিলেছে তা বলে একটি মান ফিরে পাবেন।

রিটার্ন মানটিতে এমন বৈশিষ্ট্য রয়েছে যা URLPattern এর উপাদানগুলির সাথে সঙ্গতিপূর্ণ, যেমন pathname । তাই যদি URLPattern এর pathname অংশের অংশ হিসেবে কোনো গোষ্ঠীকে সংজ্ঞায়িত করা হয়, তাহলে মিলগুলো রিটার্ন মানের pathname.groups এ পাওয়া যাবে। সংশ্লিষ্ট প্যাটার্নটি একটি বেনামী বা নামযুক্ত গ্রুপ ছিল কিনা তার উপর নির্ভর করে ম্যাচগুলিকে ভিন্নভাবে উপস্থাপন করা হয়।

আপনি একটি বেনামী প্যাটার্ন ম্যাচের মানগুলি অ্যাক্সেস করতে অ্যারে সূচক ব্যবহার করতে পারেন। যদি একাধিক বেনামী প্যাটার্ন থাকে, তাহলে সূচক 0 বাম-সবচেয়ে একটির জন্য মিলিত মানকে প্রতিনিধিত্ব করবে, 1 এবং পরবর্তী প্যাটার্নগুলির জন্য আরও সূচক ব্যবহার করা হবে।

একটি প্যাটার্নে নামযুক্ত গোষ্ঠীগুলি ব্যবহার করার সময়, মিলগুলি বৈশিষ্ট্য হিসাবে প্রকাশ করা হবে যার নামগুলি প্রতিটি গোষ্ঠীর নামের সাথে মিলে যায়৷

ইউনিকোড সমর্থন এবং স্বাভাবিককরণ

URLPattern কয়েকটি ভিন্ন উপায়ে ইউনিকোড অক্ষর সমর্থন করে।

  • নামযুক্ত গ্রুপ, যেমন :café , ইউনিকোড অক্ষর থাকতে পারে। বৈধ জাভাস্ক্রিপ্ট শনাক্তকারীর জন্য ব্যবহৃত নিয়মগুলি নামযুক্ত গোষ্ঠীগুলিতে প্রযোজ্য।

  • একটি প্যাটার্নের মধ্যে পাঠ্যটি সেই নির্দিষ্ট উপাদানের URL এনকোডিংয়ের জন্য ব্যবহৃত একই নিয়ম অনুসারে স্বয়ংক্রিয়ভাবে এনকোড করা হবে। pathname মধ্যে ইউনিকোড অক্ষরগুলি শতাংশ-এনকোড করা হবে, তাই /café মতো একটি pathname প্যাটার্ন স্বয়ংক্রিয়ভাবে /caf%C3%A9 এ স্বাভাবিক করা হয়। hostname ইউনিকোড অক্ষরগুলি শতাংশ-এনকোডিংয়ের পরিবর্তে পুনিকোড ব্যবহার করে স্বয়ংক্রিয়ভাবে এনকোড করা হয়।

  • রেগুলার এক্সপ্রেশন গ্রুপে শুধুমাত্র ASCII অক্ষর থাকতে হবে। রেগুলার এক্সপ্রেশন সিনট্যাক্স এই গোষ্ঠীতে স্বয়ংক্রিয়ভাবে ইউনিকোড অক্ষর এনকোড করা কঠিন এবং অনিরাপদ করে তোলে। আপনি যদি একটি রেগুলার এক্সপ্রেশন গ্রুপে একটি ইউনিকোড অক্ষর মেলাতে চান, তাহলে café সাথে মেলে (caf%C3%A9) এর মতো আপনাকে ম্যানুয়ালি শতাংশ এনকোড করতে হবে।

ইউনিকোড অক্ষর এনকোড করার পাশাপাশি, URLPattern URL স্বাভাবিককরণও করে। উদাহরণস্বরূপ, /foo/./bar pathname কম্পোনেন্টের সমতুল্য /foo/bar সাথে সঙ্কুচিত হয়।

প্রদত্ত ইনপুট প্যাটার্ন কীভাবে স্বাভাবিক করা হয়েছে তা নিয়ে সন্দেহ হলে, আপনার ব্রাউজারের DevTools ব্যবহার করে নির্মিত URLPattern উদাহরণটি পরিদর্শন করুন।

এটা সব একসাথে নির্বাণ

নীচে এমবেড করা গ্লিচ ডেমো একটি পরিষেবা কর্মীর fetch event handler ভিতরে URLPattern এর একটি মূল ব্যবহারের ক্ষেত্রে চিত্রিত করে, অ্যাসিঙ্ক্রোনাস ফাংশনে নির্দিষ্ট প্যাটার্ন ম্যাপ করে যা নেটওয়ার্ক অনুরোধের প্রতিক্রিয়া তৈরি করতে পারে। এই উদাহরণের ধারণাগুলি অন্যান্য রাউটিং পরিস্থিতিতেও প্রয়োগ করা যেতে পারে, হয় সার্ভার-সাইড বা ক্লায়েন্ট-সাইড।

প্রতিক্রিয়া এবং ভবিষ্যতের পরিকল্পনা

যদিও URLPattern এর মৌলিক কার্যকারিতা Chrome এবং Edge-এ তৈরি হয়েছে, সেখানে সংযোজনের পরিকল্পনা করা হয়েছে। URLPattern এর কিছু দিক এখনও তৈরি করা হচ্ছে , এবং নির্দিষ্ট আচরণ সম্পর্কে অনেকগুলি খোলা প্রশ্ন রয়েছে যা এখনও পরিমার্জিত হতে পারে। আমরা আপনাকে URLPattern ব্যবহার করে দেখতে এবং GitHub সমস্যার মাধ্যমে যেকোনো প্রতিক্রিয়া প্রদান করতে উৎসাহিত করি।

টেমপ্লেটিং জন্য সমর্থন

path-to-regexp লাইব্রেরি একটি compile() function প্রদান করে যা কার্যকরভাবে রাউটিং আচরণকে বিপরীত করে। compile() টোকেন স্থানধারকগুলির জন্য একটি প্যাটার্ন এবং মান নেয় এবং একটি URL পাথের জন্য একটি স্ট্রিং প্রদান করে যেখানে সেই মানগুলি প্রতিস্থাপিত হয়।

আমরা ভবিষ্যতে URLPattern-এ এটি যোগ করার আশা করি, কিন্তু এটি প্রাথমিক প্রকাশের সুযোগের মধ্যে নয়।

ভবিষ্যত ওয়েব প্ল্যাটফর্ম বৈশিষ্ট্য সক্রিয় করা

ধরে নিই যে URLPattern ওয়েব প্ল্যাটফর্মের একটি প্রতিষ্ঠিত অংশ হয়ে উঠেছে, অন্যান্য বৈশিষ্ট্য যা রাউটিং বা প্যাটার্ন ম্যাচিং থেকে উপকৃত হতে পারে সেগুলি একটি আদিম হিসাবে এটির উপরে তৈরি করতে পারে।

পরিষেবা কর্মী স্কোপ প্যাটার্ন ম্যাচিং , ফাইল হ্যান্ডলার হিসাবে PWA , এবং অনুমানমূলক প্রিফেচিং এর মত প্রস্তাবিত বৈশিষ্ট্যগুলির জন্য URLPattern ব্যবহার করার বিষয়ে চলমান আলোচনা চলছে।

স্বীকৃতি

স্বীকৃতির সম্পূর্ণ তালিকার জন্য মূল ব্যাখ্যাকারী নথিটি দেখুন।