Skip to content

Instantly share code, notes, and snippets.

@pdehaan
Created April 10, 2023 21:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pdehaan/e5317d3f860116ced0febe768d6703d1 to your computer and use it in GitHub Desktop.
Save pdehaan/e5317d3f860116ced0febe768d6703d1 to your computer and use it in GitHub Desktop.
FxA import vs require stats
import cp from "node:child_process";
import path from "node:path";
const importFiles = new Set(grepFiles(`git grep -El "^import " packages`));
const requireFiles = new Set(grepFiles(`git grep -El " = require\\(" packages`));
console.log({
filesWithImport: importFiles.size,
filesWithRequire: requireFiles.size,
});
for (const file of importFiles) {
if (requireFiles.has(file)) {
console.log(`\n- ${file}`);
// OPTION 1: Display `import` and `require()` statements.
// const res = grepFiles(`git grep -Ehn "(^import|= require\())" ${file}`, false);
// OPTION 2: Only display `require()` statements.
const res = grepFiles(`git grep -hn "= require(" ${file}`, false);
console.log("```");
console.log(`${res.join("\n")}`);
console.log("```");
}
}
function grepFiles(cmd, filterResults=true, exts=[".js", ".jsx", ".mjs", ".ts", ".tsx"]) {
let files = cp.execSync(cmd).toString().trim().split("\n");
if (filterResults) {
files = files.filter(f => exts.includes(path.extname(f)));
}
return files;
}
{ filesWithImport: 1815, filesWithRequire: 813 }
fxa-admin-panel
  • packages/fxa-admin-panel/server/lib/server.ts
39:  const release = require('../../package.json').version;
115:  const proxy = require('express-http-proxy');
  • packages/fxa-admin-panel/server/lib/version.ts
30:    const versionInfo = require(versionJsonPath);
51:    const versionInfo = require(versionJsonPath);
fxa-admin-server
  • packages/fxa-admin-server/src/scripts/db-helpers.ts
105://   const Token = require('../../../lib/tokens')(log, config);
106://   const UnblockCode = require('../../../lib/crypto/random').base32(
109://   const db = require('../../../lib/db')(config, log, Token, UnblockCode);
fxa-auth-server
  • packages/fxa-auth-server/config/index.ts
11:const DEFAULT_SUPPORTED_LANGUAGES = require('./supportedLanguages');
  • packages/fxa-auth-server/lib/payments/processing-tasks-setup.ts
