@integration-app/react 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- package/node_modules/@compwright/namecase/LICENSE +26 -0
- package/node_modules/@compwright/namecase/README.md +49 -0
- package/node_modules/@compwright/namecase/bin/namecase +28 -0
- package/node_modules/@compwright/namecase/dist/namecase.min.js +4 -0
- package/node_modules/@compwright/namecase/dist/namecase.min.js.map +1 -0
- package/node_modules/@compwright/namecase/package.json +46 -0
- package/node_modules/@compwright/namecase/src/index.js +146 -0
- package/node_modules/@integration-app/sdk/bundle.js +404 -262
- package/node_modules/@integration-app/sdk/bundle.js.map +1 -1
- package/node_modules/@integration-app/sdk/client.d.ts +3 -3
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.d.ts +3 -7
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.js +16 -32
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.js.map +1 -1
- package/node_modules/@integration-app/sdk/integrations/accessors.d.ts +0 -6
- package/node_modules/@integration-app/sdk/integrations/accessors.js +1 -87
- package/node_modules/@integration-app/sdk/integrations/accessors.js.map +1 -1
- package/node_modules/@integration-app/sdk/json-schema/index.d.ts +1 -1
- package/node_modules/@integration-app/sdk/src/client.ts +3 -3
- package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.test.ts +11 -113
- package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.ts +22 -46
- package/node_modules/@integration-app/sdk/src/integrations/accessors.ts +2 -122
- package/node_modules/@sinclair/typebox/package.json +40 -0
- package/node_modules/@sinclair/typebox/readme.md +740 -0
- package/node_modules/@sinclair/typebox/typebox.d.ts +351 -0
- package/node_modules/@sinclair/typebox/typebox.js +345 -0
- package/node_modules/@types/node/README.md +16 -0
- package/node_modules/@types/node/assert.d.ts +128 -0
- package/node_modules/@types/node/async_hooks.d.ts +229 -0
- package/node_modules/@types/node/buffer.d.ts +89 -0
- package/node_modules/@types/node/child_process.d.ts +514 -0
- package/node_modules/@types/node/cluster.d.ts +265 -0
- package/node_modules/@types/node/console.d.ts +142 -0
- package/node_modules/@types/node/constants.d.ts +18 -0
- package/node_modules/@types/node/crypto.d.ts +1283 -0
- package/node_modules/@types/node/dgram.d.ts +144 -0
- package/node_modules/@types/node/dns.d.ts +387 -0
- package/node_modules/@types/node/domain.d.ts +27 -0
- package/node_modules/@types/node/events.d.ts +82 -0
- package/node_modules/@types/node/fs/promises.d.ts +572 -0
- package/node_modules/@types/node/fs.d.ts +2281 -0
- package/node_modules/@types/node/globals.d.ts +747 -0
- package/node_modules/@types/node/globals.global.d.ts +1 -0
- package/node_modules/@types/node/http.d.ts +580 -0
- package/node_modules/@types/node/http2.d.ts +962 -0
- package/node_modules/@types/node/https.d.ts +271 -0
- package/node_modules/@types/node/index.d.ts +98 -0
- package/node_modules/@types/node/inspector.d.ts +3051 -0
- package/node_modules/@types/node/module.d.ts +56 -0
- package/node_modules/@types/node/net.d.ts +308 -0
- package/node_modules/@types/node/os.d.ts +243 -0
- package/node_modules/@types/node/package.json +232 -0
- package/node_modules/@types/node/path.d.ts +168 -0
- package/node_modules/@types/node/perf_hooks.d.ts +274 -0
- package/node_modules/@types/node/process.d.ts +413 -0
- package/node_modules/@types/node/punycode.d.ts +78 -0
- package/node_modules/@types/node/querystring.d.ts +31 -0
- package/node_modules/@types/node/readline.d.ts +174 -0
- package/node_modules/@types/node/repl.d.ts +398 -0
- package/node_modules/@types/node/stream.d.ts +359 -0
- package/node_modules/@types/node/string_decoder.d.ts +10 -0
- package/node_modules/@types/node/timers.d.ts +19 -0
- package/node_modules/@types/node/tls.d.ts +784 -0
- package/node_modules/@types/node/trace_events.d.ts +64 -0
- package/node_modules/@types/node/ts4.8/assert.d.ts +128 -0
- package/node_modules/@types/node/ts4.8/async_hooks.d.ts +229 -0
- package/node_modules/@types/node/ts4.8/buffer.d.ts +89 -0
- package/node_modules/@types/node/ts4.8/child_process.d.ts +514 -0
- package/node_modules/@types/node/ts4.8/cluster.d.ts +265 -0
- package/node_modules/@types/node/ts4.8/console.d.ts +142 -0
- package/node_modules/@types/node/ts4.8/constants.d.ts +18 -0
- package/node_modules/@types/node/ts4.8/crypto.d.ts +1283 -0
- package/node_modules/@types/node/ts4.8/dgram.d.ts +144 -0
- package/node_modules/@types/node/ts4.8/dns.d.ts +387 -0
- package/node_modules/@types/node/ts4.8/domain.d.ts +27 -0
- package/node_modules/@types/node/ts4.8/events.d.ts +82 -0
- package/node_modules/@types/node/ts4.8/fs/promises.d.ts +572 -0
- package/node_modules/@types/node/ts4.8/fs.d.ts +2281 -0
- package/node_modules/@types/node/ts4.8/globals.d.ts +746 -0
- package/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
- package/node_modules/@types/node/ts4.8/http.d.ts +580 -0
- package/node_modules/@types/node/ts4.8/http2.d.ts +962 -0
- package/node_modules/@types/node/ts4.8/https.d.ts +271 -0
- package/node_modules/@types/node/ts4.8/index.d.ts +53 -0
- package/node_modules/@types/node/ts4.8/inspector.d.ts +3051 -0
- package/node_modules/@types/node/ts4.8/module.d.ts +56 -0
- package/node_modules/@types/node/ts4.8/net.d.ts +308 -0
- package/node_modules/@types/node/ts4.8/os.d.ts +243 -0
- package/node_modules/@types/node/ts4.8/path.d.ts +168 -0
- package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +274 -0
- package/node_modules/@types/node/ts4.8/process.d.ts +413 -0
- package/node_modules/@types/node/ts4.8/punycode.d.ts +78 -0
- package/node_modules/@types/node/ts4.8/querystring.d.ts +31 -0
- package/node_modules/@types/node/ts4.8/readline.d.ts +174 -0
- package/node_modules/@types/node/ts4.8/repl.d.ts +398 -0
- package/node_modules/@types/node/ts4.8/stream.d.ts +359 -0
- package/node_modules/@types/node/ts4.8/string_decoder.d.ts +10 -0
- package/node_modules/@types/node/ts4.8/timers.d.ts +19 -0
- package/node_modules/@types/node/ts4.8/tls.d.ts +784 -0
- package/node_modules/@types/node/ts4.8/trace_events.d.ts +64 -0
- package/node_modules/@types/node/ts4.8/tty.d.ts +69 -0
- package/node_modules/@types/node/ts4.8/url.d.ts +149 -0
- package/node_modules/@types/node/ts4.8/util.d.ts +216 -0
- package/node_modules/@types/node/ts4.8/v8.d.ts +190 -0
- package/node_modules/@types/node/ts4.8/vm.d.ts +155 -0
- package/node_modules/@types/node/ts4.8/wasi.d.ts +89 -0
- package/node_modules/@types/node/ts4.8/worker_threads.d.ts +241 -0
- package/node_modules/@types/node/ts4.8/zlib.d.ts +364 -0
- package/node_modules/@types/node/tty.d.ts +69 -0
- package/node_modules/@types/node/url.d.ts +149 -0
- package/node_modules/@types/node/util.d.ts +216 -0
- package/node_modules/@types/node/v8.d.ts +190 -0
- package/node_modules/@types/node/vm.d.ts +155 -0
- package/node_modules/@types/node/wasi.d.ts +89 -0
- package/node_modules/@types/node/worker_threads.d.ts +241 -0
- package/node_modules/@types/node/zlib.d.ts +364 -0
- package/package.json +2 -5
- package/node_modules/@integration-app/sdk/.DS_Store +0 -0
- package/node_modules/@integration-app/sdk/.gitignore +0 -11
- package/node_modules/@integration-app/sdk/.npmignore +0 -0
- package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.d.ts +0 -23
- package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.js.map +0 -1
- package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.d.ts +0 -20
- package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.js.map +0 -1
- package/node_modules/@integration-app/sdk/app-events/app-events.d.ts +0 -44
- package/node_modules/@integration-app/sdk/app-events/app-events.js.map +0 -1
- package/node_modules/@integration-app/sdk/connection-client.d.ts +0 -12
- package/node_modules/@integration-app/sdk/connection-client.js +0 -31
- package/node_modules/@integration-app/sdk/connection-client.js.map +0 -1
- package/node_modules/@integration-app/sdk/connections/connections.d.ts +0 -46
- package/node_modules/@integration-app/sdk/connections/connections.js.map +0 -1
- package/node_modules/@integration-app/sdk/connector-api/connector-api.d.ts +0 -157
- package/node_modules/@integration-app/sdk/connector-api/connector-api.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.js +0 -2
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.d.ts +0 -10
- package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js +0 -246
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js +0 -85
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js +0 -64
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js +0 -44
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js +0 -44
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js +0 -14
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js +0 -63
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js +0 -112
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js +0 -18
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js +0 -114
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js +0 -49
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/types.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/formulas/types.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/index.test.js +0 -295
- package/node_modules/@integration-app/sdk/data-builder/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/locators.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/locators.test.js +0 -775
- package/node_modules/@integration-app/sdk/data-builder/locators.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/conditions.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-filter/conditions.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/data-filter.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/data-filter.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/index.test.js +0 -43
- package/node_modules/@integration-app/sdk/data-filter/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/operators.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/operators.test.js +0 -490
- package/node_modules/@integration-app/sdk/data-filter/operators.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-links/data-links.d.ts +0 -58
- package/node_modules/@integration-app/sdk/data-links/data-links.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-schema/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-schema/index.test.js +0 -86
- package/node_modules/@integration-app/sdk/data-schema/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-sources/data-sources.d.ts +0 -41
- package/node_modules/@integration-app/sdk/data-sources/data-sources.js.map +0 -1
- package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.d.ts +0 -30
- package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.js.map +0 -1
- package/node_modules/@integration-app/sdk/field-mappings/field-mappings.d.ts +0 -29
- package/node_modules/@integration-app/sdk/field-mappings/field-mappings.js.map +0 -1
- package/node_modules/@integration-app/sdk/flow-runs/flow-runs.d.ts +0 -51
- package/node_modules/@integration-app/sdk/flow-runs/flow-runs.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/flows.d.ts +0 -156
- package/node_modules/@integration-app/sdk/flows/flows.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.d.ts +0 -3
- package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/nodes/nodes.d.ts +0 -25
- package/node_modules/@integration-app/sdk/flows/nodes/nodes.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/utils.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/flows/utils.test.js +0 -62
- package/node_modules/@integration-app/sdk/flows/utils.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/integration-elements/integration-elements.d.ts +0 -21
- package/node_modules/@integration-app/sdk/integration-elements/integration-elements.js.map +0 -1
- package/node_modules/@integration-app/sdk/integrations/integrations.d.ts +0 -48
- package/node_modules/@integration-app/sdk/integrations/integrations.js.map +0 -1
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js +0 -194
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js +0 -352
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/jwt.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/jwt.test.js +0 -9
- package/node_modules/@integration-app/sdk/jwt.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/package-lock.json +0 -3834
- package/node_modules/@integration-app/sdk/udm/activities.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/udm/activities.test.js +0 -40
- package/node_modules/@integration-app/sdk/udm/activities.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/campaign-members.d.ts +0 -45
- package/node_modules/@integration-app/sdk/udm/campaign-members.js +0 -99
- package/node_modules/@integration-app/sdk/udm/campaign-members.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/contacts.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/udm/contacts.test.js +0 -136
- package/node_modules/@integration-app/sdk/udm/contacts.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-activities.d.ts +0 -17
- package/node_modules/@integration-app/sdk/udm/crm-activities.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-activity.d.ts +0 -11
- package/node_modules/@integration-app/sdk/udm/crm-activity.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-companies.d.ts +0 -14
- package/node_modules/@integration-app/sdk/udm/crm-companies.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-contact.d.ts +0 -10
- package/node_modules/@integration-app/sdk/udm/crm-contact.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-contacts.d.ts +0 -16
- package/node_modules/@integration-app/sdk/udm/crm-contacts.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-deals.d.ts +0 -15
- package/node_modules/@integration-app/sdk/udm/crm-deals.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-leads.d.ts +0 -16
- package/node_modules/@integration-app/sdk/udm/crm-leads.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/members.d.ts +0 -45
- package/node_modules/@integration-app/sdk/udm/members.js.map +0 -1
- package/node_modules/@integration-app/sdk/users/users.d.ts +0 -5
- package/node_modules/@integration-app/sdk/users/users.js.map +0 -1
@@ -0,0 +1,26 @@
|
|
1
|
+
NameCase
|
2
|
+
Copyright (C) 2013-2014 Mason Gravitt
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
6
|
+
in the Software without restriction, including without limitation the rights
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
9
|
+
furnished to do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
12
|
+
copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
20
|
+
SOFTWARE.
|
21
|
+
|
22
|
+
|
23
|
+
Original PERL version
|
24
|
+
Copyright (c) Mark Summerfield 1998-2008. All Rights Reserved. This program is
|
25
|
+
free software; you can redistribute it and/or modify it under the same
|
26
|
+
terms as Perl itself.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# namecase
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/compwright/namecase.png)](https://travis-ci.org/compwright/namecase)
|
4
|
+
|
5
|
+
A Javascript library for fixing the capitalization of people's names.
|
6
|
+
|
7
|
+
It is heavily based on the Perl
|
8
|
+
[Lingua-EN-NameCase](http://cpansearch.perl.org/src/SUMMER/Lingua-EN-NameCase-1.15/) module.
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
namecase provides two functions:
|
13
|
+
|
14
|
+
`nameCase.checkName()` which returns true if the name is in all `UPPERCASE` or `lowercase`.
|
15
|
+
|
16
|
+
`nameCase(string or array, { individualFields: boolean })` returns a properly capitalized name.
|
17
|
+
|
18
|
+
The option ```individualFields``` defaults to false which works best when the person's names
|
19
|
+
are combined into a single field. If ```individualFields``` is set to true, it means you're
|
20
|
+
passing in given and surnames separately. The only difference between these two options is
|
21
|
+
with ```individualFields``` set to false, the first character is always capitalized.
|
22
|
+
|
23
|
+
Namecase can also be executed from the command line via ```namecase```, which accepts data
|
24
|
+
from STDIN and outputs the formatted names to STDOUT.
|
25
|
+
|
26
|
+
## Usage Examples
|
27
|
+
|
28
|
+
### Browser
|
29
|
+
|
30
|
+
```html
|
31
|
+
<script src="https://unpkg.com/@compwright/namecase@latest/dist/namecase.min.js"></script>
|
32
|
+
<script>
|
33
|
+
console.log(window.namecase('GEORGE WASHINGTON'));
|
34
|
+
</script>
|
35
|
+
```
|
36
|
+
|
37
|
+
### Node
|
38
|
+
|
39
|
+
```javascript
|
40
|
+
const nameCase = require('@compwright/namecase');
|
41
|
+
console.log(nameCase('WILLIAM MCKINLEY'));
|
42
|
+
```
|
43
|
+
|
44
|
+
### Command line
|
45
|
+
|
46
|
+
```bash
|
47
|
+
$ npm install -g @compwright/namecase
|
48
|
+
$ namecase < input.txt > ouput.txt
|
49
|
+
```
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
|
3
|
+
const nameCase = require('../src');
|
4
|
+
const os = require('os');
|
5
|
+
|
6
|
+
let str = '', out = [];
|
7
|
+
|
8
|
+
process.stdin.resume();
|
9
|
+
process.stdin.setEncoding('utf8');
|
10
|
+
|
11
|
+
process.stdin.on('data', function(chunk) {
|
12
|
+
str += chunk;
|
13
|
+
});
|
14
|
+
|
15
|
+
process.stdin.on('end', function () {
|
16
|
+
str = str.split(/\r\n|\r|\n/);
|
17
|
+
|
18
|
+
for (let i = 0; i < str.length; i++) {
|
19
|
+
if (nameCase.checkName(str[i])) {
|
20
|
+
out.push(nameCase(str[i]));
|
21
|
+
} else {
|
22
|
+
out.push(nameCase.normalize(str[i]));
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
process.stdout.write(out.join(os.EOL));
|
27
|
+
});
|
28
|
+
|
@@ -0,0 +1,4 @@
|
|
1
|
+
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Focm":[function(require,module,exports) {
|
2
|
+
var e=function(e){return e===e.toLowerCase()||e===e.toUpperCase()},a=function(e){return e.replace(/\s{2,}/g," ")};function c(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=e.trim().toLowerCase();for(var c=[{s:/\s/,r:" "},{s:/-/,r:"-"},{s:/'/,r:"'"},{s:/"/,r:'"'},{s:/\(/,r:"("},{s:/\./,r:"."},{s:/,/,r:","},{s:/\//,r:"/"}],r=0;r<c.length;r++){for(var b=e.split(c[r].s),l=0;l<b.length;l++)b[l]=b[l].charAt(0).toUpperCase()+b[l].slice(1);e=b.join(c[r].r)}return(/\bMac[A-Za-z]{2,}[^aciozj]\b/.test(e)||/\bMc/.test(e))&&(e=(e=e.replace(/\b(Ma?c)([A-Za-z]+)/,function(e,a,c){return a+c.charAt(0).toUpperCase()+c.substring(1)})).replace(/\bMacEvicius\b/,"Macevicius").replace(/\bMacHado\b/,"Machado").replace(/\bMacHar\b/,"Machar").replace(/\bMacHin\b/,"Machin").replace(/\bMacHlin\b/,"Machlin").replace(/\bMacIas\b/,"Macias").replace(/\bMacIulis\b/,"Maciulis").replace(/\bMacKie\b/,"Mackie").replace(/\bMacKle\b/,"Mackle").replace(/\bMacKlin\b/,"Macklin").replace(/\bMacQuarie\b/,"Macquarie").replace(/\bMacOmber\b/,"Macomber").replace(/\bMacIn\b/,"Macin").replace(/\bMacKintosh\b/,"Mackintosh").replace(/\bMacKen\b/,"Macken").replace(/\bMacHen\b/,"Machen").replace(/\bMacHiel\b/,"Machiel").replace(/\bMacIol\b/,"Maciol").replace(/\bMacKell\b/,"Mackell").replace(/\bMacKlem\b/,"Macklem").replace(/\bMacKrell\b/,"Mackrell").replace(/\bMacLin\b/,"Maclin").replace(/\bMacKey\b/,"Mackey").replace(/\bMacKley\b/,"Mackley").replace(/\bMacHell\b/,"Machell").replace(/\bMacHon\b/,"Machon").replace(/\bMacAyla\b/,"Macayla")),e=e.replace(/\bMacmurdo/,"MacMurdo").replace(/\bMacisaac/,"MacIsaac").replace(/\bAl(?=\s+\w)\b/g,"al").replace(/\bAp\b/g,"ap").replace(/\bBen(?=\s+\w)\b/g,"ben").replace(/\bDell([ae])\b/g,"dell$1").replace(/\bD([aeiu])\b/g,"d$1").replace(/\bDe([lr])\b/g,"de$1").replace(/\bEl\b/g,"el").replace(/\bLa\b/g,"la").replace(/\bLe(?=\s+\w)\b/g,"le").replace(/\bLo\b/g,"lo").replace(/\bVan(?=\s+\w)\b/g,"van").replace(/\bVon\b/g,"von").replace(/\b(?:\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i,function(e){return e.toUpperCase()}).replace(/\b[0-9](x)\b/,function(e){return e.toUpperCase()}).replace(/\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\s/,function(e){return e.toUpperCase()}).replace(/\bMR\.?\b/,"Mr").replace(/\bMS\.?\b/,"Ms").replace(/\bDR\.?\b/,"Dr").replace(/\bST\.?\b/,"St").replace(/\bJR\.?\b/,"Jr").replace(/\bSR\.?\b/,"Sr").replace(/\bLT\.?\b/,"Lt").replace(/\bThe\b/g,"the").replace(/\bOf\b/g,"of").replace(/\bAnd\b/g,"and").replace(/\bY\s/g,"y").replace(/\s{2,}/g," "),!0===a.individualFields?e:e.charAt(0).toUpperCase()+e.substring(1)}function r(e,a){return Array.isArray(e)?e.map(r):"string"==typeof e?c(e,a):e}module.exports=r,module.exports.checkName=e,module.exports.normalize=a;
|
3
|
+
},{}]},{},["Focm"], "namecase")
|
4
|
+
//# sourceMappingURL=/namecase.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.js"],"names":["checkName","name","toLowerCase","toUpperCase","normalize","replace","nc","el","opt","trim","splitters","s","r","i","length","elArr","split","j","charAt","slice","join","test","x","y","z","substring","v","individualFields","namecase","input","Array","isArray","map","module","exports"],"mappings":"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","file":"namecase.min.js","sourceRoot":"../src","sourcesContent":["// Don't change capitalization unless capitalization isn't set\nconst checkName = name => name === name.toLowerCase() || name === name.toUpperCase();\n\n// Strip out extraneous spaces\nconst normalize = name => name.replace(/\\s{2,}/g, ' ');\n\n// Actual case fixing function\nfunction nc (el, opt = {}) {\n el = el.trim().toLowerCase();\n\n // Split names on regex whitespace, dash or apostrophe, workaround for\n // Javascript regex word boundary \\b splitting on unicode characters\n // http://stackoverflow.com/questions/5311618/javascript-regular-expression-problem-with-b-and-international-characters\n const splitters = [\n { s: /\\s/, r: ' ' },\n { s: /-/, r: '-' },\n { s: /'/, r: \"'\" },\n { s: /\"/, r: '\"' },\n { s: /\\(/, r: '(' },\n { s: /\\./, r: '.' },\n { s: /,/, r: ',' },\n { s: /\\//, r: '/' }\n ];\n\n for (let i = 0; i < splitters.length; i++) {\n const elArr = el.split(splitters[i].s);\n for (let j = 0; j < elArr.length; j++) {\n elArr[j] = elArr[j].charAt(0).toUpperCase() + elArr[j].slice(1);\n }\n el = elArr.join(splitters[i].r);\n }\n\n // Name case Mcs and Macs\n // Exclude names with 1-2 letters after prefix like Mack, Macky, Mace\n // Exclude names ending in a,c,i,o, or j are typically Polish or Italian\n if (\n /\\bMac[A-Za-z]{2,}[^aciozj]\\b/.test(el) ||\n /\\bMc/.test(el)\n ) {\n el = el.replace(\n /\\b(Ma?c)([A-Za-z]+)/,\n (x, y, z) => y + z.charAt(0).toUpperCase() + z.substring(1)\n );\n\n // Now correct for \"Mac\" exceptions\n el = el\n .replace(/\\bMacEvicius\\b/, 'Macevicius')\n .replace(/\\bMacHado\\b/, 'Machado')\n .replace(/\\bMacHar\\b/, 'Machar')\n .replace(/\\bMacHin\\b/, 'Machin')\n .replace(/\\bMacHlin\\b/, 'Machlin')\n .replace(/\\bMacIas\\b/, 'Macias')\n .replace(/\\bMacIulis\\b/, 'Maciulis')\n .replace(/\\bMacKie\\b/, 'Mackie')\n .replace(/\\bMacKle\\b/, 'Mackle')\n .replace(/\\bMacKlin\\b/, 'Macklin')\n .replace(/\\bMacQuarie\\b/, 'Macquarie')\n .replace(/\\bMacOmber\\b/, 'Macomber')\n .replace(/\\bMacIn\\b/, 'Macin')\n .replace(/\\bMacKintosh\\b/, 'Mackintosh')\n .replace(/\\bMacKen\\b/, 'Macken')\n .replace(/\\bMacHen\\b/, 'Machen')\n .replace(/\\bMacHiel\\b/, 'Machiel')\n .replace(/\\bMacIol\\b/, 'Maciol')\n .replace(/\\bMacKell\\b/, 'Mackell')\n .replace(/\\bMacKlem\\b/, 'Macklem')\n .replace(/\\bMacKrell\\b/, 'Mackrell')\n .replace(/\\bMacLin\\b/, 'Maclin')\n .replace(/\\bMacKey\\b/, 'Mackey')\n .replace(/\\bMacKley\\b/, 'Mackley')\n .replace(/\\bMacHell\\b/, 'Machell')\n .replace(/\\bMacHon\\b/, 'Machon')\n .replace(/\\bMacAyla\\b/, 'Macayla');\n }\n\n // And correct Mac exceptions otherwise missed\n el = el\n .replace(/\\bMacmurdo/, 'MacMurdo')\n .replace(/\\bMacisaac/, 'MacIsaac')\n\n // Fixes for \"son (daughter) of\" etc. in various languages.\n .replace(/\\bAl(?=\\s+\\w)\\b/g, 'al') // al Arabic or forename Al.\n .replace(/\\bAp\\b/g, 'ap') // ap Welsh.\n .replace(/\\bBen(?=\\s+\\w)\\b/g, 'ben') // ben Hebrew or forename Ben.\n .replace(/\\bDell([ae])\\b/g, 'dell$1') // della and delle Italian.\n .replace(/\\bD([aeiu])\\b/g, 'd$1') // da, de, di Italian; du French.\n .replace(/\\bDe([lr])\\b/g, 'de$1') // del Italian; der Dutch/Flemish.\n .replace(/\\bEl\\b/g, 'el') // el Greek\n .replace(/\\bLa\\b/g, 'la') // la French\n .replace(/\\bLe(?=\\s+\\w)\\b/g, 'le') // le French\n .replace(/\\bLo\\b/g, 'lo') // lo Italian\n .replace(/\\bVan(?=\\s+\\w)\\b/g, 'van') // van German or forename Van.\n .replace(/\\bVon\\b/g, 'von') // von Dutch/Flemish\n\n // Fixes for roman numeral names, e.g. Henry VIII\n .replace(/\\b(?:\\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i, v => v.toUpperCase())\n\n // Nation of Islam 2X, 3X, etc. names\n .replace(/\\b[0-9](x)\\b/, v => v.toUpperCase())\n\n // Somewhat arbitrary rule where two letter combos not containing vowels should be capitalized\n // fixes /JJ Abrams/ and /JD Salinger/\n // With some exceptions\n .replace(/\\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\\s/, v => v.toUpperCase())\n .replace(/\\bMR\\.?\\b/, 'Mr')\n .replace(/\\bMS\\.?\\b/, 'Ms')\n .replace(/\\bDR\\.?\\b/, 'Dr')\n .replace(/\\bST\\.?\\b/, 'St')\n .replace(/\\bJR\\.?\\b/, 'Jr')\n .replace(/\\bSR\\.?\\b/, 'Sr')\n .replace(/\\bLT\\.?\\b/, 'Lt')\n\n // lowercase words\n .replace(/\\bThe\\b/g, 'the')\n .replace(/\\bOf\\b/g, 'of')\n .replace(/\\bAnd\\b/g, 'and')\n .replace(/\\bY\\s/g, 'y')\n\n // strip extra spaces\n .replace(/\\s{2,}/g, ' ');\n\n // check if we should force the first character to caps\n if (opt.individualFields === true) {\n // first character may be lowercase\n return el;\n }\n\n // force first character to be uppercase\n return el.charAt(0).toUpperCase() + el.substring(1);\n}\n\nfunction namecase (input, opt) {\n if (Array.isArray(input)) {\n return input.map(namecase);\n }\n\n if (typeof input === 'string') {\n return nc(input, opt);\n }\n\n return input;\n}\n\nmodule.exports = namecase;\nmodule.exports.checkName = checkName;\nmodule.exports.normalize = normalize;\n"]}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
{
|
2
|
+
"name": "@compwright/namecase",
|
3
|
+
"version": "2.0.6",
|
4
|
+
"description": "Module for fixing capitalization of people's names",
|
5
|
+
"keywords": [
|
6
|
+
"namecase",
|
7
|
+
"names",
|
8
|
+
"case",
|
9
|
+
"capitalization"
|
10
|
+
],
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "https://github.com/compwright/namecase.git"
|
14
|
+
},
|
15
|
+
"bugs": "https://github.com/compwright/namecase/issues",
|
16
|
+
"author": "Mason Gravitt <emgee@gravitronic.com>",
|
17
|
+
"contributors": [
|
18
|
+
"Jonathon Hill <jhill9693@gmail.com>"
|
19
|
+
],
|
20
|
+
"engines": {
|
21
|
+
"node": ">=10"
|
22
|
+
},
|
23
|
+
"devDependencies": {
|
24
|
+
"mocha": "^8.2.1",
|
25
|
+
"parcel-bundler": "^1.12.4",
|
26
|
+
"semistandard": "^16.0.0"
|
27
|
+
},
|
28
|
+
"bin": "./bin/namecase",
|
29
|
+
"main": "src/",
|
30
|
+
"files": [
|
31
|
+
"src",
|
32
|
+
"dist/namecase.*"
|
33
|
+
],
|
34
|
+
"scripts": {
|
35
|
+
"lint": "semistandard --fix",
|
36
|
+
"pretest": "npm run lint",
|
37
|
+
"test": "mocha test",
|
38
|
+
"prebuild": "npm test",
|
39
|
+
"build": "parcel build src/index.js --out-file namecase.min.js --target browser --no-cache --global namecase"
|
40
|
+
},
|
41
|
+
"semistandard": {
|
42
|
+
"ignore": [
|
43
|
+
"dist"
|
44
|
+
]
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,146 @@
|
|
1
|
+
// Don't change capitalization unless capitalization isn't set
|
2
|
+
const checkName = name => name === name.toLowerCase() || name === name.toUpperCase();
|
3
|
+
|
4
|
+
// Strip out extraneous spaces
|
5
|
+
const normalize = name => name.replace(/\s{2,}/g, ' ');
|
6
|
+
|
7
|
+
// Actual case fixing function
|
8
|
+
function nc (el, opt = {}) {
|
9
|
+
el = el.trim().toLowerCase();
|
10
|
+
|
11
|
+
// Split names on regex whitespace, dash or apostrophe, workaround for
|
12
|
+
// Javascript regex word boundary \b splitting on unicode characters
|
13
|
+
// http://stackoverflow.com/questions/5311618/javascript-regular-expression-problem-with-b-and-international-characters
|
14
|
+
const splitters = [
|
15
|
+
{ s: /\s/, r: ' ' },
|
16
|
+
{ s: /-/, r: '-' },
|
17
|
+
{ s: /'/, r: "'" },
|
18
|
+
{ s: /"/, r: '"' },
|
19
|
+
{ s: /\(/, r: '(' },
|
20
|
+
{ s: /\./, r: '.' },
|
21
|
+
{ s: /,/, r: ',' },
|
22
|
+
{ s: /\//, r: '/' }
|
23
|
+
];
|
24
|
+
|
25
|
+
for (let i = 0; i < splitters.length; i++) {
|
26
|
+
const elArr = el.split(splitters[i].s);
|
27
|
+
for (let j = 0; j < elArr.length; j++) {
|
28
|
+
elArr[j] = elArr[j].charAt(0).toUpperCase() + elArr[j].slice(1);
|
29
|
+
}
|
30
|
+
el = elArr.join(splitters[i].r);
|
31
|
+
}
|
32
|
+
|
33
|
+
// Name case Mcs and Macs
|
34
|
+
// Exclude names with 1-2 letters after prefix like Mack, Macky, Mace
|
35
|
+
// Exclude names ending in a,c,i,o, or j are typically Polish or Italian
|
36
|
+
if (
|
37
|
+
/\bMac[A-Za-z]{2,}[^aciozj]\b/.test(el) ||
|
38
|
+
/\bMc/.test(el)
|
39
|
+
) {
|
40
|
+
el = el.replace(
|
41
|
+
/\b(Ma?c)([A-Za-z]+)/,
|
42
|
+
(x, y, z) => y + z.charAt(0).toUpperCase() + z.substring(1)
|
43
|
+
);
|
44
|
+
|
45
|
+
// Now correct for "Mac" exceptions
|
46
|
+
el = el
|
47
|
+
.replace(/\bMacEvicius\b/, 'Macevicius')
|
48
|
+
.replace(/\bMacHado\b/, 'Machado')
|
49
|
+
.replace(/\bMacHar\b/, 'Machar')
|
50
|
+
.replace(/\bMacHin\b/, 'Machin')
|
51
|
+
.replace(/\bMacHlin\b/, 'Machlin')
|
52
|
+
.replace(/\bMacIas\b/, 'Macias')
|
53
|
+
.replace(/\bMacIulis\b/, 'Maciulis')
|
54
|
+
.replace(/\bMacKie\b/, 'Mackie')
|
55
|
+
.replace(/\bMacKle\b/, 'Mackle')
|
56
|
+
.replace(/\bMacKlin\b/, 'Macklin')
|
57
|
+
.replace(/\bMacQuarie\b/, 'Macquarie')
|
58
|
+
.replace(/\bMacOmber\b/, 'Macomber')
|
59
|
+
.replace(/\bMacIn\b/, 'Macin')
|
60
|
+
.replace(/\bMacKintosh\b/, 'Mackintosh')
|
61
|
+
.replace(/\bMacKen\b/, 'Macken')
|
62
|
+
.replace(/\bMacHen\b/, 'Machen')
|
63
|
+
.replace(/\bMacHiel\b/, 'Machiel')
|
64
|
+
.replace(/\bMacIol\b/, 'Maciol')
|
65
|
+
.replace(/\bMacKell\b/, 'Mackell')
|
66
|
+
.replace(/\bMacKlem\b/, 'Macklem')
|
67
|
+
.replace(/\bMacKrell\b/, 'Mackrell')
|
68
|
+
.replace(/\bMacLin\b/, 'Maclin')
|
69
|
+
.replace(/\bMacKey\b/, 'Mackey')
|
70
|
+
.replace(/\bMacKley\b/, 'Mackley')
|
71
|
+
.replace(/\bMacHell\b/, 'Machell')
|
72
|
+
.replace(/\bMacHon\b/, 'Machon')
|
73
|
+
.replace(/\bMacAyla\b/, 'Macayla');
|
74
|
+
}
|
75
|
+
|
76
|
+
// And correct Mac exceptions otherwise missed
|
77
|
+
el = el
|
78
|
+
.replace(/\bMacmurdo/, 'MacMurdo')
|
79
|
+
.replace(/\bMacisaac/, 'MacIsaac')
|
80
|
+
|
81
|
+
// Fixes for "son (daughter) of" etc. in various languages.
|
82
|
+
.replace(/\bAl(?=\s+\w)\b/g, 'al') // al Arabic or forename Al.
|
83
|
+
.replace(/\bAp\b/g, 'ap') // ap Welsh.
|
84
|
+
.replace(/\bBen(?=\s+\w)\b/g, 'ben') // ben Hebrew or forename Ben.
|
85
|
+
.replace(/\bDell([ae])\b/g, 'dell$1') // della and delle Italian.
|
86
|
+
.replace(/\bD([aeiu])\b/g, 'd$1') // da, de, di Italian; du French.
|
87
|
+
.replace(/\bDe([lr])\b/g, 'de$1') // del Italian; der Dutch/Flemish.
|
88
|
+
.replace(/\bEl\b/g, 'el') // el Greek
|
89
|
+
.replace(/\bLa\b/g, 'la') // la French
|
90
|
+
.replace(/\bLe(?=\s+\w)\b/g, 'le') // le French
|
91
|
+
.replace(/\bLo\b/g, 'lo') // lo Italian
|
92
|
+
.replace(/\bVan(?=\s+\w)\b/g, 'van') // van German or forename Van.
|
93
|
+
.replace(/\bVon\b/g, 'von') // von Dutch/Flemish
|
94
|
+
|
95
|
+
// Fixes for roman numeral names, e.g. Henry VIII
|
96
|
+
.replace(/\b(?:\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i, v => v.toUpperCase())
|
97
|
+
|
98
|
+
// Nation of Islam 2X, 3X, etc. names
|
99
|
+
.replace(/\b[0-9](x)\b/, v => v.toUpperCase())
|
100
|
+
|
101
|
+
// Somewhat arbitrary rule where two letter combos not containing vowels should be capitalized
|
102
|
+
// fixes /JJ Abrams/ and /JD Salinger/
|
103
|
+
// With some exceptions
|
104
|
+
.replace(/\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\s/, v => v.toUpperCase())
|
105
|
+
.replace(/\bMR\.?\b/, 'Mr')
|
106
|
+
.replace(/\bMS\.?\b/, 'Ms')
|
107
|
+
.replace(/\bDR\.?\b/, 'Dr')
|
108
|
+
.replace(/\bST\.?\b/, 'St')
|
109
|
+
.replace(/\bJR\.?\b/, 'Jr')
|
110
|
+
.replace(/\bSR\.?\b/, 'Sr')
|
111
|
+
.replace(/\bLT\.?\b/, 'Lt')
|
112
|
+
|
113
|
+
// lowercase words
|
114
|
+
.replace(/\bThe\b/g, 'the')
|
115
|
+
.replace(/\bOf\b/g, 'of')
|
116
|
+
.replace(/\bAnd\b/g, 'and')
|
117
|
+
.replace(/\bY\s/g, 'y')
|
118
|
+
|
119
|
+
// strip extra spaces
|
120
|
+
.replace(/\s{2,}/g, ' ');
|
121
|
+
|
122
|
+
// check if we should force the first character to caps
|
123
|
+
if (opt.individualFields === true) {
|
124
|
+
// first character may be lowercase
|
125
|
+
return el;
|
126
|
+
}
|
127
|
+
|
128
|
+
// force first character to be uppercase
|
129
|
+
return el.charAt(0).toUpperCase() + el.substring(1);
|
130
|
+
}
|
131
|
+
|
132
|
+
function namecase (input, opt) {
|
133
|
+
if (Array.isArray(input)) {
|
134
|
+
return input.map(namecase);
|
135
|
+
}
|
136
|
+
|
137
|
+
if (typeof input === 'string') {
|
138
|
+
return nc(input, opt);
|
139
|
+
}
|
140
|
+
|
141
|
+
return input;
|
142
|
+
}
|
143
|
+
|
144
|
+
module.exports = namecase;
|
145
|
+
module.exports.checkName = checkName;
|
146
|
+
module.exports.normalize = normalize;
|