FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
firebase-admin-node/generate-esm-wrapper.js at main · Tanker187/firebase-admin-node · GitHub
Tanker187
/
firebase-admin-node
Public
forked from
firebase/firebase-admin-node
Notifications
You must be signed in to change notification settings
Fork
0
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
firebase-admin-node
/
generate-esm-wrapper.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
82 lines (71 loc) · 2.29 KB
Breadcrumbs
firebase-admin-node
/
generate-esm-wrapper.js
Copy path
File metadata and controls
82 lines (71 loc) · 2.29 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
*
@license
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const
path
=
require
(
'path'
)
;
const
fs
=
require
(
'mz/fs'
)
;
async
function
main
(
)
{
const
entryPoints
=
require
(
'./entrypoints.json'
)
;
for
(
const
entryPoint
in
entryPoints
)
{
const
info
=
entryPoints
[
entryPoint
]
;
if
(
info
.
legacy
)
{
continue
;
}
await
generateEsmWrapper
(
entryPoint
,
info
.
dist
)
;
}
}
async
function
generateEsmWrapper
(
entryPoint
,
source
)
{
console
.
log
(
`Generating ESM wrapper for
${
entryPoint
}
`
)
;
const
target
=
getTarget
(
entryPoint
)
;
const
output
=
getEsmOutput
(
source
,
target
)
;
await
fs
.
mkdir
(
path
.
dirname
(
target
)
,
{
recursive
:
true
}
)
;
await
fs
.
writeFile
(
target
,
output
)
;
await
fs
.
writeFile
(
'./lib/esm/package.json'
,
JSON
.
stringify
(
{
type
:
'module'
}
)
)
;
}
function
getTarget
(
entryPoint
)
{
const
child
=
entryPoint
.
replace
(
'firebase-admin/'
,
''
)
;
return
`./lib/esm/
${
child
}
/index.js`
;
}
function
getEsmOutput
(
source
,
target
)
{
const
sourcePath
=
path
.
resolve
(
source
)
;
const
cjsSource
=
require
.
resolve
(
sourcePath
)
;
const
keys
=
getExports
(
cjsSource
)
;
const
targetPath
=
path
.
resolve
(
target
)
;
const
importPath
=
getImportPath
(
targetPath
,
cjsSource
)
;
let
output
=
`import mod from
${
JSON
.
stringify
(
importPath
)
}
;`
;
output
+=
'\n\n'
;
for
(
const
key
of
keys
)
{
output
+=
`export const
${
key
}
= mod.
${
key
}
;\n`
;
}
return
output
;
}
function
getImportPath
(
from
,
to
)
{
const
fromDir
=
path
.
dirname
(
from
)
;
return
path
.
relative
(
fromDir
,
to
)
.
replace
(
/
\\
/
g
,
'/'
)
;
}
function
getExports
(
cjsSource
)
{
const
mod
=
require
(
cjsSource
)
;
const
keys
=
new
Set
(
Object
.
getOwnPropertyNames
(
mod
)
)
;
keys
.
delete
(
'__esModule'
)
;
return
[
...
keys
]
.
sort
(
)
;
}
(
async
(
)
=>
{
try
{
await
main
(
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
process
.
exit
(
1
)
;
}
}
)
(
)
;
Back
|
FazBrowse Home
|
New Git URL