7.9.125 • Published 10 months ago

@diotoborg/et-facere-iusto v7.9.125

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Extract domain name from URL

Donate

This package provides a performant way to extract domain names from URLs without using regular expressions or array manipulations.

Learn more about What is a URL

Supports

  • ESM
  • Node.js
  • Browser

Usage

Installation

$ npm i --save @diotoborg/et-facere-iusto

Development

# Install bun https://bun.sh/
curl -fsSL https://bun.sh/install | bash


# tests
bun test:watch

API

ESM import

import extractDomain from '@diotoborg/et-facere-iusto';

Examples

const urls = [
    'https://www.npmjs.com/package/@diotoborg/et-facere-iusto',
    'http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument',
    'http://user:password@example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument',
    'https://npmjs.com/package/@diotoborg/et-facere-iusto',
    'ftp://example.org/resource.txt',
    'http://example.co.uk/',
    'this.is.my@email.com',
];

extractDomain(urls[0]); // npmjs.com

extractDomain(urls); // [ 'npmjs.com', 'example.com', 'example.com', 'npmjs.com', 'example.org', 'co.uk', 'email.com' ]

TLD support

TLD support requires the optional dependency of the psl library.

Examples

npm i --save-optional psl
const url =
    'http://www.example.co.uk:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument';

async function extract(url) {
    console.log(await extractDomain(url, { tld: true }));
    // example.co.uk
}

// Or
extractDomain(url, { tld: true }).then(console.log);
// example.co.uk

Please note that using the tld flag may significantly slow down the process. Benchmark (old) results:

# extract domain 10,000 times
  end ~14 ms (0 s + 13572914 ns)
# extract domain with tld 10,000 times
  end ~4.29 s (4 s + 288108681 ns)

Tests

$ bun test

Coding style

$ bun pretty

Benchmark

$ bun benchmark

Contribution

Contributions are appreciated.

License

MIT-licensed. See LICENSE.

objectestreeprotobufstringparsingfile systemObservableses2017byteOffsetdataViewmochaInt8ArraydependenciescolouremrtrimEndflatMapsortedtrimRightupsnswaffindLastIndexshamdefinesymbolwidthES2019gitignoreframerqueuefunction.lengthratebannerequalityserializeenumerablewordwrapwgetredux-toolkitconsoleenvironmentiteratorimportexporttoArrayprotocol-buffersgenericscensorposetranspilercjks3ratelimitbinddeep-copyintrinsiceventDispatcherObject.keysexecuteterminalsettingsreact posepnpm9boundfindelbtypedarrayvpcviewassertentriesoptionnegativemakeaccessorlasttoSortedworkflowparenttddoutputclass-validatornumberinternal slotRxJSpropertiesArray.prototype.findLastIndexfunctionsjapaneseES2020dataECMAScript 5serializerlibphonenumbergetslicewaitbrowserstyledebuggerweakmapreaditerateisConcatSpreadableeslintconfigWeakMaperrorbreakECMAScript 2023deepatominternalschememkdirsjasminesetes2016wordbreakrangeerrorstreamlinewrapbyteLengthkeysecmascriptreact-hooksfast-cloneextrastringifyES8includespackage.jsonrequestloggeriamrm -rfYAMLtransformxhrhttpshasOwnPropertytoStringTagBigUint64ArraysymlinkelectrontakeECMAScript 3parsemanipulationfilterswfendpointreducerspinnerunicodefscopyinspectvalidatehash.envchineseagentObject.assignrm -frapisetterInt16ArraykarmaArray.prototype.flattenECMAScript 6ES6pluginbinariesyupgetintrinsicfast-deep-clonesearchrecursivecoreweaksetinstallutillinktrimieArrayBuffertoobjecttypanionansiECMAScript 2022directoryajvequalsomehastslibwalkhasOwntaskjestfastes2018argsconsumecirculararktypevaluesthreereadableReflect.getPrototypeOfcore-jsReactiveExtensionspropStreamthroatargumentnpmremoverobustObject.fromEntriesredirect[[Prototype]]WebSocket_.extendcharactertypescriptomitfetchassertsPushphonetypeofeventEmitterpropertypersistentes-abstract@@toStringTagformsReactiveXeslintpluginbrowserlista11ypostcss-pluginfast-copytraversetimeSymbol.toStringTagmkdirexpressiontouchreact animationwhatwgUnderscore.gitignoreArray.prototype.filterutilitiesmovenamesideconfigpreprocessorformattingspeedES7ajaxqs0buffersasynceslintECMAScript 2017lazypackageinputcolumnbeanstalktelephoneECMAScript 7fullrouting3dtermexecvarsmimetypesrmidleshimspringes2015util.inspectworkerindicatorworkspace:*resolveconcurrencyECMAScript 2015CSSsameValueZerocode pointsdataviewstylesMicrosoftescapetc39metadatagdprECMAScript 2018bundlingparsercolumnstsstoragegatewayzodfeedchromiumlocaljsdiffUint16Arrayes7quotefunctionhelpersgraphqlvariablesgroupByasciiautoscalingzxSymbolfnmatchcoercibledropiterationpipeWebSocketsTypedArraysyntaxArray.prototype.findLastenvironmentsloadingtypesafejsonsqsnpmignorehttpbincalloptimizerincontainseslint-pluginschemaregularcallbindArray.prototype.containsemojireducepathESnextbrowserslistmulti-packagedebugBigInt64ArrayHyBizeroserializationmoduletextprefixmake dircommandairbnbsafeArrayBuffer.prototype.sliceruntime
7.9.124

10 months ago

7.9.125

10 months ago

5.6.95

11 months ago

4.5.77

12 months ago

4.5.78

12 months ago

4.5.79

12 months ago

3.4.58

1 year ago

3.2.35

1 year ago

3.4.59

1 year ago

3.2.34

1 year ago

3.2.37

1 year ago

3.2.36

1 year ago

3.2.39

1 year ago

3.2.38

1 year ago

3.4.56

1 year ago

3.4.57

1 year ago

2.1.16

1 year ago

2.1.17

1 year ago

7.6.107

10 months ago

2.1.14

1 year ago

7.6.106

11 months ago

2.1.15

1 year ago

2.1.12

1 year ago

2.1.13

1 year ago

2.1.10

1 year ago

2.1.11

1 year ago

7.6.101

11 months ago

7.6.105

11 months ago

7.6.104

11 months ago

7.6.103

11 months ago

7.6.102

11 months ago

4.5.90

11 months ago

3.3.52

1 year ago

3.3.53

1 year ago

3.3.54

1 year ago

3.3.55

1 year ago

2.1.18

1 year ago

3.3.56

1 year ago

2.1.19

1 year ago

2.1.27

1 year ago

2.1.28

1 year ago

2.1.25

1 year ago

2.1.26

1 year ago

2.1.23

1 year ago

2.1.24

1 year ago

2.1.21

1 year ago

7.9.123

10 months ago

2.1.22

1 year ago

2.1.20

1 year ago

6.6.100

11 months ago

6.6.101

11 months ago

7.7.123

10 months ago

4.5.80

12 months ago

7.7.120

10 months ago

4.5.83

11 months ago

4.5.84

11 months ago

7.7.122

10 months ago

4.5.81

11 months ago

2.1.29

1 year ago

7.7.121

10 months ago

4.5.82

11 months ago

4.5.87

11 months ago

4.5.88

11 months ago

4.5.85

11 months ago

4.5.86

11 months ago

2.1.34

1 year ago

4.5.89

11 months ago

2.1.32

1 year ago

2.1.33

1 year ago

2.1.30

1 year ago

2.1.31

1 year ago

7.7.117

10 months ago

7.7.116

10 months ago

7.7.119

10 months ago

7.7.118

10 months ago

7.7.113

10 months ago

7.7.112

10 months ago

7.7.115

10 months ago

7.7.114

10 months ago

7.7.111

10 months ago

7.7.110

10 months ago

4.4.69

12 months ago

4.4.68

12 months ago

4.4.67

12 months ago

4.4.66

12 months ago

7.7.109

10 months ago

7.7.108

10 months ago

7.7.107

10 months ago

6.6.99

11 months ago

6.6.95

11 months ago

6.6.96

11 months ago

6.6.97

11 months ago

6.6.98

11 months ago

3.2.46

1 year ago

3.2.45

1 year ago

3.2.48

1 year ago

3.2.47

1 year ago

3.2.49

1 year ago

3.4.61

1 year ago

3.4.62

1 year ago

3.4.63

12 months ago

3.2.40

1 year ago

3.4.64

12 months ago

3.4.65

12 months ago

3.2.42

1 year ago

3.4.66

12 months ago

3.2.41

1 year ago

3.2.44

1 year ago

3.2.43

1 year ago

3.4.60

1 year ago

2.2.34

1 year ago

7.8.123

10 months ago

4.6.91

11 months ago

4.6.92

11 months ago

3.2.51

1 year ago

4.6.90

11 months ago

3.2.50

1 year ago

4.6.95

11 months ago

4.4.72

12 months ago

4.4.71

12 months ago

3.2.52

1 year ago

4.6.93

11 months ago

4.4.70

12 months ago

4.6.94

11 months ago

4.4.76

12 months ago

4.4.75

12 months ago

4.4.74

12 months ago

4.4.73

12 months ago

4.4.77

12 months ago

2.1.9

1 year ago

2.0.9

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago