लाइब्रेरी

लाइब्रेरी एक स्क्रिप्ट प्रोजेक्ट होता है, जिसके फ़ंक्शन का दूसरी स्क्रिप्ट में फिर से इस्तेमाल किया जा सकता है.

लाइब्रेरी का ऐक्सेस पाना

अपने प्रोजेक्ट में लाइब्रेरी शामिल करने के लिए, आपके पास उसे देखने के लेवल का ऐक्सेस होना चाहिए. अगर आपको उस लाइब्रेरी का लेखक नहीं है जिसे आपको शामिल करना है, तो लेखक से संपर्क करें और उसका ऐक्सेस मांगें.

आपके पास उस लाइब्रेरी का स्क्रिप्ट आईडी होना चाहिए जिसे आपको शामिल करना है. लाइब्रेरी का ऐक्सेस होने के बाद, स्क्रिप्ट आईडी को प्रोजेक्ट सेटिंग पेज पर देखा जा सकता है.

अपने स्क्रिप्ट प्रोजेक्ट में लाइब्रेरी जोड़ना

  1. Apps Script एडिटर की बाईं ओर, "लाइब्रेरी" के बगल में, लाइब्रेरी जोड़ें पर क्लिक करें.
  2. "स्क्रिप्ट आईडी" फ़ील्ड में, लाइब्रेरी का स्क्रिप्ट आईडी चिपकाएं.
  3. लुक अप करें पर क्लिक करें.
  4. वर्शन ड्रॉपडाउन पर क्लिक करें और इस्तेमाल करने के लिए लाइब्रेरी का वर्शन चुनें.
  5. यह देखें कि डिफ़ॉल्ट "आइडेंटिफ़ायर" का नाम वह है या नहीं जिसका इस्तेमाल आपको इस लाइब्रेरी के साथ करना है. आपकी स्क्रिप्ट इस नाम का इस्तेमाल करके, लाइब्रेरी का संदर्भ देती है. उदाहरण के लिए, अगर आप इसे Test पर सेट करते हैं, तो लाइब्रेरी के किसी तरीके को इस तरह कॉल किया जा सकता है: Test.libraryMethod().
  6. जोड़ें पर क्लिक करें.

लाइब्रेरी का इस्तेमाल करना

अपनी शामिल की गई लाइब्रेरी का इस्तेमाल करें, क्योंकि कोई डिफ़ॉल्ट सेवा इस्तेमाल की जाएगी. उदाहरण के लिए, अगर Test आपकी लाइब्रेरी का आइडेंटिफ़ायर है, तो लाइब्रेरी में तरीकों की सूची देखने के लिए, Test टाइप करने के तुरंत बाद कोई अवधि टाइप करें.

शामिल की गई लाइब्रेरी के लिए रेफ़रंस दस्तावेज़, इस तरीके से खोला जा सकता है:

स्क्रिप्ट एडिटर की बाईं ओर, लाइब्रेरी के नाम के बगल में, ज़्यादा > नए टैब में खोलें पर क्लिक करें.

लाइब्रेरी हटाएं

स्क्रिप्ट एडिटर की बाईं ओर, लाइब्रेरी के नाम के बगल में, ज़्यादा > हटाएं > लाइब्रेरी हटाएं पर क्लिक करें.

लाइब्रेरी अपडेट करना

लाइब्रेरी का वर्शन बदला जा सकता है या उसके आइडेंटिफ़ायर को अपडेट किया जा सकता है.

  1. एडिटर की बाईं ओर, "लाइब्रेरी" में जाकर, लाइब्रेरी के नाम पर क्लिक करें.
  2. बदलाव करने के बाद, सेव करें पर क्लिक करें.

लाइब्रेरी बनाना और शेयर करना

अपने स्क्रिप्ट प्रोजेक्ट को लाइब्रेरी के तौर पर इस्तेमाल करने और शेयर करने के लिए, नीचे दिया गया तरीका अपनाएं.

  1. अपनी स्क्रिप्ट का एक वर्शन वाला डिप्लॉयमेंट बनाएं.
  2. लाइब्रेरी के सभी संभावित उपयोगकर्ताओं के साथ कम से कम व्यू-लेवल का ऐक्सेस शेयर करें.
  3. उन उपयोगकर्ताओं को स्क्रिप्ट आईडी दें. इसे प्रोजेक्ट सेटिंग पेज पर देखा जा सकता है.

सबसे सही तरीके