42:  const log = require('../log')({ ...config.log, statsd });
48:  const profile = require('../profile/client')(log, config, statsd);
57:  const redis = require('../redis')(
61:  const DB = require('../db')(
  • packages/fxa-auth-server/lib/routes/account.ts
49:const METRICS_CONTEXT_SCHEMA = require('../metrics/context').schema;
84:    this.otpUtils = require('./utils/otp')(log, config, db);
  • packages/fxa-auth-server/lib/routes/linked-accounts.ts
19:const METRICS_CONTEXT_SCHEMA = require('../metrics/context').schema;
21:const error = require('../error');
  • packages/fxa-auth-server/lib/routes/subscriptions/paypal.ts
39:const METRICS_CONTEXT_SCHEMA = require('../../metrics/context').schema;
  • packages/fxa-auth-server/lib/routes/subscriptions/stripe.ts
55:const METRICS_CONTEXT_SCHEMA = require('../../metrics/context').schema;
  • packages/fxa-auth-server/lib/routes/subscriptions/support.ts
16:const MISC_DOCS = require('../../../docs/swagger/misc-api').default;
  • packages/fxa-auth-server/scripts/audit-orphaned-customers.ts
44:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/convert-customers-to-stripe-automatic-tax.ts
13:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/create-mock-iap-subscriptions.ts
8:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/paypal-processor.ts
16:const pckg = require('../package.json');
17:const config = require('../config').default.getProperties();
  • packages/fxa-auth-server/scripts/paypal-refund-fixer.ts
16:const config = require('../config').default.getProperties();
167:  const log = require('../lib/log')({ ...config.log, statsd });
  • packages/fxa-auth-server/scripts/populate-firestore-customers.ts
10:const pckg = require('../package.json');
13:  const config = require('../config').default.getProperties();
  • packages/fxa-auth-server/scripts/populate-vat-taxes.ts
10:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/prune-oauth-authorization-codes.ts
8:const pckg = require('../package.json');
13:  const config = require('../config').default.getProperties();
15:  const log = require('../lib/log')(
20:  const oauthDb = require('../lib/oauth/db');
  • packages/fxa-auth-server/scripts/prune-tokens.ts
11:const { PruneTokens } = require('fxa-shared/db/models/auth');
12:const pckg = require('../package.json');
26:const config = require('../config').default.getProperties();
28:const log = require('../lib/log')(config.log.level, 'prune-tokens', statsd);
32:  const redis = require('../lib/redis')(
  • packages/fxa-auth-server/scripts/refund-unverified-accounts.ts
13:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/stripe-products-and-plans-to-firestore-documents.ts
15:const pckg = require('../package.json');
  • packages/fxa-auth-server/scripts/subscription-reminders.ts
12:const pckg = require('../package.json');
13:const config = require('../config').default.getProperties();
  • packages/fxa-auth-server/test/local/routes/subscriptions/mozilla.js
10:const sinon = require('sinon');
11:const chai = require('chai');
13:const uuid = require('uuid');
15:const proxyquire = require('proxyquire');
16:const { getRoute } = require('../../../routes_helpers');
17:const { OAUTH_SCOPE_SUBSCRIPTIONS } = require('fxa-shared/oauth/constants');
24:} = require('../../../../lib/payments/iap/iap-formatter');
138:const mocks = require('../../../mocks');
  • packages/fxa-auth-server/test/local/routes/subscriptions/paypal-notifications.js
7:const { assert } = require('chai');
8:const uuid = require('uuid');
9:const sinon = require('sinon');
10:const { Container } = require('typedi');
12:const mocks = require('../../../mocks');
14:const error = require('../../../../lib/error');
15:const completedMerchantPaymentNotification = require('../fixtures/merch_pmt_completed.json');
16:const pendingMerchantPaymentNotification = require('../fixtures/merch_pmt_pending.json');
17:const billingAgreementCancelNotification = require('../fixtures/mp_cancel_successful.json');
18:const proxyquire = require('proxyquire').noPreserveCache();
32:const { PayPalHelper } = require('../../../../lib/payments/paypal/helper');
33:const { CapabilityService } = require('../../../../lib/payments/capability');
  • packages/fxa-auth-server/test/local/senders/emails.ts
27:const moment = require('moment-timezone');
28:const config = require(`${ROOT_DIR}/config`).default.getProperties();
44:const TEMPLATE_VERSIONS = require(`${ROOT_DIR}/lib/senders/emails/templates/_versions.json`);
  • packages/fxa-auth-server/test/remote/pushbox/db.ts
13:const config = require('../../../config').default.getProperties();
fxa-event-broker
  • packages/fxa-event-broker/src/config.ts
249:  let key = require(conf.get('openid.keyFile'));
fxa-shared
  • packages/fxa-shared/auth/encrypt.ts
6:const buf = require('buf');
  • packages/fxa-shared/connected-services/formatters.ts
77:          const territories = require(`cldr-localenames-full/main/${territoriesLang}/territories.json`);
  • packages/fxa-shared/connected-services/util.ts
12:export const hex = require('buf').to.hex;
  • packages/fxa-shared/db/mysql.ts
18:const buf = require('buf').hex;
  • packages/fxa-shared/db/redis.ts
13:const hex = require('buf').to.hex;
  • packages/fxa-shared/experiments/base.ts
5:import md5 = require('js-md5');
  • packages/fxa-shared/express/routing.ts
34:  } = require('celebrate');
  • packages/fxa-shared/metrics/amplitude.ts
19:const amplitudeSchema = require('./amplitude-event.1.schema.json');
  • packages/fxa-shared/test/experiments/base.js
5:const _ = require('underscore');
6:const uuid = require('uuid');
7:const { assert } = require('chai');
  • packages/fxa-shared/test/lib/logger.ts
7:const sinon = require('sinon');
  • packages/fxa-shared/test/lib/sentry.ts
9:const sinon = require('sinon');
  • packages/fxa-shared/test/sentry/config-builder.ts
122:    const mozlog = require('mozlog')({
  • packages/fxa-shared/test/subscriptions/stripe.ts
23:const customer1WithSubscription = require('../fixtures/stripe/customer1_with_subscription.json');
24:const subscriptionExpanded = require('../fixtures/stripe/subscription_expanded.json');
25:const price1 = require('../fixtures/stripe/price1_with_product.json');
26:const plan = require('../fixtures/stripe/plan1_with_product.json');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment