Files
meteor/packages/underscore/package.js
Evan Broder e6a399e64f Add missing type dependencies to underscore and webapp packages
This enables their own type declarations to work out of the box.
2023-02-09 13:37:39 -08:00

43 lines
1.6 KiB
JavaScript

Npm.depends({
'@types/underscore': '1.11.4',
});
Package.describe({
summary: "Collection of small helpers: _.map, _.each, ...",
version: '1.0.11'
});
Package.onUse(function (api) {
// Like all packages, we have an implicit depedency on the 'meteor'
// package, which provides such things as the *.js file handler. Use
// an undocumented API to allow 'meteor' to alter us even though we
// depend on it. This is necessary since 'meteor' depends on us. One
// day we will avoid this problem by refactor, but for now this is a
// practical and expedient solution.
//
// XXX Now the *.js handler is intrinsic rather than coming from the
// 'meteor' package and we could remove this (if we provided a way
// to let the package opt to not depend on 'meteor'.) We could even
// remove unordered dependency support, though I think it's worth keeping
// around for now to keep the possibility of dependency
// configuration alive in the codebase.
api.use('meteor', {unordered: true});
api.export('_');
// NOTE: we patch _.each and various other functions that polymorphically take
// objects, arrays, and array-like objects (such as the querySelectorAll
// return value, document.images, and 'arguments') such that objects with a
// numeric length field whose constructor === Object are still treated as
// objects, not as arrays. Search for looksLikeArray.
api.addFiles(['pre.js', 'underscore.js', 'post.js']);
api.addAssets('underscore.d.ts', 'server');
});
Package.onTest(function (api) {
// Also turn off the strong 'meteor' dependency in the test slice
api.use('meteor', {unordered: true});
});