लाइब्रेरी लिखते समय इन दिशा-निर्देशों का पालन करें:

  1. अपने प्रोजेक्ट के लिए कोई सही नाम चुनें, क्योंकि जब आपकी लाइब्रेरी को दूसरे लोग शामिल करते हैं, तब डिफ़ॉल्ट आइडेंटिफ़ायर के तौर पर इसका इस्तेमाल किया जाता है.
  2. अगर आपको अपनी स्क्रिप्ट के एक या एक से ज़्यादा तरीके, लाइब्रेरी के उपयोगकर्ताओं को न दिखें (न ही इस्तेमाल करने के लिए), तो अंडरस्कोर से उस तरीके का नाम खत्म करें. उदाहरण के लिए, myPrivateMethod_().
  3. लाइब्रेरी का इस्तेमाल करने वाले लोगों को सिर्फ़ ऐसी ग्लोबल प्रॉपर्टी दिखती हैं जिनकी गिनती हो सकती है. इसमें फ़ंक्शन एलान, var की मदद से फ़ंक्शन के बाहर बनाए गए वैरिएबल, और ग्लोबल ऑब्जेक्ट पर खास तौर से सेट की गई प्रॉपर्टी शामिल हैं. उदाहरण के लिए, जब Object.defineProperty() का enumerable पर false सेट होता है, तो इससे एक सिंबल बनता है. इसे लाइब्रेरी में इस्तेमाल किया जा सकता है, लेकिन आपके उपयोगकर्ता इस सिंबल को ऐक्सेस नहीं कर सकते.
  4. अगर आपको अपनी लाइब्रेरी के उपयोगकर्ताओं को स्क्रिप्ट एडिटर ऑटोकंप्लीट सुविधा और अपने-आप जनरेट हुए दस्तावेज़ों का इस्तेमाल करने देना है, तो आपके पास अपने सभी फ़ंक्शन के लिए JSDoc-स्टाइल दस्तावेज़ होना चाहिए. यहां एक उदाहरण दिया गया है:

    /**
     * Raises a number to the given power, and returns the result.
     *
     * @param {number} base the number we're raising to a power
     * @param {number} exp the exponent we're raising the base to
     * @return {number} the result of the exponential calculation
     */
    function power(base, exp) { ... }
    

संसाधन का दायरा

लाइब्रेरी के साथ काम करते समय आपके पास दो प्रकार के संसाधन होते हैं: शेयर किए गए संसाधन और शेयर नहीं किए गए संसाधन. शेयर किए गए संसाधन का मतलब है कि लाइब्रेरी और शामिल करने वाली स्क्रिप्ट, दोनों में संसाधन के एक जैसे इंस्टेंस का पहले से ही ऐक्सेस होता है. नीचे दिया गया डायग्राम, उपयोगकर्ता प्रॉपर्टी के उदाहरण का इस्तेमाल करके शेयर किए गए संसाधन को दिखाता है:

शेयर किया गया संसाधन

शेयर नहीं किए गए संसाधन का मतलब है कि लाइब्रेरी और शामिल करने वाली स्क्रिप्ट, दोनों में सिर्फ़ संसाधन के अपने इंस्टेंस का ऐक्सेस पहले से मौजूद है. हालांकि, लाइब्रेरी में ऐसे रिसॉर्स का ऐक्सेस दिया जा सकता है जो शेयर नहीं किए गए हैं. इसके लिए, लाइब्रेरी में कुछ फ़ंक्शन काम करते हैं. यहां एक फ़ंक्शन का उदाहरण दिया गया है, जिसे स्क्रिप्ट प्रॉपर्टी दिखाने के लिए अपनी लाइब्रेरी में शामिल किया जाएगा:

  function getLibraryProperty(key) {
    return ScriptProperties.getProperty(key);
  }

नीचे दिए गए डायग्राम में, स्क्रिप्ट प्रॉपर्टी के उदाहरण का इस्तेमाल करके ऐसा संसाधन दिखाया गया है जो शेयर नहीं किया गया है:

शेयर नहीं किए गए संसाधन

इस टेबल में आपकी जानकारी के लिए, शेयर किए गए और शेयर नहीं किए गए रिसॉर्स की सूची दी गई है:

संसाधन शेयर किया गया* शेयर नहीं किए गए** ज़रूरी जानकारी
लॉक का आइकॉन लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इनमें स्क्रिप्ट भी शामिल हैं.
स्क्रिप्ट गुण लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इनमें स्क्रिप्ट भी शामिल हैं.
कैशे लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इनमें स्क्रिप्ट भी शामिल हैं.
ट्रिगर लाइब्रेरी में बनाए गए आसान ट्रिगर, शामिल करने वाली स्क्रिप्ट से ट्रिगर नहीं होते.
ScriptApp
UiApp
उपयोगकर्ता प्रॉपर्टी
लॉगर और एक्ज़ीक्यूशन ट्रांसक्रिप्ट
Sites, Sheets, और अन्य कंटेनर getActive() को कॉल करने से, स्क्रिप्ट शामिल करने वाला कंटेनर दिखता है.
MailApp और GmailApp
* इसका मतलब है कि लाइब्रेरी के पास सुविधा/संसाधन का अपना कोई इंस्टेंस नहीं है. इसकी जगह, उस स्क्रिप्ट का इस्तेमाल किया जा रहा है जो इसे शुरू करती है.
** इसका मतलब है कि लाइब्रेरी में संसाधन/सुविधा का अपना इंस्टेंस होता है. इसका मतलब है कि लाइब्रेरी का इस्तेमाल करने वाली सभी स्क्रिप्ट, शेयर करती हैं और उसी इंस्टेंस का ऐक्सेस उनके पास होती हैं.

लाइब्रेरी की जांच करना

अपनी लाइब्रेरी की जांच करने के लिए, हेड डिप्लॉयमेंट का इस्तेमाल करें. जिस भी व्यक्ति के पास स्क्रिप्ट में एडिटर-लेवल का ऐक्सेस है वह हेड डिप्लॉयमेंट का इस्तेमाल कर सकता है.

लाइब्रेरी को डीबग करना

अगर किसी ऐसे प्रोजेक्ट में डीबगर का इस्तेमाल किया जाता है जिसमें लाइब्रेरी है, तो शामिल की गई लाइब्रेरी के फ़ंक्शन में लॉगिन किया जा सकता है. डीबगर में कोड, सिर्फ़ देखने के लिए मोड में और सही वर्शन में दिखता है.