mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 09:17:43 +03:00
parent
5171ed5313
commit
7fe94be065
@ -580,14 +580,14 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
|
|||||||
writeFileUTF8 (packageDir </> "package.json") $ unlines
|
writeFileUTF8 (packageDir </> "package.json") $ unlines
|
||||||
(["{"
|
(["{"
|
||||||
, " \"private\": true,"
|
, " \"private\": true,"
|
||||||
, " \"name\": \"" <> packageName <> "\","
|
, " \"name\": \"" <> name <> "\","
|
||||||
, " \"version\": \"" <> version <> "\","
|
, " \"version\": \"" <> version <> "\","
|
||||||
, " \"description\": \"Produced by daml2ts\","
|
, " \"description\": \"Produced by daml2ts\","
|
||||||
, " \"dependencies\": {"
|
, " \"dependencies\": {"
|
||||||
, " \"@daml/types\": \"" <> version <> "\","
|
, " \"@daml/types\": \"" <> version <> "\","
|
||||||
, " \"@mojotech/json-type-validation\": \"^3.1.0\"" ++ if not $ null dependencies then ", " else ""
|
|
||||||
] ++ dependencies ++
|
] ++ dependencies ++
|
||||||
[" },"
|
[ " \"@mojotech/json-type-validation\": \"^3.1.0\""
|
||||||
|
, " },"
|
||||||
, " \"scripts\": {"
|
, " \"scripts\": {"
|
||||||
, " \"build\": \"tsc --build\","
|
, " \"build\": \"tsc --build\","
|
||||||
, " \"lint\": \"eslint --ext .ts src/ --max-warnings 0\""
|
, " \"lint\": \"eslint --ext .ts src/ --max-warnings 0\""
|
||||||
@ -602,8 +602,8 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
|
|||||||
])
|
])
|
||||||
where
|
where
|
||||||
version = versionToString sdkVersion
|
version = versionToString sdkVersion
|
||||||
packageName = packageNameOfPackageDir packageDir
|
name = packageNameOfPackageDir packageDir
|
||||||
dependencies = withCommas [ " \"" <> pkg <> "\": \"" <> version <> "\""
|
dependencies = [ " \"" <> pkg <> "\": \"" <> version <> "\","
|
||||||
| d <- depends
|
| d <- depends
|
||||||
, let pkg = "@" ++ scope ++ "/" ++ T.unpack (undependency d)
|
, let pkg = "@" ++ scope ++ "/" ++ T.unpack (undependency d)
|
||||||
]
|
]
|
||||||
@ -617,10 +617,6 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
|
|||||||
scope = unscope $ scopeOfScopeDir (takeDirectory packageDir)
|
scope = unscope $ scopeOfScopeDir (takeDirectory packageDir)
|
||||||
package = takeFileName packageDir
|
package = takeFileName packageDir
|
||||||
|
|
||||||
withCommas :: [String] -> [String]
|
|
||||||
withCommas [] = []
|
|
||||||
withCommas ms = reverse (head ms' : map (++ ",") (tail ms')) where ms' = reverse ms
|
|
||||||
|
|
||||||
-- This type describes the format of a "top-level" 'package.json'. We
|
-- This type describes the format of a "top-level" 'package.json'. We
|
||||||
-- expect such files to have the format
|
-- expect such files to have the format
|
||||||
-- {
|
-- {
|
||||||
@ -661,18 +657,9 @@ setupWorkspace optOutputDir dependencies file = do
|
|||||||
where
|
where
|
||||||
transformAndWrite :: [T.Text] -> T.Text -> PackageJson -> IO ()
|
transformAndWrite :: [T.Text] -> T.Text -> PackageJson -> IO ()
|
||||||
transformAndWrite ourPackages scope oldPackageJson = do
|
transformAndWrite ourPackages scope oldPackageJson = do
|
||||||
let damlTypes = [T.pack "daml-types"]
|
let keepPackages = filter (not . T.isPrefixOf scope) $ workspaces oldPackageJson
|
||||||
-- * Old versions of our packages should be removed;
|
-- Old versions of our packages should be removed.
|
||||||
keepPackages =
|
allPackages = ourPackages ++ keepPackages
|
||||||
[ T.pack x
|
-- Our packages need to come before any other existing packages.
|
||||||
| x <- [T.unpack y | y <- workspaces oldPackageJson]
|
|
||||||
, isNothing $ stripPrefix (T.unpack scope) x
|
|
||||||
]
|
|
||||||
-- * Our packages need to come after 'daml-types' if it exists;
|
|
||||||
-- * Our packages need to come before any other existing packages.
|
|
||||||
allPackages =
|
|
||||||
case stripInfix damlTypes keepPackages of
|
|
||||||
Nothing -> ourPackages ++ keepPackages
|
|
||||||
Just (before, after) -> before ++ damlTypes ++ ourPackages ++ after
|
|
||||||
BSL.writeFile file $ encodePretty oldPackageJson{workspaces=allPackages}
|
BSL.writeFile file $ encodePretty oldPackageJson{workspaces=allPackages}
|
||||||
putStrLn $ "'" <> file <> "' updated."
|
putStrLn $ "'" <> file <> "' updated."
|
||||||
|
Loading…
Reference in New Issue
Block a user